From 82c52aca7e7be86e54f448b049e307c34ccea363 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Mon, 7 Apr 2025 15:52:48 +0100 Subject: [PATCH] chore: upgrade dependencies (#8468) * Upgrade paths * Update topic rendering * Fix file names * Remove courses file --- astro.config.mjs | 2 +- package.json | 7 +- pnpm-lock.yaml | 939 ++++++------------ scripts/rename-content.ts | 58 ++ .../ExploreAIRoadmap/ExploreAISorting.tsx | 6 +- .../100-amis.md => autoscaling/amis.md} | 0 .../autoscaling-groups.md} | 0 .../104-elb.md => autoscaling/elb.md} | 0 .../{104-autoscaling => autoscaling}/index.md | 0 .../launch-templates.md} | 0 .../scaling-policies.md} | 0 .../distributions.md} | 0 .../{109-cloudfront => cloudfront}/index.md | 0 .../invalidations.md} | 0 .../policies.md} | 0 .../101-events.md => cloudwatch/events.md} | 0 .../{108-cloudwatch => cloudwatch}/index.md | 0 .../102-logs.md => cloudwatch/logs.md} | 0 .../100-metrics.md => cloudwatch/metrics.md} | 0 .../backup-restore.md} | 0 .../capacity-settings.md} | 0 .../data-modeling.md} | 0 .../dynamo-local.md} | 0 .../{111-dynamodb => dynamodb}/index.md | 0 .../105-limits.md => dynamodb/limits.md} | 0 .../primary-keys.md} | 0 .../103-streams.md => dynamodb/streams.md} | 0 .../tables-items.md} | 0 .../101-cpu-credits.md => ec2/cpu-credits.md} | 0 .../104-elastic-ip.md => ec2/elastic-ip.md} | 0 .../aws/content/{101-ec2 => ec2}/index.md | 0 .../instance-types.md} | 0 .../103-keypairs.md => ec2/keypairs.md} | 0 .../purchasing-options.md} | 0 .../storage-volume.md} | 0 .../user-data-scripts.md} | 0 .../aws/content/{114-ecr.md => ecr.md} | 0 .../100-clusters.md => ecs/clusters.md} | 0 .../104-fargate.md => ecs/fargate.md} | 0 .../aws/content/{113-ecs => ecs}/index.md | 0 .../launch-config.md} | 0 .../102-services.md => ecs/services.md} | 0 .../{113-ecs/101-tasks.md => ecs/tasks.md} | 0 .../aws/content/{115-eks.md => eks.md} | 0 .../{112-elasticache => elasticache}/index.md | 0 .../100-quotas.md => elasticache/quotas.md} | 0 .../aws/content/{103-iam => iam}/index.md | 0 .../policies/identity-based.md} | 0 .../100-policies => iam/policies}/index.md | 0 .../policies/resource-based.md} | 0 .../roles/assuming-roles.md} | 0 .../{103-iam/102-roles => iam/roles}/index.md | 0 .../roles/instance-profiles.md} | 0 .../users-groups.md} | 0 .../aws/global-infra.md} | 0 .../103-aws => introduction/aws}/index.md | 0 .../aws/shared-respons.md} | 0 .../aws/well-architected.md} | 0 .../cloud-computing.md} | 0 .../iaas-paas-saas.md} | 0 .../index.md | 0 .../public-private-hybrid.md} | 0 .../api-gateway.md} | 0 .../cold-start-limitations.md} | 0 .../creating-invoking.md} | 0 .../custom-runtimes.md} | 0 .../event-bridge.md} | 0 .../content/{116-lambda => lambda}/index.md | 0 .../lambda-edge.md} | 0 .../101-layers.md => lambda/layers.md} | 0 .../versioning-aliases.md} | 0 .../backup-restore.md} | 0 .../db-instances.md} | 0 .../aws/content/{110-rds => rds}/index.md | 0 .../storage-types/general-purpose.md} | 0 .../storage-types}/index.md | 0 .../storage-types/magnetic.md} | 0 .../storage-types/provisioned-iops.md} | 0 .../health-checks.md} | 0 .../hosted-zones}/index.md | 0 .../hosted-zones/private.md} | 0 .../hosted-zones/public.md} | 0 .../content/{107-route53 => route53}/index.md | 0 .../routing-policies.md} | 0 .../buckets-objects.md} | 0 .../aws/content/{105-s3 => s3}/index.md | 0 .../101-lifecycle.md => s3/lifecycle.md} | 0 .../storage-types/gladier.md} | 0 .../storage-types}/index.md | 0 .../storage-types/s3-ia.md} | 0 .../storage-types/standard.md} | 0 .../configuration-sets.md} | 0 .../dedicated-ip.md} | 0 .../102-dkim-setup.md => ses/dkim-setup.md} | 0 .../feedback-handling.md} | 0 .../identity-verification.md} | 0 .../aws/content/{106-ses => ses}/index.md | 0 .../sandbox-limits.md} | 0 .../sender-reputation.md} | 0 .../100-cidr-blocks.md => vpc/cidr-blocks.md} | 0 .../aws/content/{102-vpc => vpc}/index.md | 0 .../internet-gateway.md} | 0 .../105-nat-gateway.md => vpc/nat-gateway.md} | 0 .../route-tables.md} | 0 .../security-groups.md} | 0 .../101-subnets => vpc/subnets}/index.md | 0 .../100-private.md => vpc/subnets/private.md} | 0 .../101-public.md => vpc/subnets/public.md} | 0 ...{104-api-semantics.md => api-semantics.md} | 0 .../{100-code-style.md => code-style.md} | 0 ...{102-documentation.md => documentation.md} | 0 ...mantics.md => implementation-semantics.md} | 0 .../content/{101-tests.md => tests.md} | 0 ...LoIG.md => trees@IaPd_zuLbiOCwoSHQLoIG.md} | 0 .../disjoint-set.md} | 0 .../fenwick-trees.md} | 0 .../index.md | 0 .../segment-trees.md} | 0 .../suffix-trees-arrays.md} | 0 .../trie.md} | 0 .../asymptotic-notation/big-o.md} | 0 .../asymptotic-notation/big-omega.md} | 0 .../asymptotic-notation/big-theta.md} | 0 .../asymptotic-notation}/index.md | 0 .../calculating.md} | 0 .../common-runtimes/constant.md} | 0 .../common-runtimes/exponential.md} | 0 .../common-runtimes/factorial.md} | 0 .../common-runtimes}/index.md | 0 .../common-runtimes/linear.md} | 0 .../common-runtimes/logarithmic.md} | 0 .../common-runtimes/polynomial.md} | 0 .../index.md | 0 .../time-vs-space.md} | 0 .../array.md} | 0 .../hash-tables.md} | 0 .../index.md | 0 .../linked-lists.md} | 0 .../queues.md} | 0 .../stacks.md} | 0 .../3-trees.md} | 0 .../b-bplus-trees.md} | 0 .../index.md | 0 .../isam.md} | 0 .../skip-list.md} | 0 .../importance-of-datastructures.md} | 0 .../index.md | 0 .../what-are-datastructures.md} | 0 .../directed-graph.md} | 0 .../index.md | 0 .../minimum-spanning-tree}/index.md | 0 .../kruskal-algorithm.md} | 0 .../minimum-spanning-tree/prims-algorithm.md} | 0 .../breadth-first-search.md} | 0 .../search-algorithms/depth-first-search.md} | 0 .../search-algorithms}/index.md | 0 .../shortest-path-algorithms/bellman-ford.md} | 0 .../dijkstra-algorithm.md} | 0 .../shortest-path-algorithms}/index.md | 0 .../undirected-graph.md} | 0 .../{111-indexing => indexing}/index.md | 0 .../linear-indexing.md} | 0 .../tree-based-indexing.md} | 0 .../104-cpp.md => language/cpp.md} | 0 .../103-csharp.md => language/csharp.md} | 0 .../102-go.md => language/go.md} | 0 .../{100-language => language}/index.md | 0 .../101-java.md => language/java.md} | 0 .../javascript.md} | 0 .../105-python.md => language/python.md} | 0 .../107-ruby.md => language/ruby.md} | 0 .../106-rust.md => language/rust.md} | 0 .../edabit.md} | 0 .../index.md | 0 .../leetcode.md} | 0 .../backtracking.md} | 0 .../brute-force.md} | 0 .../divide-and-conquer.md} | 0 .../dynamic-programming.md} | 0 .../greedy-algorithms.md} | 0 .../index.md | 0 .../randomised-algorithms.md} | 0 .../recursion.md} | 0 .../sliding-window-technique.md} | 0 .../two-pointer-techniques.md} | 0 .../control-structures.md} | 0 .../functions.md} | 0 .../index.md | 0 .../language-syntax.md} | 0 .../oop-basics.md} | 0 .../pseudo-code.md} | 0 .../binary-search.md} | 0 .../index.md | 0 .../linear-search.md} | 0 .../bubble-sort.md} | 0 .../heap-sort.md} | 0 .../index.md | 0 .../insertion-sort.md} | 0 .../merge-sort.md} | 0 .../quick-sort.md} | 0 .../selection-sort.md} | 0 .../avl-trees.md} | 0 .../b-trees.md} | 0 .../binary-search-trees.md} | 0 .../binary-trees.md} | 0 .../index.md | 0 .../breadth-first-search.md} | 0 .../search-algorithms/depth-first-search.md} | 0 .../search-algorithms}/index.md | 0 .../tree-traversal/in-order-traversal.md} | 0 .../tree-traversal}/index.md | 0 .../tree-traversal/post-order-traversal.md} | 0 .../tree-traversal/pre-order-traversal.md} | 0 .../avatar.md} | 0 .../102-badge.md => core-components/badge.md} | 0 .../banner.md} | 0 .../button.md} | 0 .../104-card.md => core-components/card.md} | 0 .../carousel.md} | 0 .../dropdown.md} | 0 .../107-icon.md => core-components/icon.md} | 0 .../index.md | 0 .../input-checkbox.md} | 0 .../input-radio.md} | 0 .../input-switch.md} | 0 .../input-text.md} | 0 .../114-list.md => core-components/list.md} | 0 .../loading-indicator.md} | 0 .../116-modal.md => core-components/modal.md} | 0 .../select.md} | 0 .../117-tabs.md => core-components/tabs.md} | 0 .../textarea.md} | 0 .../118-toast.md => core-components/toast.md} | 0 .../tooltip.md} | 0 .../brand/design-principles.md} | 0 .../brand}/index.md | 0 .../brand/terminology.md} | 0 .../brand/tone-of-voice.md} | 0 .../brand/vision.md} | 0 .../brand/writing-guidelines.md} | 0 .../guidelines/accessibility.md} | 0 .../guidelines}/index.md | 0 .../guidelines/microcopy-guidelines.md} | 0 .../guidelines/user-onboarding.md} | 0 .../index.md | 0 .../logo/different-file-formats.md} | 0 .../logo}/index.md | 0 .../logo/monochrome-version.md} | 0 .../logo/placement-and-clearance-guidance.md} | 0 .../logo/small-use-guidance.md} | 0 .../logo/usage-guidance.md} | 0 .../atomic-design.md} | 0 .../design-system-examples.md} | 0 .../design-system-vs-component-library.md} | 0 .../index.md | 0 .../need-of-design-system.md} | 0 .../stakeholders-involved.md} | 0 .../what-is-design-system.md} | 0 .../component-library.md} | 0 .../component.md} | 0 .../design-language.md} | 0 .../governance.md} | 0 .../guidelines.md} | 0 .../index.md | 0 .../pattern.md} | 0 .../pilot.md} | 0 .../token.md} | 0 .../ui-kit.md} | 0 .../color/accessibility.md} | 0 .../color/dark-mode.md} | 0 .../color/functional-colors.md} | 0 .../color/guidelines.md} | 0 .../color}/index.md | 0 .../iconography/accessibility.md} | 0 .../iconography/grid-relation.md} | 0 .../iconography/guidelines.md} | 0 .../iconography}/index.md | 0 .../iconography/keywords.md} | 0 .../iconography/naming.md} | 0 .../iconography/reserved-icons.md} | 0 .../iconography/sizes.md} | 0 .../iconography/style.md} | 0 .../index.md | 0 .../layout/breakpoints.md} | 0 .../layout/grid.md} | 0 .../layout}/index.md | 0 .../layout/spacing.md} | 0 .../layout/units.md} | 0 .../typography/grid-relation.md} | 0 .../typography/guidelines.md} | 0 .../typography}/index.md | 0 .../typography/performance.md} | 0 .../typography/readability.md} | 0 .../typography/responsiveness.md} | 0 .../ab-tests-and-experiments.md} | 0 .../documentation.md} | 0 .../existing-design-process.md} | 0 .../identify-components.md} | 0 .../identify-design-elements.md} | 0 .../index.md | 0 .../regional-requirements.md} | 0 .../visual-audit.md} | 0 .../from-existing-design.md} | 0 .../from-scratch.md} | 0 .../index.md | 0 .../analytics/component-analytics.md} | 0 .../analytics/error-logging.md} | 0 .../analytics}/index.md | 0 .../analytics/service-and-health-metrics.md} | 0 .../analytics/tooling-analytics.md} | 0 .../communications/communication-channel.md} | 0 .../communications/community-meetings.md} | 0 .../communications/faqs.md} | 0 .../communications}/index.md | 0 .../communications/open-hours.md} | 0 .../index.md | 0 .../task-management}/index.md | 0 .../task-management/milestones.md} | 0 .../task-management/roadmap.md} | 0 .../task-management/ticketing.md} | 0 .../design/contribution-guidelines.md} | 0 .../design/design-editor.md} | 0 .../101-design => tooling/design}/index.md | 0 .../design/plugins.md} | 0 .../design/version-control.md} | 0 .../development/accessibility-testing.md} | 0 .../development/code-style.md} | 0 .../development/commit-guidelines.md} | 0 .../development/component-catalog.md} | 0 .../development/contribution-guidelines.md} | 0 .../development/documentation.md} | 0 .../development}/index.md | 0 .../development/pr-templates.md} | 0 .../development/release-strategy.md} | 0 .../development/semantic-versioning.md} | 0 .../development/unit-testing.md} | 0 .../content/{107-tooling => tooling}/index.md | 0 .../dockerfiles.md} | 0 .../efficient-layer-caching.md} | 0 .../image-size-and-security.md} | 0 .../index.md | 0 .../dockerhub-alt.md} | 0 .../dockerhub.md} | 0 .../image-tagging-best-practices.md} | 0 .../index.md | 0 .../image-security.md} | 0 .../index.md | 0 .../runtime-security.md} | 0 .../bind-mounts.md} | 0 .../ephemeral-container-fs.md} | 0 .../index.md | 0 .../volume-mounts.md} | 0 .../docker-swarm.md} | 0 .../index.md | 0 .../kubernetes.md} | 0 .../nomad.md} | 0 .../paas-options.md} | 0 .../continuous-integration.md} | 0 .../debuggers.md} | 0 .../hot-reloading.md} | 0 .../index.md | 0 .../tests.md} | 0 ...{103-docker-basics.md => docker-basics.md} | 0 .../containers.md} | 0 .../100-images.md => docker-cli/images.md} | 0 .../{110-docker-cli => docker-cli}/index.md | 0 .../networks.md} | 0 .../102-volumes.md => docker-cli/volumes.md} | 0 .../docker-desktop.md} | 0 .../docker-engine.md} | 0 .../index.md | 0 .../bare-metal-vm-containers.md} | 0 .../docker-and-oci.md} | 0 .../index.md | 0 .../need-for-containers.md} | 0 .../what-are-containers.md} | 0 .../docker-compose.md} | 0 .../docker-run.md} | 0 .../index.md | 0 .../runtime-config-options.md} | 0 .../cgroups.md} | 0 .../index.md | 0 .../namespaces.md} | 0 .../union-filesystems.md} | 0 .../command-line-utilities.md} | 0 .../databases.md} | 0 .../index.md | 0 .../interactive-test-environments.md} | 0 .../async-await.md} | 0 .../collections.md} | 0 .../core-libraries.md} | 0 .../functional-programming.md} | 0 .../futures.md} | 0 .../index.md | 0 .../isolates.md} | 0 .../lambdas.md} | 0 .../101-lists.md => advanced-dart/lists.md} | 0 .../streams.md} | 0 .../firebase-analytics.md} | 0 .../google-analytics.md} | 0 .../{118-analytics => analytics}/index.md | 0 .../mix-panel.md} | 0 .../100-segment.md => analytics/segment.md} | 0 .../animated-builder.md} | 0 .../animated-widget.md} | 0 .../animation-controller.md} | 0 .../curved-animations.md} | 0 .../104-hero.md => animations/hero.md} | 0 .../{112-animations => animations}/index.md | 0 .../105-opacity.md => animations/opacity.md} | 0 .../102-bitrise.md => ci-cd/bitrise.md} | 0 .../101-codemagic.md => ci-cd/codemagic.md} | 0 .../100-fast-lane.md => ci-cd/fast-lane.md} | 0 .../firebase-app-distribution.md} | 0 .../github-actions.md} | 0 .../content/{117-ci-cd => ci-cd}/index.md | 0 .../built-in-types.md} | 0 .../control-flow-statements.md} | 0 .../dart-pad.md} | 0 .../functions.md} | 0 .../{100-dart-basics => dart-basics}/index.md | 0 .../operators.md} | 0 .../variables.md} | 0 .../appstore.md} | 0 .../guidelines-and-protocols.md} | 0 .../{119-deployment => deployment}/index.md | 0 .../playstore.md} | 0 .../dependency-injection.md} | 0 .../design-patterns.md} | 0 .../index.md | 0 .../103-oop.md => design-principles/oop.md} | 0 .../solid-principles.md} | 0 .../flutter-inspector.md} | 0 .../flutter-outline.md} | 0 .../{115-dev-tools => dev-tools}/index.md | 0 .../memory-allocation.md} | 0 .../immutability.md} | 0 .../index.md | 0 .../render-objects.md} | 0 .../trees.md} | 0 .../flutter-pub-dart-pub.md} | 0 .../index.md | 0 .../pub-dev.md} | 0 .../index.md | 0 .../rxdart.md} | 0 .../github.md} | 0 .../index.md | 0 .../flutter-cli.md} | 0 .../fvm.md} | 0 .../ides/android-studio.md} | 0 .../ides}/index.md | 0 .../ides/intellij-idea.md} | 0 .../ides/vs-code.md} | 0 .../index.md | 0 .../101-bloc.md => state-management/bloc.md} | 0 .../change-notifier.md} | 0 .../get-x.md} | 0 .../index.md | 0 .../provider.md} | 0 .../redux.md} | 0 .../riverpod.md} | 0 .../value-notifier.md} | 0 .../velocity-x.md} | 0 .../firebase/authentication.md} | 0 .../firebase/cloud-functions.md} | 0 .../firebase/firestore.md} | 0 .../firebase}/index.md | 0 .../firebase/push-notifications.md} | 0 .../firebase/remote-config.md} | 0 .../firebase/storage.md} | 0 .../content/{109-storage => storage}/index.md | 0 .../shared-preferences.md} | 0 .../100-sqlite.md => storage/sqlite.md} | 0 .../104-bdd.md => testing/bdd.md} | 0 .../content/{113-testing => testing}/index.md | 0 .../integration-testing.md} | 0 .../103-tdd.md => testing/tdd.md} | 0 .../unit-testing.md} | 0 .../widget-testing.md} | 0 .../git.md} | 0 .../index.md | 0 .../content/{102-widgets => widgets}/index.md | 0 .../inherited-widgets.md} | 0 .../responsive-widgets.md} | 0 .../stateful-widgets.md} | 0 .../stateless-widgets.md} | 0 .../styled-widgets/cupertino-widgets.md} | 0 .../styled-widgets}/index.md | 0 .../styled-widgets/material-widgets.md} | 0 .../graphql.md} | 0 .../index.md | 0 .../100-json.md => working-with-apis/json.md} | 0 .../restful-apis.md} | 0 .../web-sockets.md} | 0 .../fonts.md} | 0 .../images.md} | 0 .../index.md | 0 .../other-file-types.md} | 0 src/data/roadmaps/frontend/courses.json | 16 - .../107-buffer.md => go-advanced/buffer.md} | 0 .../channels.md} | 0 .../104-context.md => go-advanced/context.md} | 0 .../generics.md} | 0 .../go-modules.md} | 0 .../goroutines.md} | 0 .../{101-go-advanced => go-advanced}/index.md | 0 .../interfaces.md} | 0 .../109-mutex.md => go-advanced/mutex.md} | 0 .../pointers.md} | 0 .../scheduler.md} | 0 .../108-select.md => go-advanced/select.md} | 0 .../types-and-type-assertions.md} | 0 .../working-with-json.md} | 0 .../graphql/gqlgen.md} | 0 .../graphql/graphql-go.md} | 0 .../graphql}/index.md | 0 .../index.md | 0 .../rest/grequests.md} | 0 .../rest/heimdall.md} | 0 .../100-rest => go-api-clients/rest}/index.md | 0 .../112-arrays.md => go-basics/arrays.md} | 0 .../basic-syntax.md} | 0 .../conditionals.md} | 0 .../data-types.md} | 0 .../errors-panic-recover.md} | 0 .../103-for-loop.md => go-basics/for-loop.md} | 0 .../functions.md} | 0 .../{100-go-basics => go-basics}/index.md | 0 .../115-make.md => go-basics/make.md} | 0 .../114-maps.md => go-basics/maps.md} | 0 .../109-packages.md => go-basics/packages.md} | 0 .../104-range.md => go-basics/range.md} | 0 .../113-slices.md => go-basics/slices.md} | 0 .../116-structs.md => go-basics/structs.md} | 0 .../type-casting.md} | 0 .../type-inference.md} | 0 .../variables.md} | 0 .../bubbletea.md} | 0 .../cobra.md} | 0 .../index.md | 0 .../urfave-cli.md} | 0 .../{105-go-logging => go-logging}/index.md | 0 .../log-slog.md} | 0 .../101-zap.md => go-logging/zap.md} | 0 .../100-zerolog.md => go-logging/zerolog.md} | 0 .../go-kit.md} | 0 .../go-zero.md} | 0 .../grpc-gateway.md} | 0 .../grpc-go.md} | 0 .../index.md | 0 .../micro.md} | 0 .../protocol-buffers.md} | 0 .../101-rpcx.md => go-microservices/rpcx.md} | 0 .../twirp.md} | 0 .../watermill.md} | 0 .../100-gorm.md => go-orms/gorm.md} | 0 .../content/{103-go-orms => go-orms}/index.md | 0 .../centrifugo.md} | 0 .../index.md | 0 .../melody.md} | 0 ...g-your-apps.md => go-testing-your-apps.md} | 0 .../beego.md} | 0 .../buffalo.md} | 0 .../103-echo.md => go-web-frameworks/echo.md} | 0 .../101-gin.md => go-web-frameworks/gin.md} | 0 .../gofiber.md} | 0 .../gorilla.md} | 0 .../index.md | 0 .../revel.md} | 0 .../apollo-server.md} | 0 .../graphql-http.md} | 0 .../graphql-yoga.md} | 0 .../index.md | 0 .../mercurius.md} | 0 .../{105-execution => execution}/index.md | 0 .../producing-the-result.md} | 0 .../resolvers/asynchronous.md} | 0 .../resolvers}/index.md | 0 .../resolvers/lists.md} | 0 .../resolvers/scalar-coercion.md} | 0 .../resolvers/synchronous.md} | 0 .../root-fields.md} | 0 .../validation.md} | 0 .../apollo-client.md} | 0 .../index.md | 0 .../relay.md} | 0 .../urql.md} | 0 .../graphql-on-the-backend.md} | 0 .../graphql-on-the-frontend.md} | 0 .../index.md | 0 .../problems-graphql-solves.md} | 0 .../thinking-in-graphs.md} | 0 .../what-is-graphql.md} | 0 .../aliases.md} | 0 .../arguments.md} | 0 .../directives.md} | 0 .../fields.md} | 0 .../fragments.md} | 0 .../index.md | 0 .../variables.md} | 0 .../what-are-queries.md} | 0 .../{102-mutations => mutations}/index.md | 0 .../multiple-mutation-fields.md} | 0 .../operation-name.md} | 0 .../what-are-mutations.md} | 0 .../{107-pagination.md => pagination.md} | 0 .../108-arguments.md => schema/arguments.md} | 0 .../103-enums.md => schema/enums.md} | 0 .../101-fields.md => schema/fields.md} | 0 .../content/{104-schema => schema}/index.md | 0 .../interfaces.md} | 0 .../105-lists.md => schema/lists.md} | 0 .../104-objects.md => schema/objects.md} | 0 .../102-scalars.md => schema/scalars.md} | 0 .../type-system.md} | 0 .../107-unions.md => schema/unions.md} | 0 .../graphql-over-http/authorization.md} | 0 .../graphql-over-http/batching.md} | 0 .../graphql-over-http/caching.md} | 0 .../graphql-over-http}/index.md | 0 .../graphql-over-sse/authorization.md} | 0 .../graphql-over-sse}/index.md | 0 .../graphql-over-websockets/authorization.md} | 0 .../graphql-over-websockets}/index.md | 0 .../graphql-over-websockets/real-time.md} | 0 .../index.md | 0 .../defer-stream-directives.md} | 0 .../event-based-subscriptions.md} | 0 .../index.md | 0 .../live-queries.md} | 0 .../what-are-subscriptions.md} | 0 .../{104-validation.md => validation.md} | 0 .../cluster-autoscaling.md} | 0 .../horizontal-pod-autoscaler.md} | 0 .../{109-autoscaling => autoscaling}/index.md | 0 .../vertical-pod-autoscaler.md} | 0 .../config-maps.md} | 0 .../index.md | 0 .../secrets.md} | 0 .../{101-containers.md => containers.md} | 0 .../blue-green-deployments.md} | 0 .../canary-deployments.md} | 0 .../ci-cd-integration.md} | 0 .../gitops.md} | 0 .../helm-charts.md} | 0 .../index.md | 0 .../rolling-updates-rollbacks.md} | 0 .../control-plane-installation.md} | 0 .../custom-controllers.md} | 0 .../custom-resource-definitions.md} | 0 .../custom-schedulers-extenders.md} | 0 .../index.md | 0 .../kubernetes-extensions-and-apis.md} | 0 .../managing-worker-nodes.md} | 0 .../multi-cluster-management.md} | 0 .../own-cluster.md} | 0 .../index.md | 0 .../key-concepts-terminologies.md} | 0 .../kubernetes-alternatives.md} | 0 .../kubernetes-overview.md} | 0 .../why-kubernetes.md} | 0 .../container-and-pod-security.md} | 0 .../index.md | 0 .../network-security.md} | 0 .../role-based-acccess-control.md} | 0 .../security-scanners.md} | 0 .../index.md | 0 .../logs.md} | 0 .../metrics.md} | 0 .../observability-engines.md} | 0 .../resource-health.md} | 0 .../traces.md} | 0 .../assigning-quotas-to-namespaces.md} | 0 .../index.md | 0 ...nitoring-and-optimizing-resource-usage.md} | 0 .../setting-resource-requests-and-limits.md} | 0 .../deployments.md} | 0 .../index.md | 0 .../jobs.md} | 0 .../pods.md} | 0 .../replicasets.md} | 0 .../statefulsets.md} | 0 .../evictions.md} | 0 .../{110-scheduling => scheduling}/index.md | 0 .../pod-priorities.md} | 0 .../scheduling-basics.md} | 0 .../taints-and-tolerations.md} | 0 .../topology-spread-constraints.md} | 0 .../external-access-to-services.md} | 0 .../index.md | 0 .../load-balancing.md} | 0 ...etworking-and-pod-to-pod-communication.md} | 0 .../choosing-a-managed-provider.md} | 0 .../deploying-your-first-application.md} | 0 .../index.md | 0 .../installing-a-local-cluster.md} | 0 .../csi-drivers.md} | 0 .../index.md | 0 .../stateful-applications.md} | 0 .../{113-backup-tools.md => backup-tools.md} | 0 .../boot-loaders.md} | 0 .../index.md | 0 .../100-logs.md => booting-linux/logs.md} | 0 .../cgroups.md} | 0 .../container-runtime.md} | 0 .../docker.md} | 0 .../index.md | 0 .../ulimits.md} | 0 .../adding-disks.md} | 0 .../filesystems.md} | 0 .../index.md | 0 .../inodes.md} | 0 .../105-lvm.md => disks-filesystems/lvm.md} | 0 .../mounts.md} | 0 .../104-swap.md => disks-filesystems/swap.md} | 0 .../index.md | 0 .../101-nano.md => editing-files/nano.md} | 0 .../100-vim.md => editing-files/vim.md} | 0 .../basic-commands.md} | 0 .../creating-files.md} | 0 .../directory-hierarchy.md} | 0 .../index.md | 0 .../moving-files.md} | 0 .../103-dhcp.md => networking/dhcp.md} | 0 .../dns-resolution.md} | 0 .../ethernet-arp-rarp.md} | 0 .../file-transfer.md} | 0 .../{112-networking => networking}/index.md | 0 .../ip-routing.md} | 0 .../netfilter.md} | 0 .../107-ssh.md => networking/ssh.md} | 0 .../subnetting.md} | 0 .../100-tcp-ip.md => networking/tcp-ip.md} | 0 .../finding-installing-packages.md} | 0 .../index.md | 0 .../install-remove-ugprade-packages.md} | 0 .../listing-installed-packages.md} | 0 .../repositories.md} | 0 .../snap.md} | 0 .../bg-fg-processes.md} | 0 .../index.md | 0 .../kill-processes.md} | 0 .../listing-finding-proc.md} | 0 .../proc-forking.md} | 0 .../proc-priorities.md} | 0 .../proc-signals.md} | 0 .../auth-logs.md} | 0 .../available-mem.md} | 0 .../index.md | 0 .../services-running.md} | 0 .../uptime-load.md} | 0 .../check-logs.md} | 0 .../creating-services.md} | 0 .../index.md | 0 .../service-status.md} | 0 .../start-stop-service.md} | 0 .../command-help.md} | 0 .../command-path.md} | 0 .../environment-variables.md} | 0 .../index.md | 0 .../redirects.md} | 0 .../super-user.md} | 0 .../conditionals.md} | 0 .../debugging.md} | 0 .../index.md | 0 .../literals.md} | 0 .../loops.md} | 0 .../variables.md} | 0 .../117-awk.md => text-processing/awk.md} | 0 .../101-cut.md => text-processing/cut.md} | 0 .../expand.md} | 0 .../116-grep.md => text-processing/grep.md} | 0 .../105-head.md => text-processing/head.md} | 0 .../index.md | 0 .../107-join.md => text-processing/join.md} | 0 .../111-nl.md => text-processing/nl.md} | 0 .../102-paste.md => text-processing/paste.md} | 0 .../109-pipe.md => text-processing/pipe.md} | 0 .../103-sort.md => text-processing/sort.md} | 0 .../108-split.md => text-processing/split.md} | 0 .../stdout-in-err.md} | 0 .../106-tail.md => text-processing/tail.md} | 0 .../110-tee.md => text-processing/tee.md} | 0 .../104-tr.md => text-processing/tr.md} | 0 .../unexpand.md} | 0 .../115-uniq.md => text-processing/uniq.md} | 0 .../112-wc.md => text-processing/wc.md} | 0 .../100-icmp.md => troubleshooting/icmp.md} | 0 .../index.md | 0 .../netstat.md} | 0 .../packet-analysis.md} | 0 .../101-ping.md => troubleshooting/ping.md} | 0 .../traceroute.md} | 0 .../create-update.md} | 0 .../index.md | 0 .../permissions.md} | 0 .../user-groups.md} | 0 .../archiving.md} | 0 .../copying-renaming.md} | 0 .../index.md | 0 .../permissions.md} | 0 .../soft-hard-links.md} | 0 .../bulk-write.md} | 0 .../counting-documents.md} | 0 .../delete-methods.md} | 0 .../find-methods.md} | 0 .../{102-collections => collections}/index.md | 0 .../insert-methods.md} | 0 .../update-methods.md} | 0 .../validate.md} | 0 .../104-array.md => datatypes/array.md} | 0 .../binary-data.md} | 0 .../109-boolean.md => datatypes/boolean.md} | 0 .../bson-vs-json.md} | 0 .../110-date.md => datatypes/date.md} | 0 .../decimal128.md} | 0 .../102-double.md => datatypes/double.md} | 0 .../embedded-documents-arrays.md} | 0 .../{101-datatypes => datatypes}/index.md | 0 .../115-int.md => datatypes/int.md} | 0 .../javascript.md} | 0 .../116-long.md => datatypes/long.md} | 0 .../120-max-key.md => datatypes/max-key.md} | 0 .../119-min-key.md => datatypes/min-key.md} | 0 .../111-null.md => datatypes/null.md} | 0 .../object-id.md} | 0 .../105-object.md => datatypes/object.md} | 0 .../112-regex.md => datatypes/regex.md} | 0 .../103-string.md => datatypes/string.md} | 0 .../114-symbol.md => datatypes/symbol.md} | 0 .../timestamp.md} | 0 .../undefined.md} | 0 .../backup-recovery/index.md | 0 .../backup-recovery/mongodump.md} | 0 .../backup-recovery/mongorestore.md} | 0 .../developer-tools}/index.md | 0 .../developer-tools/vs-analyzer.md} | 0 .../developer-tools/vs-code-extension.md} | 0 .../index.md | 0 .../language-drivers.md} | 0 .../mongodb-connectors/elastic-search.md} | 0 .../mongodb-connectors}/index.md | 0 .../mongodb-connectors/kafka.md} | 0 .../mongodb-connectors/spark.md} | 0 .../common-operators/group.md} | 0 .../common-operators/limit.md} | 0 .../common-operators/lookup.md} | 0 .../common-operators/match.md} | 0 .../common-operators/project.md} | 0 .../common-operators/skip.md} | 0 .../common-operators/sort.md} | 0 .../common-operators/sum.md} | 0 .../common-operators/unwind.md} | 0 .../index.md | 0 .../pipelines-stages-operators.md} | 0 .../index.md | 0 .../mongodb-terminology.md} | 0 .../sql-vs-nosql.md} | 0 .../what-is-mongodb-atlas.md} | 0 .../what-is-mongodb.md} | 0 .../when-to-use-mongodb.md} | 0 .../client-side-field-level-encryption.md} | 0 .../encryption/encryption-at-rest.md} | 0 .../encryption/index.md | 0 .../encryption/queryable-encryption.md} | 0 .../index.md | 0 .../kerberos-authentication.md} | 0 .../ldap-proxy-auth.md} | 0 .../mongodb-audit.md} | 0 .../role-based-access-control.md} | 0 .../x509-certificate-auth.md} | 0 .../atlas-search-indexes.md} | 0 .../index-types/compound.md} | 0 .../index-types/expiring.md} | 0 .../index-types/geospatial.md} | 0 .../index-types/index.md | 0 .../index-types/single-field.md} | 0 .../index-types/text.md} | 0 .../index.md | 0 .../indexes.md} | 0 .../query-optimization.md} | 0 .../array-operators/all.md} | 0 .../array-operators/elem-match.md} | 0 .../array-operators/in.md} | 0 .../array-operators}/index.md | 0 .../array-operators/nin.md} | 0 .../array-operators/size.md} | 0 .../comparison-operators/eq.md} | 0 .../comparison-operators/gt.md} | 0 .../comparison-operators/gte.md} | 0 .../comparison-operators}/index.md | 0 .../comparison-operators/lt.md} | 0 .../comparison-operators/lte.md} | 0 .../comparison-operators/ne.md} | 0 .../element-operators/exists.md} | 0 .../element-operators}/index.md | 0 .../element-operators/regex.md} | 0 .../element-operators/type.md} | 0 .../index.md | 0 .../indexes.md} | 0 .../logical-operators/and.md} | 0 .../logical-operators}/index.md | 0 .../logical-operators/nor.md} | 0 .../logical-operators/not.md} | 0 .../logical-operators/or.md} | 0 .../projection-operators/exclude.md} | 0 .../projection-operators/include.md} | 0 .../projection-operators}/index.md | 0 .../projection-operators/project.md} | 0 .../projection-operators/slice.md} | 0 ...-scaling-mongodb.md => scaling-mongodb.md} | 0 .../{107-transactions.md => transactions.md} | 0 .../cursors.md} | 0 .../index.md | 0 .../read-write-concerns.md} | 0 .../retryable-reads-writes.md} | 0 .../how-llms-built.md} | 0 .../{100-basic-llm => basic-llm}/index.md | 0 .../llm-types.md} | 0 .../llm-vocabulary.md} | 0 .../what-are-llms.md} | 0 .../deformed-generations.md} | 0 .../index.md | 0 .../quality-boosters.md} | 0 .../style-modifiers.md} | 0 .../weighted-terms.md} | 0 .../101-bias.md => llm-pitfalls/bias.md} | 0 .../citing-sources.md} | 0 .../hallucinations.md} | 0 .../index.md | 0 .../103-math.md => llm-pitfalls/math.md} | 0 .../prompt-hacking.md} | 0 .../index.md | 0 .../other-hyper-params.md} | 0 .../temperature.md} | 0 .../101-top-p.md => llm-settings/top-p.md} | 0 .../defensive-measures.md} | 0 .../index.md | 0 .../jailbreaking.md} | 0 .../offensive-measures.md} | 0 .../prompt-injection.md} | 0 .../prompt-leaking.md} | 0 .../basic-prompting.md} | 0 .../index.md | 0 .../need-for-prompting.md} | 0 .../good-prompts/give-conditions.md} | 0 .../good-prompts/give-examples.md} | 0 .../good-prompts/include-steps.md} | 0 .../good-prompts/index.md | 0 .../good-prompts/iterate-refine.md} | 0 .../good-prompts/structured-data.md} | 0 .../good-prompts/style-information.md} | 0 .../good-prompts/use-delimiters.md} | 0 .../good-prompts/workout-solution.md} | 0 .../content/{102-prompts => prompts}/index.md | 0 .../parts-of-a-prompt.md} | 0 .../prompting-techniques/chain-of-thought.md} | 0 .../combining-techniques.md} | 0 .../prompting-techniques/dual-prompt.md} | 0 .../few-shot-prompting.md} | 0 .../prompting-techniques/index.md | 0 .../prompting-techniques/least-to-most.md} | 0 .../prompting-techniques/role-prompting.md} | 0 .../zeroshot-chain-of-thought.md} | 0 .../coding-assistance.md} | 0 .../designing-chatbots.md} | 0 .../{103-real-world => real-world}/index.md | 0 .../inferring.md} | 0 .../structured-data.md} | 0 .../study-buddy.md} | 0 .../writing-emails.md} | 0 .../calibrating-llms.md} | 0 .../debiasing.md} | 0 .../ensembling.md} | 0 .../{105-reliability => reliability}/index.md | 0 .../104-math.md => reliability/math.md} | 0 .../self-evaluation.md} | 0 .../activity-indicator.md} | 0 .../button.md} | 0 .../image-background.md} | 0 .../103-image.md => core-components/image.md} | 0 .../index.md | 0 .../listings}/index.md | 0 .../listings/list-views}/flat-list.md | 0 .../listings/list-views}/index.md | 0 .../listings/list-views}/section-list.md | 0 .../listings/refresh-control.md} | 0 .../listings/scroll-view.md} | 0 .../108-modal.md => core-components/modal.md} | 0 .../pressable.md} | 0 .../status-bar.md} | 0 .../switch.md} | 0 .../text-input.md} | 0 .../100-text.md => core-components/text.md} | 0 .../view}/index.md | 0 .../view/keyboard-avoiding-view.md} | 0 .../view/safe-area-view.md} | 0 .../{110-deep-linking.md => deep-linking.md} | 0 .../debugging/dev-menu.md} | 0 .../debugging/devtools.md} | 0 .../debugging/fast-refresh.md} | 0 .../debugging}/index.md | 0 .../debugging/logbox.md} | 0 .../debugging/sourcemaps.md} | 0 .../index.md | 0 .../running-on-device.md} | 0 .../expo/create-expo-app.md} | 0 .../expo/expo-snack.md} | 0 .../expo/expo-tradeoffs.md} | 0 .../expo}/index.md | 0 .../index.md | 0 .../metro-bundler.md} | 0 .../react-native-cli.md} | 0 .../animations.md} | 0 .../gesture.md} | 0 .../index.md | 0 .../screen-navigation.md} | 0 .../scrolling-swiping.md} | 0 .../touchables.md} | 0 .../index.md | 0 .../react-native-alternatives.md} | 0 .../what-is-react-native.md} | 0 .../why-react-native.md} | 0 .../connectivity.md} | 0 .../101-fetch.md => networking/fetch.md} | 0 .../{107-networking => networking}/index.md | 0 .../websockets.md} | 0 .../common-problem-sources.md} | 0 .../frame-rates.md} | 0 .../{114-performance => performance}/index.md | 0 .../optimizing-flatlist-config.md} | 0 .../profiling.md} | 0 .../ram-bundles.md} | 0 .../speeding-up-builds.md} | 0 .../file-extensions.md} | 0 .../index.md | 0 .../platform-module.md} | 0 .../react-native-web.md} | 0 .../101-css.md => pre-requisites/css.md} | 0 .../index.md | 0 .../javascript.md} | 0 .../react/components.md} | 0 .../react}/index.md | 0 .../react/jsx.md} | 0 .../react/props.md} | 0 .../react/state.md} | 0 .../app-store.md} | 0 .../google-store.md} | 0 .../index.md | 0 ...notifications.md => push-notifications.md} | 0 .../authentication.md} | 0 .../{111-security => security}/index.md | 0 .../networking.md} | 0 .../102-storage.md => security/storage.md} | 0 .../async-storage.md} | 0 .../expo-file-system.md} | 0 .../expo-secure-store.md} | 0 .../expo-sqlite.md} | 0 .../content/{112-storage => storage}/index.md | 0 .../other-storage-options.md} | 0 .../accessibility.md} | 0 .../content/{106-styling => styling}/index.md | 0 .../101-layouts.md => styling/layouts.md} | 0 .../stylesheets.md} | 0 .../104-appium.md => testing/appium.md} | 0 .../103-detox.md => testing/detox.md} | 0 .../content/{113-testing => testing}/index.md | 0 .../100-jest.md => testing/jest.md} | 0 .../react-native-testing-library.md} | 0 .../react-test-renderer.md} | 0 .../for-android.md} | 0 .../for-ios.md} | 0 .../index.md | 0 .../async-std.md} | 0 .../index.md | 0 .../102-smol.md => async-programming/smol.md} | 0 .../tokio.md} | 0 .../100-clap.md => cli-utils/clap.md} | 0 .../{114-cli-utils => cli-utils}/index.md | 0 .../structopt.md} | 0 .../102-termion.md => cli-utils/termion.md} | 0 .../atomic-operations.md} | 0 .../futures.md} | 0 .../index.md | 0 .../threads.md} | 0 .../index.md | 0 .../100-ring.md => cryptography/ring.md} | 0 .../rust-crypto.md} | 0 .../sodiumoxide.md} | 0 .../100-diesel.md => database-orm/diesel.md} | 0 .../index.md | 0 .../rusqlite.md} | 0 .../101-sqlx.md => database-orm/sqlx.md} | 0 .../{120-debugging => debugging}/index.md | 0 .../100-rust-gdb.md => debugging/rust-gdb.md} | 0 .../rust-lldb.md} | 0 .../embedded-hal.md} | 0 .../{117-embedded => embedded}/index.md | 0 .../102-nrf-hal.md => embedded/nrf-hal.md} | 0 .../101-rppal.md => embedded/rppal.md} | 0 .../custom-error.md} | 0 .../index.md | 0 .../option.md} | 0 .../propagating.md} | 0 .../index.md | 0 .../100-pdf-rs.md => file-parsing/pdf-rs.md} | 0 .../100-bevy.md => game-dev/bevy.md} | 0 .../101-fyrox.md => game-dev/fyrox.md} | 0 .../102-ggez.md => game-dev/ggez.md} | 0 .../{115-game-dev => game-dev}/index.md | 0 .../macroquad.md} | 0 .../104-wgpu-rs.md => game-dev/wgpu-rs.md} | 0 .../101-gtk-rs.md => gui-dev/gtk-rs.md} | 0 .../content/{116-gui-dev => gui-dev}/index.md | 0 .../102-relm.md => gui-dev/relm.md} | 0 .../100-tauri.md => gui-dev/tauri.md} | 0 .../ides-and-rust.md} | 0 .../index.md | 0 .../installing-rust.md} | 0 .../memory-safety.md} | 0 .../rust-repl.md} | 0 .../what-is-rust.md} | 0 .../why-rust.md} | 0 .../constructs/enums.md} | 0 .../constructs/impl-blocks.md} | 0 .../constructs}/index.md | 0 .../constructs/structs.md} | 0 .../constructs/traits.md} | 0 .../data-structures/arc.md} | 0 .../data-structures/array.md} | 0 .../data-structures/binary-heap.md} | 0 .../data-structures/boolean.md} | 0 .../data-structures/btree-map.md} | 0 .../data-structures/btree-set.md} | 0 .../data-structures/channels.md} | 0 .../data-structures/character.md} | 0 .../data-structures/floats.md} | 0 .../data-structures/hashmap.md} | 0 .../data-structures/hashset.md} | 0 .../data-structures}/index.md | 0 .../data-structures/integers.md} | 0 .../data-structures/linked-list.md} | 0 .../data-structures/mutex.md} | 0 .../data-structures/queue.md} | 0 .../data-structures/rc.md} | 0 .../data-structures/rwlock.md} | 0 .../data-structures/stack.md} | 0 .../data-structures/string.md} | 0 .../data-structures/tuple.md} | 0 .../data-structures/vector.md} | 0 .../index.md | 0 .../ownership/borrowing.md} | 0 .../ownership}/index.md | 0 .../ownership/rules.md} | 0 .../ownership/stack-heap.md} | 0 .../syntax/control-flow.md} | 0 .../syntax/functions.md} | 0 .../syntax}/index.md | 0 .../syntax/pattern-matching.md} | 0 .../syntax/variables.md} | 0 .../covariant.md} | 0 .../explicit-lifetime.md} | 0 .../index.md | 0 .../lifetime-elision.md} | 0 .../declarative.md} | 0 .../domain-specific.md} | 0 .../content/{107-macros => macros}/index.md | 0 .../procedural.md} | 0 .../code-organization.md} | 0 .../dependency-mgmt.md} | 0 .../index.md | 0 .../publishing.md} | 0 .../101-hyper.md => networking/hyper.md} | 0 .../{110-networking => networking}/index.md | 0 .../102-quinn.md => networking/quinn.md} | 0 .../100-reqwest.md => networking/reqwest.md} | 0 .../criterion-rs.md} | 0 .../index.md | 0 .../content/{121-rustdoc.md => rustdoc.md} | 0 .../index.md | 0 .../json-rust.md} | 0 .../100-serde.md => serialization/serde.md} | 0 .../toml-rs.md} | 0 .../content/{119-testing => testing}/index.md | 0 .../101-mocking.md => testing/mocking.md} | 0 .../unit-integration.md} | 0 .../advanced-generics.md} | 0 .../index.md | 0 .../trait-bounds.md} | 0 .../trait-def.md} | 0 .../rust/content/{118-wasm => wasm}/index.md | 0 .../wasm-bindgen.md} | 0 .../101-wasm-pack.md => wasm/wasm-pack.md} | 0 .../102-wasmer.md => wasm/wasmer.md} | 0 .../102-actix.md => web-development/actix.md} | 0 .../104-axum.md => web-development/axum.md} | 0 .../index.md | 0 .../leptos.md} | 0 .../105-poem.md => web-development/poem.md} | 0 .../rocket.md} | 0 .../101-warp.md => web-development/warp.md} | 0 .../103-yew.md => web-development/yew.md} | 0 .../blackboard-pattern.md} | 0 .../cqrs.md} | 0 .../domain-driven-design.md} | 0 .../event-sourcing.md} | 0 .../index.md | 0 .../message-queues-streams.md} | 0 .../microkernel.md} | 0 .../microservices.md} | 0 .../model-view-controller.md} | 0 .../serverless-architecture.md} | 0 .../soa.md} | 0 .../boundaries.md} | 0 .../component-principles.md} | 0 .../coupling-and-cohesion.md} | 0 .../index.md | 0 .../policy-vs-detail.md} | 0 .../distributed/client-server.md} | 0 .../distributed}/index.md | 0 .../distributed/peer-to-peer.md} | 0 .../index.md | 0 .../messaging/event-driven.md} | 0 .../messaging}/index.md | 0 .../messaging/publish-subscribe.md} | 0 .../structural/component-based.md} | 0 .../structural}/index.md | 0 .../structural/layered.md} | 0 .../structural/monolithic.md} | 0 .../avoid-hasty-abstractions.md} | 0 .../avoid-passing-nulls-booleans.md} | 0 .../be-consistent.md} | 0 .../code-by-actor.md} | 0 .../command-query-separation.md} | 0 .../indentation-and-code-style.md} | 0 .../index.md | 0 .../keep-framework-code-distant.md} | 0 .../keep-it-small.md} | 0 .../keep-tests-independent.md} | 0 .../meaningful-names.md} | 0 .../minimize-cyclomatic-complexity.md} | 0 .../pure-functions.md} | 0 .../use-correct-constructs.md} | 0 .../use-meaningful-names.md} | 0 .../gof-design-patterns.md} | 0 .../index.md | 0 .../posa-patterns.md} | 0 .../commands-queries.md} | 0 .../domain-models.md} | 0 .../dtos.md} | 0 .../entities.md} | 0 .../identity-maps.md} | 0 .../index.md | 0 .../mappers.md} | 0 .../orms.md} | 0 .../repositories.md} | 0 .../transaction-script.md} | 0 .../use-cases.md} | 0 .../value-objects.md} | 0 .../index.md | 0 .../model-driven-design/anemic-models.md} | 0 .../model-driven-design/class-invariants.md} | 0 .../model-driven-design/domain-language.md} | 0 .../model-driven-design/domain-models.md} | 0 .../model-driven-design}/index.md | 0 .../layered-architectures.md} | 0 .../paradigm-features/abstract-classes.md} | 0 .../paradigm-features/concrete-classes.md} | 0 .../paradigm-features}/index.md | 0 .../paradigm-features/interfaces.md} | 0 .../paradigm-features/scope-visibility.md} | 0 .../primary-principles/abstraction.md} | 0 .../primary-principles/encapsulation.md} | 0 .../primary-principles}/index.md | 0 .../primary-principles/inheritance.md} | 0 .../primary-principles/polymorphism.md} | 0 .../functional-programming.md} | 0 .../index.md | 0 .../object-oriented-programming.md} | 0 .../structured-programming.md} | 0 .../composition-over-inheritance.md} | 0 .../dry.md} | 0 .../encapsulate-what-varies.md} | 0 .../hollywood-principle.md} | 0 .../index.md | 0 .../program-against-abstractions.md} | 0 .../solid.md} | 0 .../yagni.md} | 0 ...utconfiguration.md => autconfiguration.md} | 0 ...-embedded-server.md => embedded-server.md} | 0 .../entity-lifecycle.md} | 0 .../{106-hibernate => hibernate}/index.md | 0 .../relationships.md} | 0 .../transactions.md} | 0 .../index.md | 0 .../spring-cloud/cloud-config.md} | 0 .../spring-cloud/eureka.md} | 0 .../spring-cloud/hystrix.md} | 0 .../spring-cloud}/index.md | 0 .../spring-cloud/sleuth.md} | 0 .../spring-cloud-circuit-breaker.md} | 0 .../spring-cloud/spring-cloud-gateway.md} | 0 .../spring-cloud/spring-cloud-openfeign.md} | 0 ...-actuators.md => spring-boot-actuators.md} | 0 ...ot-starters.md => spring-boot-starters.md} | 0 .../annotations.md} | 0 .../configuration.md} | 0 .../dependency-injection.md} | 0 .../{100-spring-core => spring-core}/index.md | 0 .../introduction/architecture.md} | 0 .../introduction}/index.md | 0 .../introduction/terminology.md} | 0 .../introduction/why-spring.md} | 0 .../spring-aop.md} | 0 .../spring-bean-scope.md} | 0 .../spring-ioc.md} | 0 .../spring-mvc.md} | 0 .../{107-spring-data => spring-data}/index.md | 0 .../spring-data-jdbc.md} | 0 .../spring-data-jpa.md} | 0 .../spring-data-mongodb.md} | 0 .../architecture.md} | 0 .../components.md} | 0 .../{109-spring-mvc => spring-mvc}/index.md | 0 .../jsp-files.md} | 0 .../100-servlet.md => spring-mvc/servlet.md} | 0 .../authentication.md} | 0 .../authorization.md} | 0 .../index.md | 0 .../jwt-authentication.md} | 0 .../oauth2.md} | 0 .../content/{110-testing => testing}/index.md | 0 .../100-jpa-test.md => testing/jpa-test.md} | 0 .../101-mock-mvc.md => testing/mock-mvc.md} | 0 .../mockbean-annotation.md} | 0 .../spring-boot-test-annotation.md} | 0 src/lib/roadmap-topic.ts | 72 -- .../index.json.ts => [roadmapId].json.ts} | 2 + src/pages/[roadmapId]/[...topicId].astro | 90 +- src/pages/[roadmapId]/courses.astro | 2 + src/pages/[roadmapId]/courses.json.ts | 33 - src/pages/[roadmapId]/index.astro | 2 + src/pages/[roadmapId]/projects.astro | 2 + src/pages/[roadmapId]/svg.astro | 2 + src/pages/authors/[authorId].astro | 2 + src/pages/authors/[authorId].json.ts | 2 + .../[bestPracticeId]/[...topicId].astro | 2 + .../[bestPracticeId]/index.astro | 2 + .../[bestPracticeId]/index.json.ts | 2 + src/pages/g/[linkGroupId]/[linkId].astro | 2 + src/pages/guides/[guideId].astro | 2 + src/pages/projects/[projectId]/index.astro | 2 + .../projects/[projectId]/solutions.astro | 2 + src/pages/questions/[questionGroupId].astro | 2 + src/pages/videos/[videoId].astro | 4 +- 1355 files changed, 452 insertions(+), 805 deletions(-) create mode 100644 scripts/rename-content.ts rename src/data/roadmaps/aws/content/{104-autoscaling/100-amis.md => autoscaling/amis.md} (100%) rename src/data/roadmaps/aws/content/{104-autoscaling/102-autoscaling-groups.md => autoscaling/autoscaling-groups.md} (100%) rename src/data/roadmaps/aws/content/{104-autoscaling/104-elb.md => autoscaling/elb.md} (100%) rename src/data/roadmaps/aws/content/{104-autoscaling => autoscaling}/index.md (100%) rename src/data/roadmaps/aws/content/{104-autoscaling/101-launch-templates.md => autoscaling/launch-templates.md} (100%) rename src/data/roadmaps/aws/content/{104-autoscaling/103-scaling-policies.md => autoscaling/scaling-policies.md} (100%) rename src/data/roadmaps/aws/content/{109-cloudfront/100-distributions.md => cloudfront/distributions.md} (100%) rename src/data/roadmaps/aws/content/{109-cloudfront => cloudfront}/index.md (100%) rename src/data/roadmaps/aws/content/{109-cloudfront/102-invalidations.md => cloudfront/invalidations.md} (100%) rename src/data/roadmaps/aws/content/{109-cloudfront/101-policies.md => cloudfront/policies.md} (100%) rename src/data/roadmaps/aws/content/{108-cloudwatch/101-events.md => cloudwatch/events.md} (100%) rename src/data/roadmaps/aws/content/{108-cloudwatch => cloudwatch}/index.md (100%) rename src/data/roadmaps/aws/content/{108-cloudwatch/102-logs.md => cloudwatch/logs.md} (100%) rename src/data/roadmaps/aws/content/{108-cloudwatch/100-metrics.md => cloudwatch/metrics.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/106-backup-restore.md => dynamodb/backup-restore.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/104-capacity-settings.md => dynamodb/capacity-settings.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/102-data-modeling.md => dynamodb/data-modeling.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/107-dynamo-local.md => dynamodb/dynamo-local.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb => dynamodb}/index.md (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/105-limits.md => dynamodb/limits.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/101-primary-keys.md => dynamodb/primary-keys.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/103-streams.md => dynamodb/streams.md} (100%) rename src/data/roadmaps/aws/content/{111-dynamodb/100-tables-items.md => dynamodb/tables-items.md} (100%) rename src/data/roadmaps/aws/content/{101-ec2/101-cpu-credits.md => ec2/cpu-credits.md} (100%) rename src/data/roadmaps/aws/content/{101-ec2/104-elastic-ip.md => ec2/elastic-ip.md} (100%) rename src/data/roadmaps/aws/content/{101-ec2 => ec2}/index.md (100%) rename src/data/roadmaps/aws/content/{101-ec2/100-instance-types.md => ec2/instance-types.md} (100%) rename src/data/roadmaps/aws/content/{101-ec2/103-keypairs.md => ec2/keypairs.md} (100%) rename src/data/roadmaps/aws/content/{101-ec2/106-purchasing-options.md => ec2/purchasing-options.md} (100%) rename src/data/roadmaps/aws/content/{101-ec2/102-storage-volume.md => ec2/storage-volume.md} (100%) rename src/data/roadmaps/aws/content/{101-ec2/105-user-data-scripts.md => ec2/user-data-scripts.md} (100%) rename src/data/roadmaps/aws/content/{114-ecr.md => ecr.md} (100%) rename src/data/roadmaps/aws/content/{113-ecs/100-clusters.md => ecs/clusters.md} (100%) rename src/data/roadmaps/aws/content/{113-ecs/104-fargate.md => ecs/fargate.md} (100%) rename src/data/roadmaps/aws/content/{113-ecs => ecs}/index.md (100%) rename src/data/roadmaps/aws/content/{113-ecs/103-launch-config.md => ecs/launch-config.md} (100%) rename src/data/roadmaps/aws/content/{113-ecs/102-services.md => ecs/services.md} (100%) rename src/data/roadmaps/aws/content/{113-ecs/101-tasks.md => ecs/tasks.md} (100%) rename src/data/roadmaps/aws/content/{115-eks.md => eks.md} (100%) rename src/data/roadmaps/aws/content/{112-elasticache => elasticache}/index.md (100%) rename src/data/roadmaps/aws/content/{112-elasticache/100-quotas.md => elasticache/quotas.md} (100%) rename src/data/roadmaps/aws/content/{103-iam => iam}/index.md (100%) rename src/data/roadmaps/aws/content/{103-iam/100-policies/100-identity-based.md => iam/policies/identity-based.md} (100%) rename src/data/roadmaps/aws/content/{103-iam/100-policies => iam/policies}/index.md (100%) rename src/data/roadmaps/aws/content/{103-iam/100-policies/101-resource-based.md => iam/policies/resource-based.md} (100%) rename src/data/roadmaps/aws/content/{103-iam/102-roles/101-assuming-roles.md => iam/roles/assuming-roles.md} (100%) rename src/data/roadmaps/aws/content/{103-iam/102-roles => iam/roles}/index.md (100%) rename src/data/roadmaps/aws/content/{103-iam/102-roles/100-instance-profiles.md => iam/roles/instance-profiles.md} (100%) rename src/data/roadmaps/aws/content/{103-iam/101-users-groups.md => iam/users-groups.md} (100%) rename src/data/roadmaps/aws/content/{100-introduction/103-aws/100-global-infra.md => introduction/aws/global-infra.md} (100%) rename src/data/roadmaps/aws/content/{100-introduction/103-aws => introduction/aws}/index.md (100%) rename src/data/roadmaps/aws/content/{100-introduction/103-aws/101-shared-respons.md => introduction/aws/shared-respons.md} (100%) rename src/data/roadmaps/aws/content/{100-introduction/103-aws/102-well-architected.md => introduction/aws/well-architected.md} (100%) rename src/data/roadmaps/aws/content/{100-introduction/100-cloud-computing.md => introduction/cloud-computing.md} (100%) rename src/data/roadmaps/aws/content/{100-introduction/101-iaas-paas-saas.md => introduction/iaas-paas-saas.md} (100%) rename src/data/roadmaps/aws/content/{100-introduction => introduction}/index.md (100%) rename src/data/roadmaps/aws/content/{100-introduction/102-public-private-hybrid.md => introduction/public-private-hybrid.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda/106-api-gateway.md => lambda/api-gateway.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda/105-cold-start-limitations.md => lambda/cold-start-limitations.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda/100-creating-invoking.md => lambda/creating-invoking.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda/102-custom-runtimes.md => lambda/custom-runtimes.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda/104-event-bridge.md => lambda/event-bridge.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda => lambda}/index.md (100%) rename src/data/roadmaps/aws/content/{116-lambda/107-lambda-edge.md => lambda/lambda-edge.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda/101-layers.md => lambda/layers.md} (100%) rename src/data/roadmaps/aws/content/{116-lambda/103-versioning-aliases.md => lambda/versioning-aliases.md} (100%) rename src/data/roadmaps/aws/content/{110-rds/102-backup-restore.md => rds/backup-restore.md} (100%) rename src/data/roadmaps/aws/content/{110-rds/100-db-instances.md => rds/db-instances.md} (100%) rename src/data/roadmaps/aws/content/{110-rds => rds}/index.md (100%) rename src/data/roadmaps/aws/content/{110-rds/101-storage-types/100-general-purpose.md => rds/storage-types/general-purpose.md} (100%) rename src/data/roadmaps/aws/content/{110-rds/101-storage-types => rds/storage-types}/index.md (100%) rename src/data/roadmaps/aws/content/{110-rds/101-storage-types/102-magnetic.md => rds/storage-types/magnetic.md} (100%) rename src/data/roadmaps/aws/content/{110-rds/101-storage-types/101-provisioned-iops.md => rds/storage-types/provisioned-iops.md} (100%) rename src/data/roadmaps/aws/content/{107-route53/102-health-checks.md => route53/health-checks.md} (100%) rename src/data/roadmaps/aws/content/{107-route53/100-hosted-zones => route53/hosted-zones}/index.md (100%) rename src/data/roadmaps/aws/content/{107-route53/100-hosted-zones/100-private.md => route53/hosted-zones/private.md} (100%) rename src/data/roadmaps/aws/content/{107-route53/100-hosted-zones/101-public.md => route53/hosted-zones/public.md} (100%) rename src/data/roadmaps/aws/content/{107-route53 => route53}/index.md (100%) rename src/data/roadmaps/aws/content/{107-route53/101-routing-policies.md => route53/routing-policies.md} (100%) rename src/data/roadmaps/aws/content/{105-s3/100-buckets-objects.md => s3/buckets-objects.md} (100%) rename src/data/roadmaps/aws/content/{105-s3 => s3}/index.md (100%) rename src/data/roadmaps/aws/content/{105-s3/101-lifecycle.md => s3/lifecycle.md} (100%) rename src/data/roadmaps/aws/content/{105-s3/102-storage-types/102-gladier.md => s3/storage-types/gladier.md} (100%) rename src/data/roadmaps/aws/content/{105-s3/102-storage-types => s3/storage-types}/index.md (100%) rename src/data/roadmaps/aws/content/{105-s3/102-storage-types/101-s3-ia.md => s3/storage-types/s3-ia.md} (100%) rename src/data/roadmaps/aws/content/{105-s3/102-storage-types/100-standard.md => s3/storage-types/standard.md} (100%) rename src/data/roadmaps/aws/content/{106-ses/104-configuration-sets.md => ses/configuration-sets.md} (100%) rename src/data/roadmaps/aws/content/{106-ses/106-dedicated-ip.md => ses/dedicated-ip.md} (100%) rename src/data/roadmaps/aws/content/{106-ses/102-dkim-setup.md => ses/dkim-setup.md} (100%) rename src/data/roadmaps/aws/content/{106-ses/103-feedback-handling.md => ses/feedback-handling.md} (100%) rename src/data/roadmaps/aws/content/{106-ses/101-identity-verification.md => ses/identity-verification.md} (100%) rename src/data/roadmaps/aws/content/{106-ses => ses}/index.md (100%) rename src/data/roadmaps/aws/content/{106-ses/100-sandbox-limits.md => ses/sandbox-limits.md} (100%) rename src/data/roadmaps/aws/content/{106-ses/105-sender-reputation.md => ses/sender-reputation.md} (100%) rename src/data/roadmaps/aws/content/{102-vpc/100-cidr-blocks.md => vpc/cidr-blocks.md} (100%) rename src/data/roadmaps/aws/content/{102-vpc => vpc}/index.md (100%) rename src/data/roadmaps/aws/content/{102-vpc/104-internet-gateway.md => vpc/internet-gateway.md} (100%) rename src/data/roadmaps/aws/content/{102-vpc/105-nat-gateway.md => vpc/nat-gateway.md} (100%) rename src/data/roadmaps/aws/content/{102-vpc/102-route-tables.md => vpc/route-tables.md} (100%) rename src/data/roadmaps/aws/content/{102-vpc/103-security-groups.md => vpc/security-groups.md} (100%) rename src/data/roadmaps/aws/content/{102-vpc/101-subnets => vpc/subnets}/index.md (100%) rename src/data/roadmaps/aws/content/{102-vpc/101-subnets/100-private.md => vpc/subnets/private.md} (100%) rename src/data/roadmaps/aws/content/{102-vpc/101-subnets/101-public.md => vpc/subnets/public.md} (100%) rename src/data/roadmaps/code-review/content/{104-api-semantics.md => api-semantics.md} (100%) rename src/data/roadmaps/code-review/content/{100-code-style.md => code-style.md} (100%) rename src/data/roadmaps/code-review/content/{102-documentation.md => documentation.md} (100%) rename src/data/roadmaps/code-review/content/{103-implementation-semantics.md => implementation-semantics.md} (100%) rename src/data/roadmaps/code-review/content/{101-tests.md => tests.md} (100%) rename src/data/roadmaps/computer-science/content/{2-3-4-trees@IaPd_zuLbiOCwoSHQLoIG.md => trees@IaPd_zuLbiOCwoSHQLoIG.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{109-advanced-data-structures/103-disjoint-set.md => advanced-data-structures/disjoint-set.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{109-advanced-data-structures/102-fenwick-trees.md => advanced-data-structures/fenwick-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{109-advanced-data-structures => advanced-data-structures}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{109-advanced-data-structures/101-segment-trees.md => advanced-data-structures/segment-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{109-advanced-data-structures/104-suffix-trees-arrays.md => advanced-data-structures/suffix-trees-arrays.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{109-advanced-data-structures/100-trie.md => advanced-data-structures/trie.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/103-asymptotic-notation/100-big-o.md => algorithmic-complexity/asymptotic-notation/big-o.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/103-asymptotic-notation/102-big-omega.md => algorithmic-complexity/asymptotic-notation/big-omega.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/103-asymptotic-notation/101-big-theta.md => algorithmic-complexity/asymptotic-notation/big-theta.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/103-asymptotic-notation => algorithmic-complexity/asymptotic-notation}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/101-calculating.md => algorithmic-complexity/calculating.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/102-common-runtimes/100-constant.md => algorithmic-complexity/common-runtimes/constant.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/102-common-runtimes/104-exponential.md => algorithmic-complexity/common-runtimes/exponential.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/102-common-runtimes/105-factorial.md => algorithmic-complexity/common-runtimes/factorial.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/102-common-runtimes => algorithmic-complexity/common-runtimes}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/102-common-runtimes/102-linear.md => algorithmic-complexity/common-runtimes/linear.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/102-common-runtimes/101-logarithmic.md => algorithmic-complexity/common-runtimes/logarithmic.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/102-common-runtimes/103-polynomial.md => algorithmic-complexity/common-runtimes/polynomial.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity => algorithmic-complexity}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{104-algorithmic-complexity/100-time-vs-space.md => algorithmic-complexity/time-vs-space.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{103-basic-data-structures/100-array.md => basic-data-structures/array.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{103-basic-data-structures/104-hash-tables.md => basic-data-structures/hash-tables.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{103-basic-data-structures => basic-data-structures}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{103-basic-data-structures/101-linked-lists.md => basic-data-structures/linked-lists.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{103-basic-data-structures/103-queues.md => basic-data-structures/queues.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{103-basic-data-structures/102-stacks.md => basic-data-structures/stacks.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{110-complex-data-structures/103-2-3-trees.md => complex-data-structures/3-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{110-complex-data-structures/100-b-bplus-trees.md => complex-data-structures/b-bplus-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{110-complex-data-structures => complex-data-structures}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{110-complex-data-structures/102-isam.md => complex-data-structures/isam.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{110-complex-data-structures/101-skip-list.md => complex-data-structures/skip-list.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{102-data-structures/101-importance-of-datastructures.md => data-structures/importance-of-datastructures.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{102-data-structures => data-structures}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{102-data-structures/100-what-are-datastructures.md => data-structures/what-are-datastructures.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/100-directed-graph.md => graph-data-structure/directed-graph.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure => graph-data-structure}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/104-minimum-spanning-tree => graph-data-structure/minimum-spanning-tree}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/104-minimum-spanning-tree/101-kruskal-algorithm.md => graph-data-structure/minimum-spanning-tree/kruskal-algorithm.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/104-minimum-spanning-tree/100-prims-algorithm.md => graph-data-structure/minimum-spanning-tree/prims-algorithm.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/102-search-algorithms/100-breadth-first-search.md => graph-data-structure/search-algorithms/breadth-first-search.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/102-search-algorithms/101-depth-first-search.md => graph-data-structure/search-algorithms/depth-first-search.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/102-search-algorithms => graph-data-structure/search-algorithms}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/103-shortest-path-algorithms/101-bellman-ford.md => graph-data-structure/shortest-path-algorithms/bellman-ford.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/103-shortest-path-algorithms/100-dijkstra-algorithm.md => graph-data-structure/shortest-path-algorithms/dijkstra-algorithm.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/103-shortest-path-algorithms => graph-data-structure/shortest-path-algorithms}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{108-graph-data-structure/101-undirected-graph.md => graph-data-structure/undirected-graph.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{111-indexing => indexing}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{111-indexing/100-linear-indexing.md => indexing/linear-indexing.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{111-indexing/101-tree-based-indexing.md => indexing/tree-based-indexing.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/104-cpp.md => language/cpp.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/103-csharp.md => language/csharp.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/102-go.md => language/go.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language => language}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/101-java.md => language/java.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/100-javascript.md => language/javascript.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/105-python.md => language/python.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/107-ruby.md => language/ruby.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{100-language/106-rust.md => language/rust.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{113-platforms-for-practice/101-edabit.md => platforms-for-practice/edabit.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{113-platforms-for-practice => platforms-for-practice}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{113-platforms-for-practice/100-leetcode.md => platforms-for-practice/leetcode.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/101-backtracking.md => problem-solving-techniques/backtracking.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/100-brute-force.md => problem-solving-techniques/brute-force.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/104-divide-and-conquer.md => problem-solving-techniques/divide-and-conquer.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/106-dynamic-programming.md => problem-solving-techniques/dynamic-programming.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/102-greedy-algorithms.md => problem-solving-techniques/greedy-algorithms.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques => problem-solving-techniques}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/103-randomised-algorithms.md => problem-solving-techniques/randomised-algorithms.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/105-recursion.md => problem-solving-techniques/recursion.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/108-sliding-window-technique.md => problem-solving-techniques/sliding-window-technique.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{112-problem-solving-techniques/107-two-pointer-techniques.md => problem-solving-techniques/two-pointer-techniques.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{101-programming-fundamentals/101-control-structures.md => programming-fundamentals/control-structures.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{101-programming-fundamentals/102-functions.md => programming-fundamentals/functions.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{101-programming-fundamentals => programming-fundamentals}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{101-programming-fundamentals/100-language-syntax.md => programming-fundamentals/language-syntax.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{101-programming-fundamentals/103-oop-basics.md => programming-fundamentals/oop-basics.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{101-programming-fundamentals/104-pseudo-code.md => programming-fundamentals/pseudo-code.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{106-search-algorithms/101-binary-search.md => search-algorithms/binary-search.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{106-search-algorithms => search-algorithms}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{106-search-algorithms/100-linear-search.md => search-algorithms/linear-search.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{105-sorting-algorithms/100-bubble-sort.md => sorting-algorithms/bubble-sort.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{105-sorting-algorithms/105-heap-sort.md => sorting-algorithms/heap-sort.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{105-sorting-algorithms => sorting-algorithms}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{105-sorting-algorithms/102-insertion-sort.md => sorting-algorithms/insertion-sort.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{105-sorting-algorithms/101-merge-sort.md => sorting-algorithms/merge-sort.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{105-sorting-algorithms/103-quick-sort.md => sorting-algorithms/quick-sort.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{105-sorting-algorithms/104-selection-sort.md => sorting-algorithms/selection-sort.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/102-avl-trees.md => tree-data-structure/avl-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/103-b-trees.md => tree-data-structure/b-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/101-binary-search-trees.md => tree-data-structure/binary-search-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/100-binary-trees.md => tree-data-structure/binary-trees.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure => tree-data-structure}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/105-search-algorithms/100-breadth-first-search.md => tree-data-structure/search-algorithms/breadth-first-search.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/105-search-algorithms/101-depth-first-search.md => tree-data-structure/search-algorithms/depth-first-search.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/105-search-algorithms => tree-data-structure/search-algorithms}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/104-tree-traversal/100-in-order-traversal.md => tree-data-structure/tree-traversal/in-order-traversal.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/104-tree-traversal => tree-data-structure/tree-traversal}/index.md (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/104-tree-traversal/102-post-order-traversal.md => tree-data-structure/tree-traversal/post-order-traversal.md} (100%) rename src/data/roadmaps/datastructures-and-algorithms/content/{107-tree-data-structure/104-tree-traversal/101-pre-order-traversal.md => tree-data-structure/tree-traversal/pre-order-traversal.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/100-avatar.md => core-components/avatar.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/102-badge.md => core-components/badge.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/101-banner.md => core-components/banner.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/103-button.md => core-components/button.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/104-card.md => core-components/card.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/105-carousel.md => core-components/carousel.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/106-dropdown.md => core-components/dropdown.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/107-icon.md => core-components/icon.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components => core-components}/index.md (100%) rename src/data/roadmaps/design-system/content/{106-core-components/108-input-checkbox.md => core-components/input-checkbox.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/109-input-radio.md => core-components/input-radio.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/111-input-switch.md => core-components/input-switch.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/110-input-text.md => core-components/input-text.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/114-list.md => core-components/list.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/115-loading-indicator.md => core-components/loading-indicator.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/116-modal.md => core-components/modal.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/112-select.md => core-components/select.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/117-tabs.md => core-components/tabs.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/113-textarea.md => core-components/textarea.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/118-toast.md => core-components/toast.md} (100%) rename src/data/roadmaps/design-system/content/{106-core-components/119-tooltip.md => core-components/tooltip.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/100-brand/101-design-principles.md => design-language/brand/design-principles.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/100-brand => design-language/brand}/index.md (100%) rename src/data/roadmaps/design-system/content/{104-design-language/100-brand/102-terminology.md => design-language/brand/terminology.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/100-brand/103-tone-of-voice.md => design-language/brand/tone-of-voice.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/100-brand/100-vision.md => design-language/brand/vision.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/100-brand/104-writing-guidelines.md => design-language/brand/writing-guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/101-guidelines/100-accessibility.md => design-language/guidelines/accessibility.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/101-guidelines => design-language/guidelines}/index.md (100%) rename src/data/roadmaps/design-system/content/{104-design-language/101-guidelines/102-microcopy-guidelines.md => design-language/guidelines/microcopy-guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/101-guidelines/101-user-onboarding.md => design-language/guidelines/user-onboarding.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language => design-language}/index.md (100%) rename src/data/roadmaps/design-system/content/{104-design-language/102-logo/104-different-file-formats.md => design-language/logo/different-file-formats.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/102-logo => design-language/logo}/index.md (100%) rename src/data/roadmaps/design-system/content/{104-design-language/102-logo/100-monochrome-version.md => design-language/logo/monochrome-version.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/102-logo/102-placement-and-clearance-guidance.md => design-language/logo/placement-and-clearance-guidance.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/102-logo/101-small-use-guidance.md => design-language/logo/small-use-guidance.md} (100%) rename src/data/roadmaps/design-system/content/{104-design-language/102-logo/103-usage-guidance.md => design-language/logo/usage-guidance.md} (100%) rename src/data/roadmaps/design-system/content/{100-design-system-basics/103-atomic-design.md => design-system-basics/atomic-design.md} (100%) rename src/data/roadmaps/design-system/content/{100-design-system-basics/106-design-system-examples.md => design-system-basics/design-system-examples.md} (100%) rename src/data/roadmaps/design-system/content/{100-design-system-basics/102-design-system-vs-component-library.md => design-system-basics/design-system-vs-component-library.md} (100%) rename src/data/roadmaps/design-system/content/{100-design-system-basics => design-system-basics}/index.md (100%) rename src/data/roadmaps/design-system/content/{100-design-system-basics/101-need-of-design-system.md => design-system-basics/need-of-design-system.md} (100%) rename src/data/roadmaps/design-system/content/{100-design-system-basics/105-stakeholders-involved.md => design-system-basics/stakeholders-involved.md} (100%) rename src/data/roadmaps/design-system/content/{100-design-system-basics/100-what-is-design-system.md => design-system-basics/what-is-design-system.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/101-component-library.md => design-system-terminology/component-library.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/100-component.md => design-system-terminology/component.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/102-design-language.md => design-system-terminology/design-language.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/103-governance.md => design-system-terminology/governance.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/104-guidelines.md => design-system-terminology/guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology => design-system-terminology}/index.md (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/105-pattern.md => design-system-terminology/pattern.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/106-pilot.md => design-system-terminology/pilot.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/107-token.md => design-system-terminology/token.md} (100%) rename src/data/roadmaps/design-system/content/{101-design-system-terminology/108-ui-kit.md => design-system-terminology/ui-kit.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/101-color/103-accessibility.md => design-tokens/color/accessibility.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/101-color/101-dark-mode.md => design-tokens/color/dark-mode.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/101-color/102-functional-colors.md => design-tokens/color/functional-colors.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/101-color/100-guidelines.md => design-tokens/color/guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/101-color => design-tokens/color}/index.md (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/100-accessibility.md => design-tokens/iconography/accessibility.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/103-grid-relation.md => design-tokens/iconography/grid-relation.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/107-guidelines.md => design-tokens/iconography/guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography => design-tokens/iconography}/index.md (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/105-keywords.md => design-tokens/iconography/keywords.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/102-naming.md => design-tokens/iconography/naming.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/106-reserved-icons.md => design-tokens/iconography/reserved-icons.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/104-sizes.md => design-tokens/iconography/sizes.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/102-iconography/101-style.md => design-tokens/iconography/style.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens => design-tokens}/index.md (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/100-layout/101-breakpoints.md => design-tokens/layout/breakpoints.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/100-layout/102-grid.md => design-tokens/layout/grid.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/100-layout => design-tokens/layout}/index.md (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/100-layout/100-spacing.md => design-tokens/layout/spacing.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/100-layout/103-units.md => design-tokens/layout/units.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/103-typography/101-grid-relation.md => design-tokens/typography/grid-relation.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/103-typography/104-guidelines.md => design-tokens/typography/guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/103-typography => design-tokens/typography}/index.md (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/103-typography/103-performance.md => design-tokens/typography/performance.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/103-typography/102-readability.md => design-tokens/typography/readability.md} (100%) rename src/data/roadmaps/design-system/content/{105-design-tokens/103-typography/100-responsiveness.md => design-tokens/typography/responsiveness.md} (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis/104-ab-tests-and-experiments.md => existing-design-analysis/ab-tests-and-experiments.md} (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis/106-documentation.md => existing-design-analysis/documentation.md} (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis/100-existing-design-process.md => existing-design-analysis/existing-design-process.md} (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis/103-identify-components.md => existing-design-analysis/identify-components.md} (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis/102-identify-design-elements.md => existing-design-analysis/identify-design-elements.md} (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis => existing-design-analysis}/index.md (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis/105-regional-requirements.md => existing-design-analysis/regional-requirements.md} (100%) rename src/data/roadmaps/design-system/content/{103-existing-design-analysis/101-visual-audit.md => existing-design-analysis/visual-audit.md} (100%) rename src/data/roadmaps/design-system/content/{102-making-a-design-system/101-from-existing-design.md => making-a-design-system/from-existing-design.md} (100%) rename src/data/roadmaps/design-system/content/{102-making-a-design-system/100-from-scratch.md => making-a-design-system/from-scratch.md} (100%) rename src/data/roadmaps/design-system/content/{102-making-a-design-system => making-a-design-system}/index.md (100%) rename src/data/roadmaps/design-system/content/{108-project-management/102-analytics/100-component-analytics.md => project-management/analytics/component-analytics.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/102-analytics/101-error-logging.md => project-management/analytics/error-logging.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/102-analytics => project-management/analytics}/index.md (100%) rename src/data/roadmaps/design-system/content/{108-project-management/102-analytics/103-service-and-health-metrics.md => project-management/analytics/service-and-health-metrics.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/102-analytics/102-tooling-analytics.md => project-management/analytics/tooling-analytics.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/101-communications/101-communication-channel.md => project-management/communications/communication-channel.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/101-communications/100-community-meetings.md => project-management/communications/community-meetings.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/101-communications/103-faqs.md => project-management/communications/faqs.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/101-communications => project-management/communications}/index.md (100%) rename src/data/roadmaps/design-system/content/{108-project-management/101-communications/102-open-hours.md => project-management/communications/open-hours.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management => project-management}/index.md (100%) rename src/data/roadmaps/design-system/content/{108-project-management/100-task-management => project-management/task-management}/index.md (100%) rename src/data/roadmaps/design-system/content/{108-project-management/100-task-management/101-milestones.md => project-management/task-management/milestones.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/100-task-management/102-roadmap.md => project-management/task-management/roadmap.md} (100%) rename src/data/roadmaps/design-system/content/{108-project-management/100-task-management/100-ticketing.md => project-management/task-management/ticketing.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/101-design/103-contribution-guidelines.md => tooling/design/contribution-guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/101-design/100-design-editor.md => tooling/design/design-editor.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/101-design => tooling/design}/index.md (100%) rename src/data/roadmaps/design-system/content/{107-tooling/101-design/101-plugins.md => tooling/design/plugins.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/101-design/102-version-control.md => tooling/design/version-control.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/104-accessibility-testing.md => tooling/development/accessibility-testing.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/102-code-style.md => tooling/development/code-style.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/107-commit-guidelines.md => tooling/development/commit-guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/100-component-catalog.md => tooling/development/component-catalog.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/109-contribution-guidelines.md => tooling/development/contribution-guidelines.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/101-documentation.md => tooling/development/documentation.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development => tooling/development}/index.md (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/108-pr-templates.md => tooling/development/pr-templates.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/106-release-strategy.md => tooling/development/release-strategy.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/105-semantic-versioning.md => tooling/development/semantic-versioning.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling/100-development/103-unit-testing.md => tooling/development/unit-testing.md} (100%) rename src/data/roadmaps/design-system/content/{107-tooling => tooling}/index.md (100%) rename src/data/roadmaps/docker/content/{106-building-container-images/100-dockerfiles.md => building-container-images/dockerfiles.md} (100%) rename src/data/roadmaps/docker/content/{106-building-container-images/101-efficient-layer-caching.md => building-container-images/efficient-layer-caching.md} (100%) rename src/data/roadmaps/docker/content/{106-building-container-images/102-image-size-and-security.md => building-container-images/image-size-and-security.md} (100%) rename src/data/roadmaps/docker/content/{106-building-container-images => building-container-images}/index.md (100%) rename src/data/roadmaps/docker/content/{107-container-registries/101-dockerhub-alt.md => container-registries/dockerhub-alt.md} (100%) rename src/data/roadmaps/docker/content/{107-container-registries/100-dockerhub.md => container-registries/dockerhub.md} (100%) rename src/data/roadmaps/docker/content/{107-container-registries/102-image-tagging-best-practices.md => container-registries/image-tagging-best-practices.md} (100%) rename src/data/roadmaps/docker/content/{107-container-registries => container-registries}/index.md (100%) rename src/data/roadmaps/docker/content/{109-container-security/100-image-security.md => container-security/image-security.md} (100%) rename src/data/roadmaps/docker/content/{109-container-security => container-security}/index.md (100%) rename src/data/roadmaps/docker/content/{109-container-security/101-runtime-security.md => container-security/runtime-security.md} (100%) rename src/data/roadmaps/docker/content/{104-data-persistence/102-bind-mounts.md => data-persistence/bind-mounts.md} (100%) rename src/data/roadmaps/docker/content/{104-data-persistence/100-ephemeral-container-fs.md => data-persistence/ephemeral-container-fs.md} (100%) rename src/data/roadmaps/docker/content/{104-data-persistence => data-persistence}/index.md (100%) rename src/data/roadmaps/docker/content/{104-data-persistence/101-volume-mounts.md => data-persistence/volume-mounts.md} (100%) rename src/data/roadmaps/docker/content/{112-deploying-containers/102-docker-swarm.md => deploying-containers/docker-swarm.md} (100%) rename src/data/roadmaps/docker/content/{112-deploying-containers => deploying-containers}/index.md (100%) rename src/data/roadmaps/docker/content/{112-deploying-containers/101-kubernetes.md => deploying-containers/kubernetes.md} (100%) rename src/data/roadmaps/docker/content/{112-deploying-containers/103-nomad.md => deploying-containers/nomad.md} (100%) rename src/data/roadmaps/docker/content/{112-deploying-containers/100-paas-options.md => deploying-containers/paas-options.md} (100%) rename src/data/roadmaps/docker/content/{111-developer-experience/103-continuous-integration.md => developer-experience/continuous-integration.md} (100%) rename src/data/roadmaps/docker/content/{111-developer-experience/101-debuggers.md => developer-experience/debuggers.md} (100%) rename src/data/roadmaps/docker/content/{111-developer-experience/100-hot-reloading.md => developer-experience/hot-reloading.md} (100%) rename src/data/roadmaps/docker/content/{111-developer-experience => developer-experience}/index.md (100%) rename src/data/roadmaps/docker/content/{111-developer-experience/102-tests.md => developer-experience/tests.md} (100%) rename src/data/roadmaps/docker/content/{103-docker-basics.md => docker-basics.md} (100%) rename src/data/roadmaps/docker/content/{110-docker-cli/101-containers.md => docker-cli/containers.md} (100%) rename src/data/roadmaps/docker/content/{110-docker-cli/100-images.md => docker-cli/images.md} (100%) rename src/data/roadmaps/docker/content/{110-docker-cli => docker-cli}/index.md (100%) rename src/data/roadmaps/docker/content/{110-docker-cli/102-networks.md => docker-cli/networks.md} (100%) rename src/data/roadmaps/docker/content/{110-docker-cli/102-volumes.md => docker-cli/volumes.md} (100%) rename src/data/roadmaps/docker/content/{102-installation-setup/100-docker-desktop.md => installation-setup/docker-desktop.md} (100%) rename src/data/roadmaps/docker/content/{102-installation-setup/101-docker-engine.md => installation-setup/docker-engine.md} (100%) rename src/data/roadmaps/docker/content/{102-installation-setup => installation-setup}/index.md (100%) rename src/data/roadmaps/docker/content/{100-introduction/102-bare-metal-vm-containers.md => introduction/bare-metal-vm-containers.md} (100%) rename src/data/roadmaps/docker/content/{100-introduction/103-docker-and-oci.md => introduction/docker-and-oci.md} (100%) rename src/data/roadmaps/docker/content/{100-introduction => introduction}/index.md (100%) rename src/data/roadmaps/docker/content/{100-introduction/101-need-for-containers.md => introduction/need-for-containers.md} (100%) rename src/data/roadmaps/docker/content/{100-introduction/100-what-are-containers.md => introduction/what-are-containers.md} (100%) rename src/data/roadmaps/docker/content/{108-running-containers/101-docker-compose.md => running-containers/docker-compose.md} (100%) rename src/data/roadmaps/docker/content/{108-running-containers/100-docker-run.md => running-containers/docker-run.md} (100%) rename src/data/roadmaps/docker/content/{108-running-containers => running-containers}/index.md (100%) rename src/data/roadmaps/docker/content/{108-running-containers/102-runtime-config-options.md => running-containers/runtime-config-options.md} (100%) rename src/data/roadmaps/docker/content/{101-underlying-technologies/101-cgroups.md => underlying-technologies/cgroups.md} (100%) rename src/data/roadmaps/docker/content/{101-underlying-technologies => underlying-technologies}/index.md (100%) rename src/data/roadmaps/docker/content/{101-underlying-technologies/100-namespaces.md => underlying-technologies/namespaces.md} (100%) rename src/data/roadmaps/docker/content/{101-underlying-technologies/102-union-filesystems.md => underlying-technologies/union-filesystems.md} (100%) rename src/data/roadmaps/docker/content/{105-using-third-party-images/102-command-line-utilities.md => using-third-party-images/command-line-utilities.md} (100%) rename src/data/roadmaps/docker/content/{105-using-third-party-images/100-databases.md => using-third-party-images/databases.md} (100%) rename src/data/roadmaps/docker/content/{105-using-third-party-images => using-third-party-images}/index.md (100%) rename src/data/roadmaps/docker/content/{105-using-third-party-images/101-interactive-test-environments.md => using-third-party-images/interactive-test-environments.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/106-async-await.md => advanced-dart/async-await.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/102-collections.md => advanced-dart/collections.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/100-core-libraries.md => advanced-dart/core-libraries.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/104-functional-programming.md => advanced-dart/functional-programming.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/108-futures.md => advanced-dart/futures.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart => advanced-dart}/index.md (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/105-isolates.md => advanced-dart/isolates.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/103-lambdas.md => advanced-dart/lambdas.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/101-lists.md => advanced-dart/lists.md} (100%) rename src/data/roadmaps/flutter/content/{110-advanced-dart/107-streams.md => advanced-dart/streams.md} (100%) rename src/data/roadmaps/flutter/content/{118-analytics/102-firebase-analytics.md => analytics/firebase-analytics.md} (100%) rename src/data/roadmaps/flutter/content/{118-analytics/103-google-analytics.md => analytics/google-analytics.md} (100%) rename src/data/roadmaps/flutter/content/{118-analytics => analytics}/index.md (100%) rename src/data/roadmaps/flutter/content/{118-analytics/101-mix-panel.md => analytics/mix-panel.md} (100%) rename src/data/roadmaps/flutter/content/{118-analytics/100-segment.md => analytics/segment.md} (100%) rename src/data/roadmaps/flutter/content/{112-animations/102-animated-builder.md => animations/animated-builder.md} (100%) rename src/data/roadmaps/flutter/content/{112-animations/103-animated-widget.md => animations/animated-widget.md} (100%) rename src/data/roadmaps/flutter/content/{112-animations/101-animation-controller.md => animations/animation-controller.md} (100%) rename src/data/roadmaps/flutter/content/{112-animations/100-curved-animations.md => animations/curved-animations.md} (100%) rename src/data/roadmaps/flutter/content/{112-animations/104-hero.md => animations/hero.md} (100%) rename src/data/roadmaps/flutter/content/{112-animations => animations}/index.md (100%) rename src/data/roadmaps/flutter/content/{112-animations/105-opacity.md => animations/opacity.md} (100%) rename src/data/roadmaps/flutter/content/{117-ci-cd/102-bitrise.md => ci-cd/bitrise.md} (100%) rename src/data/roadmaps/flutter/content/{117-ci-cd/101-codemagic.md => ci-cd/codemagic.md} (100%) rename src/data/roadmaps/flutter/content/{117-ci-cd/100-fast-lane.md => ci-cd/fast-lane.md} (100%) rename src/data/roadmaps/flutter/content/{117-ci-cd/104-firebase-app-distribution.md => ci-cd/firebase-app-distribution.md} (100%) rename src/data/roadmaps/flutter/content/{117-ci-cd/103-github-actions.md => ci-cd/github-actions.md} (100%) rename src/data/roadmaps/flutter/content/{117-ci-cd => ci-cd}/index.md (100%) rename src/data/roadmaps/flutter/content/{100-dart-basics/102-built-in-types.md => dart-basics/built-in-types.md} (100%) rename src/data/roadmaps/flutter/content/{100-dart-basics/105-control-flow-statements.md => dart-basics/control-flow-statements.md} (100%) rename src/data/roadmaps/flutter/content/{100-dart-basics/100-dart-pad.md => dart-basics/dart-pad.md} (100%) rename src/data/roadmaps/flutter/content/{100-dart-basics/103-functions.md => dart-basics/functions.md} (100%) rename src/data/roadmaps/flutter/content/{100-dart-basics => dart-basics}/index.md (100%) rename src/data/roadmaps/flutter/content/{100-dart-basics/104-operators.md => dart-basics/operators.md} (100%) rename src/data/roadmaps/flutter/content/{100-dart-basics/101-variables.md => dart-basics/variables.md} (100%) rename src/data/roadmaps/flutter/content/{119-deployment/100-appstore.md => deployment/appstore.md} (100%) rename src/data/roadmaps/flutter/content/{119-deployment/101-guidelines-and-protocols.md => deployment/guidelines-and-protocols.md} (100%) rename src/data/roadmaps/flutter/content/{119-deployment => deployment}/index.md (100%) rename src/data/roadmaps/flutter/content/{119-deployment/101-playstore.md => deployment/playstore.md} (100%) rename src/data/roadmaps/flutter/content/{106-design-principles/100-dependency-injection.md => design-principles/dependency-injection.md} (100%) rename src/data/roadmaps/flutter/content/{106-design-principles/101-design-patterns.md => design-principles/design-patterns.md} (100%) rename src/data/roadmaps/flutter/content/{106-design-principles => design-principles}/index.md (100%) rename src/data/roadmaps/flutter/content/{106-design-principles/103-oop.md => design-principles/oop.md} (100%) rename src/data/roadmaps/flutter/content/{106-design-principles/102-solid-principles.md => design-principles/solid-principles.md} (100%) rename src/data/roadmaps/flutter/content/{115-dev-tools/100-flutter-inspector.md => dev-tools/flutter-inspector.md} (100%) rename src/data/roadmaps/flutter/content/{115-dev-tools/101-flutter-outline.md => dev-tools/flutter-outline.md} (100%) rename src/data/roadmaps/flutter/content/{115-dev-tools => dev-tools}/index.md (100%) rename src/data/roadmaps/flutter/content/{115-dev-tools/102-memory-allocation.md => dev-tools/memory-allocation.md} (100%) rename src/data/roadmaps/flutter/content/{116-flutter-internals/102-immutability.md => flutter-internals/immutability.md} (100%) rename src/data/roadmaps/flutter/content/{116-flutter-internals => flutter-internals}/index.md (100%) rename src/data/roadmaps/flutter/content/{116-flutter-internals/100-render-objects.md => flutter-internals/render-objects.md} (100%) rename src/data/roadmaps/flutter/content/{116-flutter-internals/103-3-trees.md => flutter-internals/trees.md} (100%) rename src/data/roadmaps/flutter/content/{107-package-manager/101-flutter-pub-dart-pub.md => package-manager/flutter-pub-dart-pub.md} (100%) rename src/data/roadmaps/flutter/content/{107-package-manager => package-manager}/index.md (100%) rename src/data/roadmaps/flutter/content/{107-package-manager/100-pub-dev.md => package-manager/pub-dev.md} (100%) rename src/data/roadmaps/flutter/content/{114-reactive-programming => reactive-programming}/index.md (100%) rename src/data/roadmaps/flutter/content/{114-reactive-programming/100-rxdart.md => reactive-programming/rxdart.md} (100%) rename src/data/roadmaps/flutter/content/{105-repo-hosting-services/100-github.md => repo-hosting-services/github.md} (100%) rename src/data/roadmaps/flutter/content/{105-repo-hosting-services => repo-hosting-services}/index.md (100%) rename src/data/roadmaps/flutter/content/{101-setup-development-environment/100-flutter-cli.md => setup-development-environment/flutter-cli.md} (100%) rename src/data/roadmaps/flutter/content/{101-setup-development-environment/102-fvm.md => setup-development-environment/fvm.md} (100%) rename src/data/roadmaps/flutter/content/{101-setup-development-environment/101-ides/101-android-studio.md => setup-development-environment/ides/android-studio.md} (100%) rename src/data/roadmaps/flutter/content/{101-setup-development-environment/101-ides => setup-development-environment/ides}/index.md (100%) rename src/data/roadmaps/flutter/content/{101-setup-development-environment/101-ides/102-intellij-idea.md => setup-development-environment/ides/intellij-idea.md} (100%) rename src/data/roadmaps/flutter/content/{101-setup-development-environment/101-ides/100-vs-code.md => setup-development-environment/ides/vs-code.md} (100%) rename src/data/roadmaps/flutter/content/{101-setup-development-environment => setup-development-environment}/index.md (100%) rename src/data/roadmaps/flutter/content/{111-state-management/101-bloc.md => state-management/bloc.md} (100%) rename src/data/roadmaps/flutter/content/{111-state-management/107-change-notifier.md => state-management/change-notifier.md} (100%) rename src/data/roadmaps/flutter/content/{111-state-management/104-get-x.md => state-management/get-x.md} (100%) rename src/data/roadmaps/flutter/content/{111-state-management => state-management}/index.md (100%) rename src/data/roadmaps/flutter/content/{111-state-management/100-provider.md => state-management/provider.md} (100%) rename src/data/roadmaps/flutter/content/{111-state-management/105-redux.md => state-management/redux.md} (100%) rename src/data/roadmaps/flutter/content/{111-state-management/102-riverpod.md => state-management/riverpod.md} (100%) rename src/data/roadmaps/flutter/content/{111-state-management/106-value-notifier.md => state-management/value-notifier.md} (100%) rename src/data/roadmaps/flutter/content/{111-state-management/103-velocity-x.md => state-management/velocity-x.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage/102-firebase/100-authentication.md => storage/firebase/authentication.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage/102-firebase/105-cloud-functions.md => storage/firebase/cloud-functions.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage/102-firebase/102-firestore.md => storage/firebase/firestore.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage/102-firebase => storage/firebase}/index.md (100%) rename src/data/roadmaps/flutter/content/{109-storage/102-firebase/103-push-notifications.md => storage/firebase/push-notifications.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage/102-firebase/104-remote-config.md => storage/firebase/remote-config.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage/102-firebase/101-storage.md => storage/firebase/storage.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage => storage}/index.md (100%) rename src/data/roadmaps/flutter/content/{109-storage/101-shared-preferences.md => storage/shared-preferences.md} (100%) rename src/data/roadmaps/flutter/content/{109-storage/100-sqlite.md => storage/sqlite.md} (100%) rename src/data/roadmaps/flutter/content/{113-testing/104-bdd.md => testing/bdd.md} (100%) rename src/data/roadmaps/flutter/content/{113-testing => testing}/index.md (100%) rename src/data/roadmaps/flutter/content/{113-testing/102-integration-testing.md => testing/integration-testing.md} (100%) rename src/data/roadmaps/flutter/content/{113-testing/103-tdd.md => testing/tdd.md} (100%) rename src/data/roadmaps/flutter/content/{113-testing/100-unit-testing.md => testing/unit-testing.md} (100%) rename src/data/roadmaps/flutter/content/{113-testing/101-widget-testing.md => testing/widget-testing.md} (100%) rename src/data/roadmaps/flutter/content/{104-version-control-systems/100-git.md => version-control-systems/git.md} (100%) rename src/data/roadmaps/flutter/content/{104-version-control-systems => version-control-systems}/index.md (100%) rename src/data/roadmaps/flutter/content/{102-widgets => widgets}/index.md (100%) rename src/data/roadmaps/flutter/content/{102-widgets/103-inherited-widgets.md => widgets/inherited-widgets.md} (100%) rename src/data/roadmaps/flutter/content/{102-widgets/104-responsive-widgets.md => widgets/responsive-widgets.md} (100%) rename src/data/roadmaps/flutter/content/{102-widgets/101-stateful-widgets.md => widgets/stateful-widgets.md} (100%) rename src/data/roadmaps/flutter/content/{102-widgets/100-stateless-widgets.md => widgets/stateless-widgets.md} (100%) rename src/data/roadmaps/flutter/content/{102-widgets/102-styled-widgets/101-cupertino-widgets.md => widgets/styled-widgets/cupertino-widgets.md} (100%) rename src/data/roadmaps/flutter/content/{102-widgets/102-styled-widgets => widgets/styled-widgets}/index.md (100%) rename src/data/roadmaps/flutter/content/{102-widgets/102-styled-widgets/100-material-widgets.md => widgets/styled-widgets/material-widgets.md} (100%) rename src/data/roadmaps/flutter/content/{108-working-with-apis/102-graphql.md => working-with-apis/graphql.md} (100%) rename src/data/roadmaps/flutter/content/{108-working-with-apis => working-with-apis}/index.md (100%) rename src/data/roadmaps/flutter/content/{108-working-with-apis/100-json.md => working-with-apis/json.md} (100%) rename src/data/roadmaps/flutter/content/{108-working-with-apis/103-restful-apis.md => working-with-apis/restful-apis.md} (100%) rename src/data/roadmaps/flutter/content/{108-working-with-apis/101-web-sockets.md => working-with-apis/web-sockets.md} (100%) rename src/data/roadmaps/flutter/content/{103-working-with-assets/100-fonts.md => working-with-assets/fonts.md} (100%) rename src/data/roadmaps/flutter/content/{103-working-with-assets/101-images.md => working-with-assets/images.md} (100%) rename src/data/roadmaps/flutter/content/{103-working-with-assets => working-with-assets}/index.md (100%) rename src/data/roadmaps/flutter/content/{103-working-with-assets/102-other-file-types.md => working-with-assets/other-file-types.md} (100%) delete mode 100644 src/data/roadmaps/frontend/courses.json rename src/data/roadmaps/golang/content/{101-go-advanced/107-buffer.md => go-advanced/buffer.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/106-channels.md => go-advanced/channels.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/104-context.md => go-advanced/context.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/111-generics.md => go-advanced/generics.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/100-go-modules.md => go-advanced/go-modules.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/105-goroutines.md => go-advanced/goroutines.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced => go-advanced}/index.md (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/103-interfaces.md => go-advanced/interfaces.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/109-mutex.md => go-advanced/mutex.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/112-pointers.md => go-advanced/pointers.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/110-scheduler.md => go-advanced/scheduler.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/108-select.md => go-advanced/select.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/102-types-and-type-assertions.md => go-advanced/types-and-type-assertions.md} (100%) rename src/data/roadmaps/golang/content/{101-go-advanced/101-working-with-json.md => go-advanced/working-with-json.md} (100%) rename src/data/roadmaps/golang/content/{107-go-api-clients/101-graphql/101-gqlgen.md => go-api-clients/graphql/gqlgen.md} (100%) rename src/data/roadmaps/golang/content/{107-go-api-clients/101-graphql/100-graphql-go.md => go-api-clients/graphql/graphql-go.md} (100%) rename src/data/roadmaps/golang/content/{107-go-api-clients/101-graphql => go-api-clients/graphql}/index.md (100%) rename src/data/roadmaps/golang/content/{107-go-api-clients => go-api-clients}/index.md (100%) rename src/data/roadmaps/golang/content/{107-go-api-clients/100-rest/101-grequests.md => go-api-clients/rest/grequests.md} (100%) rename src/data/roadmaps/golang/content/{107-go-api-clients/100-rest/100-heimdall.md => go-api-clients/rest/heimdall.md} (100%) rename src/data/roadmaps/golang/content/{107-go-api-clients/100-rest => go-api-clients/rest}/index.md (100%) rename src/data/roadmaps/golang/content/{100-go-basics/112-arrays.md => go-basics/arrays.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/100-basic-syntax.md => go-basics/basic-syntax.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/107-conditionals.md => go-basics/conditionals.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/102-data-types.md => go-basics/data-types.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/106-errors-panic-recover.md => go-basics/errors-panic-recover.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/103-for-loop.md => go-basics/for-loop.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/108-functions.md => go-basics/functions.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics => go-basics}/index.md (100%) rename src/data/roadmaps/golang/content/{100-go-basics/115-make.md => go-basics/make.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/114-maps.md => go-basics/maps.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/109-packages.md => go-basics/packages.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/104-range.md => go-basics/range.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/113-slices.md => go-basics/slices.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/116-structs.md => go-basics/structs.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/110-type-casting.md => go-basics/type-casting.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/111-type-inference.md => go-basics/type-inference.md} (100%) rename src/data/roadmaps/golang/content/{100-go-basics/101-variables.md => go-basics/variables.md} (100%) rename src/data/roadmaps/golang/content/{102-go-building-clis/102-bubbletea.md => go-building-clis/bubbletea.md} (100%) rename src/data/roadmaps/golang/content/{102-go-building-clis/100-cobra.md => go-building-clis/cobra.md} (100%) rename src/data/roadmaps/golang/content/{102-go-building-clis => go-building-clis}/index.md (100%) rename src/data/roadmaps/golang/content/{102-go-building-clis/101-urfave-cli.md => go-building-clis/urfave-cli.md} (100%) rename src/data/roadmaps/golang/content/{105-go-logging => go-logging}/index.md (100%) rename src/data/roadmaps/golang/content/{105-go-logging/102-log-slog.md => go-logging/log-slog.md} (100%) rename src/data/roadmaps/golang/content/{105-go-logging/101-zap.md => go-logging/zap.md} (100%) rename src/data/roadmaps/golang/content/{105-go-logging/100-zerolog.md => go-logging/zerolog.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/102-go-kit.md => go-microservices/go-kit.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/104-go-zero.md => go-microservices/go-zero.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/107-grpc-gateway.md => go-microservices/grpc-gateway.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/106-grpc-go.md => go-microservices/grpc-go.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices => go-microservices}/index.md (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/103-micro.md => go-microservices/micro.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/105-protocol-buffers.md => go-microservices/protocol-buffers.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/101-rpcx.md => go-microservices/rpcx.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/108-twirp.md => go-microservices/twirp.md} (100%) rename src/data/roadmaps/golang/content/{109-go-microservices/100-watermill.md => go-microservices/watermill.md} (100%) rename src/data/roadmaps/golang/content/{103-go-orms/100-gorm.md => go-orms/gorm.md} (100%) rename src/data/roadmaps/golang/content/{103-go-orms => go-orms}/index.md (100%) rename src/data/roadmaps/golang/content/{106-go-realtime-communication/101-centrifugo.md => go-realtime-communication/centrifugo.md} (100%) rename src/data/roadmaps/golang/content/{106-go-realtime-communication => go-realtime-communication}/index.md (100%) rename src/data/roadmaps/golang/content/{106-go-realtime-communication/100-melody.md => go-realtime-communication/melody.md} (100%) rename src/data/roadmaps/golang/content/{108-go-testing-your-apps.md => go-testing-your-apps.md} (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks/100-beego.md => go-web-frameworks/beego.md} (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks/106-buffalo.md => go-web-frameworks/buffalo.md} (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks/103-echo.md => go-web-frameworks/echo.md} (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks/101-gin.md => go-web-frameworks/gin.md} (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks/105-gofiber.md => go-web-frameworks/gofiber.md} (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks/104-gorilla.md => go-web-frameworks/gorilla.md} (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks => go-web-frameworks}/index.md (100%) rename src/data/roadmaps/golang/content/{104-go-web-frameworks/102-revel.md => go-web-frameworks/revel.md} (100%) rename src/data/roadmaps/graphql/content/{109-backend-implementations/102-apollo-server.md => backend-implementations/apollo-server.md} (100%) rename src/data/roadmaps/graphql/content/{109-backend-implementations/100-graphql-http.md => backend-implementations/graphql-http.md} (100%) rename src/data/roadmaps/graphql/content/{109-backend-implementations/101-graphql-yoga.md => backend-implementations/graphql-yoga.md} (100%) rename src/data/roadmaps/graphql/content/{109-backend-implementations => backend-implementations}/index.md (100%) rename src/data/roadmaps/graphql/content/{109-backend-implementations/103-mercurius.md => backend-implementations/mercurius.md} (100%) rename src/data/roadmaps/graphql/content/{105-execution => execution}/index.md (100%) rename src/data/roadmaps/graphql/content/{105-execution/103-producing-the-result.md => execution/producing-the-result.md} (100%) rename src/data/roadmaps/graphql/content/{105-execution/101-resolvers/101-asynchronous.md => execution/resolvers/asynchronous.md} (100%) rename src/data/roadmaps/graphql/content/{105-execution/101-resolvers => execution/resolvers}/index.md (100%) rename src/data/roadmaps/graphql/content/{105-execution/101-resolvers/103-lists.md => execution/resolvers/lists.md} (100%) rename src/data/roadmaps/graphql/content/{105-execution/101-resolvers/102-scalar-coercion.md => execution/resolvers/scalar-coercion.md} (100%) rename src/data/roadmaps/graphql/content/{105-execution/101-resolvers/100-synchronous.md => execution/resolvers/synchronous.md} (100%) rename src/data/roadmaps/graphql/content/{105-execution/100-root-fields.md => execution/root-fields.md} (100%) rename src/data/roadmaps/graphql/content/{105-execution/102-validation.md => execution/validation.md} (100%) rename src/data/roadmaps/graphql/content/{108-frontend-implementations/101-apollo-client.md => frontend-implementations/apollo-client.md} (100%) rename src/data/roadmaps/graphql/content/{108-frontend-implementations => frontend-implementations}/index.md (100%) rename src/data/roadmaps/graphql/content/{108-frontend-implementations/100-relay.md => frontend-implementations/relay.md} (100%) rename src/data/roadmaps/graphql/content/{108-frontend-implementations/102-urql.md => frontend-implementations/urql.md} (100%) rename src/data/roadmaps/graphql/content/{100-graphql-introduction/104-graphql-on-the-backend.md => graphql-introduction/graphql-on-the-backend.md} (100%) rename src/data/roadmaps/graphql/content/{100-graphql-introduction/103-graphql-on-the-frontend.md => graphql-introduction/graphql-on-the-frontend.md} (100%) rename src/data/roadmaps/graphql/content/{100-graphql-introduction => graphql-introduction}/index.md (100%) rename src/data/roadmaps/graphql/content/{100-graphql-introduction/101-problems-graphql-solves.md => graphql-introduction/problems-graphql-solves.md} (100%) rename src/data/roadmaps/graphql/content/{100-graphql-introduction/102-thinking-in-graphs.md => graphql-introduction/thinking-in-graphs.md} (100%) rename src/data/roadmaps/graphql/content/{100-graphql-introduction/100-what-is-graphql.md => graphql-introduction/what-is-graphql.md} (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries/102-aliases.md => graphql-queries/aliases.md} (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries/103-arguments.md => graphql-queries/arguments.md} (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries/104-directives.md => graphql-queries/directives.md} (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries/101-fields.md => graphql-queries/fields.md} (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries/106-fragments.md => graphql-queries/fragments.md} (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries => graphql-queries}/index.md (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries/105-variables.md => graphql-queries/variables.md} (100%) rename src/data/roadmaps/graphql/content/{101-graphql-queries/100-what-are-queries.md => graphql-queries/what-are-queries.md} (100%) rename src/data/roadmaps/graphql/content/{102-mutations => mutations}/index.md (100%) rename src/data/roadmaps/graphql/content/{102-mutations/101-multiple-mutation-fields.md => mutations/multiple-mutation-fields.md} (100%) rename src/data/roadmaps/graphql/content/{102-mutations/102-operation-name.md => mutations/operation-name.md} (100%) rename src/data/roadmaps/graphql/content/{102-mutations/100-what-are-mutations.md => mutations/what-are-mutations.md} (100%) rename src/data/roadmaps/graphql/content/{107-pagination.md => pagination.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/108-arguments.md => schema/arguments.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/103-enums.md => schema/enums.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/101-fields.md => schema/fields.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema => schema}/index.md (100%) rename src/data/roadmaps/graphql/content/{104-schema/106-interfaces.md => schema/interfaces.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/105-lists.md => schema/lists.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/104-objects.md => schema/objects.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/102-scalars.md => schema/scalars.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/100-type-system.md => schema/type-system.md} (100%) rename src/data/roadmaps/graphql/content/{104-schema/107-unions.md => schema/unions.md} (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/100-graphql-over-http/102-authorization.md => serving-over-internet/graphql-over-http/authorization.md} (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/100-graphql-over-http/101-batching.md => serving-over-internet/graphql-over-http/batching.md} (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/100-graphql-over-http/100-caching.md => serving-over-internet/graphql-over-http/caching.md} (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/100-graphql-over-http => serving-over-internet/graphql-over-http}/index.md (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/101-graphql-over-websockets/101-authorization.md => serving-over-internet/graphql-over-sse/authorization.md} (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/102-graphql-over-sse => serving-over-internet/graphql-over-sse}/index.md (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/102-graphql-over-sse/100-authorization.md => serving-over-internet/graphql-over-websockets/authorization.md} (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/101-graphql-over-websockets => serving-over-internet/graphql-over-websockets}/index.md (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet/101-graphql-over-websockets/100-real-time.md => serving-over-internet/graphql-over-websockets/real-time.md} (100%) rename src/data/roadmaps/graphql/content/{106-serving-over-internet => serving-over-internet}/index.md (100%) rename src/data/roadmaps/graphql/content/{103-subscriptions/103-defer-stream-directives.md => subscriptions/defer-stream-directives.md} (100%) rename src/data/roadmaps/graphql/content/{103-subscriptions/101-event-based-subscriptions.md => subscriptions/event-based-subscriptions.md} (100%) rename src/data/roadmaps/graphql/content/{103-subscriptions => subscriptions}/index.md (100%) rename src/data/roadmaps/graphql/content/{103-subscriptions/102-live-queries.md => subscriptions/live-queries.md} (100%) rename src/data/roadmaps/graphql/content/{103-subscriptions/100-what-are-subscriptions.md => subscriptions/what-are-subscriptions.md} (100%) rename src/data/roadmaps/graphql/content/{104-validation.md => validation.md} (100%) rename src/data/roadmaps/kubernetes/content/{109-autoscaling/102-cluster-autoscaling.md => autoscaling/cluster-autoscaling.md} (100%) rename src/data/roadmaps/kubernetes/content/{109-autoscaling/100-horizontal-pod-autoscaler.md => autoscaling/horizontal-pod-autoscaler.md} (100%) rename src/data/roadmaps/kubernetes/content/{109-autoscaling => autoscaling}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{109-autoscaling/101-vertical-pod-autoscaler.md => autoscaling/vertical-pod-autoscaler.md} (100%) rename src/data/roadmaps/kubernetes/content/{105-configuration-management/100-config-maps.md => configuration-management/config-maps.md} (100%) rename src/data/roadmaps/kubernetes/content/{105-configuration-management => configuration-management}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{105-configuration-management/101-secrets.md => configuration-management/secrets.md} (100%) rename src/data/roadmaps/kubernetes/content/{101-containers.md => containers.md} (100%) rename src/data/roadmaps/kubernetes/content/{112-deployment-patterns/104-blue-green-deployments.md => deployment-patterns/blue-green-deployments.md} (100%) rename src/data/roadmaps/kubernetes/content/{112-deployment-patterns/103-canary-deployments.md => deployment-patterns/canary-deployments.md} (100%) rename src/data/roadmaps/kubernetes/content/{112-deployment-patterns/100-ci-cd-integration.md => deployment-patterns/ci-cd-integration.md} (100%) rename src/data/roadmaps/kubernetes/content/{112-deployment-patterns/101-gitops.md => deployment-patterns/gitops.md} (100%) rename src/data/roadmaps/kubernetes/content/{112-deployment-patterns/102-helm-charts.md => deployment-patterns/helm-charts.md} (100%) rename src/data/roadmaps/kubernetes/content/{112-deployment-patterns => deployment-patterns}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{112-deployment-patterns/105-rolling-updates-rollbacks.md => deployment-patterns/rolling-updates-rollbacks.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/105-control-plane-installation.md => kubernetes-advanced-topics/control-plane-installation.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/100-custom-controllers.md => kubernetes-advanced-topics/custom-controllers.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/102-custom-resource-definitions.md => kubernetes-advanced-topics/custom-resource-definitions.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/101-custom-schedulers-extenders.md => kubernetes-advanced-topics/custom-schedulers-extenders.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics => kubernetes-advanced-topics}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/103-kubernetes-extensions-and-apis.md => kubernetes-advanced-topics/kubernetes-extensions-and-apis.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/106-managing-worker-nodes.md => kubernetes-advanced-topics/managing-worker-nodes.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/107-multi-cluster-management.md => kubernetes-advanced-topics/multi-cluster-management.md} (100%) rename src/data/roadmaps/kubernetes/content/{113-kubernetes-advanced-topics/104-own-cluster.md => kubernetes-advanced-topics/own-cluster.md} (100%) rename src/data/roadmaps/kubernetes/content/{100-kubernetes-introduction => kubernetes-introduction}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{100-kubernetes-introduction/102-key-concepts-terminologies.md => kubernetes-introduction/key-concepts-terminologies.md} (100%) rename src/data/roadmaps/kubernetes/content/{100-kubernetes-introduction/103-kubernetes-alternatives.md => kubernetes-introduction/kubernetes-alternatives.md} (100%) rename src/data/roadmaps/kubernetes/content/{100-kubernetes-introduction/100-kubernetes-overview.md => kubernetes-introduction/kubernetes-overview.md} (100%) rename src/data/roadmaps/kubernetes/content/{100-kubernetes-introduction/101-why-kubernetes.md => kubernetes-introduction/why-kubernetes.md} (100%) rename src/data/roadmaps/kubernetes/content/{107-kubernetes-security/102-container-and-pod-security.md => kubernetes-security/container-and-pod-security.md} (100%) rename src/data/roadmaps/kubernetes/content/{107-kubernetes-security => kubernetes-security}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{107-kubernetes-security/101-network-security.md => kubernetes-security/network-security.md} (100%) rename src/data/roadmaps/kubernetes/content/{107-kubernetes-security/100-role-based-acccess-control.md => kubernetes-security/role-based-acccess-control.md} (100%) rename src/data/roadmaps/kubernetes/content/{107-kubernetes-security/103-security-scanners.md => kubernetes-security/security-scanners.md} (100%) rename src/data/roadmaps/kubernetes/content/{108-monitoring-and-logging => monitoring-and-logging}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{108-monitoring-and-logging/100-logs.md => monitoring-and-logging/logs.md} (100%) rename src/data/roadmaps/kubernetes/content/{108-monitoring-and-logging/101-metrics.md => monitoring-and-logging/metrics.md} (100%) rename src/data/roadmaps/kubernetes/content/{108-monitoring-and-logging/104-observability-engines.md => monitoring-and-logging/observability-engines.md} (100%) rename src/data/roadmaps/kubernetes/content/{108-monitoring-and-logging/103-resource-health.md => monitoring-and-logging/resource-health.md} (100%) rename src/data/roadmaps/kubernetes/content/{108-monitoring-and-logging/102-traces.md => monitoring-and-logging/traces.md} (100%) rename src/data/roadmaps/kubernetes/content/{106-resource-management/101-assigning-quotas-to-namespaces.md => resource-management/assigning-quotas-to-namespaces.md} (100%) rename src/data/roadmaps/kubernetes/content/{106-resource-management => resource-management}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{106-resource-management/102-monitoring-and-optimizing-resource-usage.md => resource-management/monitoring-and-optimizing-resource-usage.md} (100%) rename src/data/roadmaps/kubernetes/content/{106-resource-management/100-setting-resource-requests-and-limits.md => resource-management/setting-resource-requests-and-limits.md} (100%) rename src/data/roadmaps/kubernetes/content/{103-running-applications/102-deployments.md => running-applications/deployments.md} (100%) rename src/data/roadmaps/kubernetes/content/{103-running-applications => running-applications}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{103-running-applications/104-jobs.md => running-applications/jobs.md} (100%) rename src/data/roadmaps/kubernetes/content/{103-running-applications/100-pods.md => running-applications/pods.md} (100%) rename src/data/roadmaps/kubernetes/content/{103-running-applications/101-replicasets.md => running-applications/replicasets.md} (100%) rename src/data/roadmaps/kubernetes/content/{103-running-applications/103-statefulsets.md => running-applications/statefulsets.md} (100%) rename src/data/roadmaps/kubernetes/content/{110-scheduling/104-evictions.md => scheduling/evictions.md} (100%) rename src/data/roadmaps/kubernetes/content/{110-scheduling => scheduling}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{110-scheduling/103-pod-priorities.md => scheduling/pod-priorities.md} (100%) rename src/data/roadmaps/kubernetes/content/{110-scheduling/100-scheduling-basics.md => scheduling/scheduling-basics.md} (100%) rename src/data/roadmaps/kubernetes/content/{110-scheduling/101-taints-and-tolerations.md => scheduling/taints-and-tolerations.md} (100%) rename src/data/roadmaps/kubernetes/content/{110-scheduling/102-topology-spread-constraints.md => scheduling/topology-spread-constraints.md} (100%) rename src/data/roadmaps/kubernetes/content/{104-services-and-networking/102-external-access-to-services.md => services-and-networking/external-access-to-services.md} (100%) rename src/data/roadmaps/kubernetes/content/{104-services-and-networking => services-and-networking}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{104-services-and-networking/101-load-balancing.md => services-and-networking/load-balancing.md} (100%) rename src/data/roadmaps/kubernetes/content/{104-services-and-networking/100-networking-and-pod-to-pod-communication.md => services-and-networking/networking-and-pod-to-pod-communication.md} (100%) rename src/data/roadmaps/kubernetes/content/{102-setting-up-kubernetes/101-choosing-a-managed-provider.md => setting-up-kubernetes/choosing-a-managed-provider.md} (100%) rename src/data/roadmaps/kubernetes/content/{102-setting-up-kubernetes/102-deploying-your-first-application.md => setting-up-kubernetes/deploying-your-first-application.md} (100%) rename src/data/roadmaps/kubernetes/content/{102-setting-up-kubernetes => setting-up-kubernetes}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{102-setting-up-kubernetes/100-installing-a-local-cluster.md => setting-up-kubernetes/installing-a-local-cluster.md} (100%) rename src/data/roadmaps/kubernetes/content/{111-storage-and-volumes/100-csi-drivers.md => storage-and-volumes/csi-drivers.md} (100%) rename src/data/roadmaps/kubernetes/content/{111-storage-and-volumes => storage-and-volumes}/index.md (100%) rename src/data/roadmaps/kubernetes/content/{111-storage-and-volumes/101-stateful-applications.md => storage-and-volumes/stateful-applications.md} (100%) rename src/data/roadmaps/linux/content/{113-backup-tools.md => backup-tools.md} (100%) rename src/data/roadmaps/linux/content/{111-booting-linux/101-boot-loaders.md => booting-linux/boot-loaders.md} (100%) rename src/data/roadmaps/linux/content/{111-booting-linux => booting-linux}/index.md (100%) rename src/data/roadmaps/linux/content/{111-booting-linux/100-logs.md => booting-linux/logs.md} (100%) rename src/data/roadmaps/linux/content/{116-containerization/101-cgroups.md => containerization/cgroups.md} (100%) rename src/data/roadmaps/linux/content/{116-containerization/102-container-runtime.md => containerization/container-runtime.md} (100%) rename src/data/roadmaps/linux/content/{116-containerization/103-docker.md => containerization/docker.md} (100%) rename src/data/roadmaps/linux/content/{116-containerization => containerization}/index.md (100%) rename src/data/roadmaps/linux/content/{116-containerization/100-ulimits.md => containerization/ulimits.md} (100%) rename src/data/roadmaps/linux/content/{110-disks-filesystems/103-adding-disks.md => disks-filesystems/adding-disks.md} (100%) rename src/data/roadmaps/linux/content/{110-disks-filesystems/101-filesystems.md => disks-filesystems/filesystems.md} (100%) rename src/data/roadmaps/linux/content/{110-disks-filesystems => disks-filesystems}/index.md (100%) rename src/data/roadmaps/linux/content/{110-disks-filesystems/100-inodes.md => disks-filesystems/inodes.md} (100%) rename src/data/roadmaps/linux/content/{110-disks-filesystems/105-lvm.md => disks-filesystems/lvm.md} (100%) rename src/data/roadmaps/linux/content/{110-disks-filesystems/102-mounts.md => disks-filesystems/mounts.md} (100%) rename src/data/roadmaps/linux/content/{110-disks-filesystems/104-swap.md => disks-filesystems/swap.md} (100%) rename src/data/roadmaps/linux/content/{101-editing-files => editing-files}/index.md (100%) rename src/data/roadmaps/linux/content/{101-editing-files/101-nano.md => editing-files/nano.md} (100%) rename src/data/roadmaps/linux/content/{101-editing-files/100-vim.md => editing-files/vim.md} (100%) rename src/data/roadmaps/linux/content/{100-navigation-basics/100-basic-commands.md => navigation-basics/basic-commands.md} (100%) rename src/data/roadmaps/linux/content/{100-navigation-basics/102-creating-files.md => navigation-basics/creating-files.md} (100%) rename src/data/roadmaps/linux/content/{100-navigation-basics/103-directory-hierarchy.md => navigation-basics/directory-hierarchy.md} (100%) rename src/data/roadmaps/linux/content/{100-navigation-basics => navigation-basics}/index.md (100%) rename src/data/roadmaps/linux/content/{100-navigation-basics/101-moving-files.md => navigation-basics/moving-files.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/103-dhcp.md => networking/dhcp.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/105-dns-resolution.md => networking/dns-resolution.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/102-ethernet-arp-rarp.md => networking/ethernet-arp-rarp.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/108-file-transfer.md => networking/file-transfer.md} (100%) rename src/data/roadmaps/linux/content/{112-networking => networking}/index.md (100%) rename src/data/roadmaps/linux/content/{112-networking/104-ip-routing.md => networking/ip-routing.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/106-netfilter.md => networking/netfilter.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/107-ssh.md => networking/ssh.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/101-subnetting.md => networking/subnetting.md} (100%) rename src/data/roadmaps/linux/content/{112-networking/100-tcp-ip.md => networking/tcp-ip.md} (100%) rename src/data/roadmaps/linux/content/{109-package-management/102-finding-installing-packages.md => package-management/finding-installing-packages.md} (100%) rename src/data/roadmaps/linux/content/{109-package-management => package-management}/index.md (100%) rename src/data/roadmaps/linux/content/{109-package-management/104-install-remove-ugprade-packages.md => package-management/install-remove-ugprade-packages.md} (100%) rename src/data/roadmaps/linux/content/{109-package-management/103-listing-installed-packages.md => package-management/listing-installed-packages.md} (100%) rename src/data/roadmaps/linux/content/{109-package-management/100-repositories.md => package-management/repositories.md} (100%) rename src/data/roadmaps/linux/content/{109-package-management/101-snap.md => package-management/snap.md} (100%) rename src/data/roadmaps/linux/content/{106-process-management/100-bg-fg-processes.md => process-management/bg-fg-processes.md} (100%) rename src/data/roadmaps/linux/content/{106-process-management => process-management}/index.md (100%) rename src/data/roadmaps/linux/content/{106-process-management/103-kill-processes.md => process-management/kill-processes.md} (100%) rename src/data/roadmaps/linux/content/{106-process-management/101-listing-finding-proc.md => process-management/listing-finding-proc.md} (100%) rename src/data/roadmaps/linux/content/{106-process-management/105-proc-forking.md => process-management/proc-forking.md} (100%) rename src/data/roadmaps/linux/content/{106-process-management/104-proc-priorities.md => process-management/proc-priorities.md} (100%) rename src/data/roadmaps/linux/content/{106-process-management/102-proc-signals.md => process-management/proc-signals.md} (100%) rename src/data/roadmaps/linux/content/{105-server-review/101-auth-logs.md => server-review/auth-logs.md} (100%) rename src/data/roadmaps/linux/content/{105-server-review/103-available-mem.md => server-review/available-mem.md} (100%) rename src/data/roadmaps/linux/content/{105-server-review => server-review}/index.md (100%) rename src/data/roadmaps/linux/content/{105-server-review/102-services-running.md => server-review/services-running.md} (100%) rename src/data/roadmaps/linux/content/{105-server-review/100-uptime-load.md => server-review/uptime-load.md} (100%) rename src/data/roadmaps/linux/content/{108-service-management/102-check-logs.md => service-management/check-logs.md} (100%) rename src/data/roadmaps/linux/content/{108-service-management/103-creating-services.md => service-management/creating-services.md} (100%) rename src/data/roadmaps/linux/content/{108-service-management => service-management}/index.md (100%) rename src/data/roadmaps/linux/content/{108-service-management/100-service-status.md => service-management/service-status.md} (100%) rename src/data/roadmaps/linux/content/{108-service-management/101-start-stop-service.md => service-management/start-stop-service.md} (100%) rename src/data/roadmaps/linux/content/{102-shell-basics/102-command-help.md => shell-basics/command-help.md} (100%) rename src/data/roadmaps/linux/content/{102-shell-basics/100-command-path.md => shell-basics/command-path.md} (100%) rename src/data/roadmaps/linux/content/{102-shell-basics/101-environment-variables.md => shell-basics/environment-variables.md} (100%) rename src/data/roadmaps/linux/content/{102-shell-basics => shell-basics}/index.md (100%) rename src/data/roadmaps/linux/content/{102-shell-basics/103-redirects.md => shell-basics/redirects.md} (100%) rename src/data/roadmaps/linux/content/{102-shell-basics/104-super-user.md => shell-basics/super-user.md} (100%) rename src/data/roadmaps/linux/content/{114-shell-programming/101-conditionals.md => shell-programming/conditionals.md} (100%) rename src/data/roadmaps/linux/content/{114-shell-programming/100-debugging.md => shell-programming/debugging.md} (100%) rename src/data/roadmaps/linux/content/{114-shell-programming => shell-programming}/index.md (100%) rename src/data/roadmaps/linux/content/{114-shell-programming/103-literals.md => shell-programming/literals.md} (100%) rename src/data/roadmaps/linux/content/{114-shell-programming/102-loops.md => shell-programming/loops.md} (100%) rename src/data/roadmaps/linux/content/{114-shell-programming/104-variables.md => shell-programming/variables.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/117-awk.md => text-processing/awk.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/101-cut.md => text-processing/cut.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/113-expand.md => text-processing/expand.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/116-grep.md => text-processing/grep.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/105-head.md => text-processing/head.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing => text-processing}/index.md (100%) rename src/data/roadmaps/linux/content/{104-text-processing/107-join.md => text-processing/join.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/111-nl.md => text-processing/nl.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/102-paste.md => text-processing/paste.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/109-pipe.md => text-processing/pipe.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/103-sort.md => text-processing/sort.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/108-split.md => text-processing/split.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/100-stdout-in-err.md => text-processing/stdout-in-err.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/106-tail.md => text-processing/tail.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/110-tee.md => text-processing/tee.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/104-tr.md => text-processing/tr.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/114-unexpand.md => text-processing/unexpand.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/115-uniq.md => text-processing/uniq.md} (100%) rename src/data/roadmaps/linux/content/{104-text-processing/112-wc.md => text-processing/wc.md} (100%) rename src/data/roadmaps/linux/content/{115-troubleshooting/100-icmp.md => troubleshooting/icmp.md} (100%) rename src/data/roadmaps/linux/content/{115-troubleshooting => troubleshooting}/index.md (100%) rename src/data/roadmaps/linux/content/{115-troubleshooting/103-netstat.md => troubleshooting/netstat.md} (100%) rename src/data/roadmaps/linux/content/{115-troubleshooting/104-packet-analysis.md => troubleshooting/packet-analysis.md} (100%) rename src/data/roadmaps/linux/content/{115-troubleshooting/101-ping.md => troubleshooting/ping.md} (100%) rename src/data/roadmaps/linux/content/{115-troubleshooting/102-traceroute.md => troubleshooting/traceroute.md} (100%) rename src/data/roadmaps/linux/content/{107-user-management/100-create-update.md => user-management/create-update.md} (100%) rename src/data/roadmaps/linux/content/{107-user-management => user-management}/index.md (100%) rename src/data/roadmaps/linux/content/{107-user-management/102-permissions.md => user-management/permissions.md} (100%) rename src/data/roadmaps/linux/content/{107-user-management/101-user-groups.md => user-management/user-groups.md} (100%) rename src/data/roadmaps/linux/content/{103-working-with-files/101-archiving.md => working-with-files/archiving.md} (100%) rename src/data/roadmaps/linux/content/{103-working-with-files/102-copying-renaming.md => working-with-files/copying-renaming.md} (100%) rename src/data/roadmaps/linux/content/{103-working-with-files => working-with-files}/index.md (100%) rename src/data/roadmaps/linux/content/{103-working-with-files/100-permissions.md => working-with-files/permissions.md} (100%) rename src/data/roadmaps/linux/content/{103-working-with-files/103-soft-hard-links.md => working-with-files/soft-hard-links.md} (100%) rename src/data/roadmaps/mongodb/content/{102-collections/105-bulk-write.md => collections/bulk-write.md} (100%) rename src/data/roadmaps/mongodb/content/{102-collections/100-counting-documents.md => collections/counting-documents.md} (100%) rename src/data/roadmaps/mongodb/content/{102-collections/104-delete-methods.md => collections/delete-methods.md} (100%) rename src/data/roadmaps/mongodb/content/{102-collections/102-find-methods.md => collections/find-methods.md} (100%) rename src/data/roadmaps/mongodb/content/{102-collections => collections}/index.md (100%) rename src/data/roadmaps/mongodb/content/{102-collections/101-insert-methods.md => collections/insert-methods.md} (100%) rename src/data/roadmaps/mongodb/content/{102-collections/103-update-methods.md => collections/update-methods.md} (100%) rename src/data/roadmaps/mongodb/content/{102-collections/106-validate.md => collections/validate.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/104-array.md => datatypes/array.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/106-binary-data.md => datatypes/binary-data.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/109-boolean.md => datatypes/boolean.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/100-bson-vs-json.md => datatypes/bson-vs-json.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/110-date.md => datatypes/date.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/118-decimal128.md => datatypes/decimal128.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/102-double.md => datatypes/double.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/101-embedded-documents-arrays.md => datatypes/embedded-documents-arrays.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes => datatypes}/index.md (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/115-int.md => datatypes/int.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/113-javascript.md => datatypes/javascript.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/116-long.md => datatypes/long.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/120-max-key.md => datatypes/max-key.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/119-min-key.md => datatypes/min-key.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/111-null.md => datatypes/null.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/108-object-id.md => datatypes/object-id.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/105-object.md => datatypes/object.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/112-regex.md => datatypes/regex.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/103-string.md => datatypes/string.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/114-symbol.md => datatypes/symbol.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/117-timestamp.md => datatypes/timestamp.md} (100%) rename src/data/roadmaps/mongodb/content/{101-datatypes/107-undefined.md => datatypes/undefined.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools => developer-tools}/backup-recovery/index.md (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/backup-recovery/100-mongodump.md => developer-tools/backup-recovery/mongodump.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/backup-recovery/101-mongorestore.md => developer-tools/backup-recovery/mongorestore.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/102-developer-tools => developer-tools/developer-tools}/index.md (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/102-developer-tools/101-vs-analyzer.md => developer-tools/developer-tools/vs-analyzer.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/102-developer-tools/100-vs-code-extension.md => developer-tools/developer-tools/vs-code-extension.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools => developer-tools}/index.md (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/100-language-drivers.md => developer-tools/language-drivers.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/101-mongodb-connectors/102-elastic-search.md => developer-tools/mongodb-connectors/elastic-search.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/101-mongodb-connectors => developer-tools/mongodb-connectors}/index.md (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/101-mongodb-connectors/100-kafka.md => developer-tools/mongodb-connectors/kafka.md} (100%) rename src/data/roadmaps/mongodb/content/{108-developer-tools/101-mongodb-connectors/101-spark.md => developer-tools/mongodb-connectors/spark.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/100-group.md => mongodb-aggregation/common-operators/group.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/105-limit.md => mongodb-aggregation/common-operators/limit.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/107-lookup.md => mongodb-aggregation/common-operators/lookup.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/101-match.md => mongodb-aggregation/common-operators/match.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/103-project.md => mongodb-aggregation/common-operators/project.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/104-skip.md => mongodb-aggregation/common-operators/skip.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/102-sort.md => mongodb-aggregation/common-operators/sort.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/107-sum.md => mongodb-aggregation/common-operators/sum.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/101-common-operators/106-unwind.md => mongodb-aggregation/common-operators/unwind.md} (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation => mongodb-aggregation}/index.md (100%) rename src/data/roadmaps/mongodb/content/{106-mongodb-aggregation/100-pipelines-stages-operators.md => mongodb-aggregation/pipelines-stages-operators.md} (100%) rename src/data/roadmaps/mongodb/content/{100-mongodb-basics => mongodb-basics}/index.md (100%) rename src/data/roadmaps/mongodb/content/{100-mongodb-basics/104-mongodb-terminology.md => mongodb-basics/mongodb-terminology.md} (100%) rename src/data/roadmaps/mongodb/content/{100-mongodb-basics/100-sql-vs-nosql.md => mongodb-basics/sql-vs-nosql.md} (100%) rename src/data/roadmaps/mongodb/content/{100-mongodb-basics/103-what-is-mongodb-atlas.md => mongodb-basics/what-is-mongodb-atlas.md} (100%) rename src/data/roadmaps/mongodb/content/{100-mongodb-basics/101-what-is-mongodb.md => mongodb-basics/what-is-mongodb.md} (100%) rename src/data/roadmaps/mongodb/content/{100-mongodb-basics/102-when-to-use-mongodb.md => mongodb-basics/when-to-use-mongodb.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/encryption/103-client-side-field-level-encryption.md => mongodb-security/encryption/client-side-field-level-encryption.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/encryption/100-encryption-at-rest.md => mongodb-security/encryption/encryption-at-rest.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security => mongodb-security}/encryption/index.md (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/encryption/101-queryable-encryption.md => mongodb-security/encryption/queryable-encryption.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security => mongodb-security}/index.md (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/102-kerberos-authentication.md => mongodb-security/kerberos-authentication.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/103-ldap-proxy-auth.md => mongodb-security/ldap-proxy-auth.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/104-mongodb-audit.md => mongodb-security/mongodb-audit.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/100-role-based-access-control.md => mongodb-security/role-based-access-control.md} (100%) rename src/data/roadmaps/mongodb/content/{110-mongodb-security/101-x509-certificate-auth.md => mongodb-security/x509-certificate-auth.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/101-atlas-search-indexes.md => performance-optimization/atlas-search-indexes.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/index-types/103-compound.md => performance-optimization/index-types/compound.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/index-types/100-expiring.md => performance-optimization/index-types/expiring.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/index-types/101-geospatial.md => performance-optimization/index-types/geospatial.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization => performance-optimization}/index-types/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/index-types/104-single-field.md => performance-optimization/index-types/single-field.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/index-types/102-text.md => performance-optimization/index-types/text.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization => performance-optimization}/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/100-indexes.md => performance-optimization/indexes.md} (100%) rename src/data/roadmaps/mongodb/content/{105-performance-optimization/102-query-optimization.md => performance-optimization/query-optimization.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/102-array-operators/102-all.md => query-operators/array-operators/all.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/102-array-operators/103-elem-match.md => query-operators/array-operators/elem-match.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/102-array-operators/100-in.md => query-operators/array-operators/in.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/102-array-operators => query-operators/array-operators}/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/102-array-operators/101-nin.md => query-operators/array-operators/nin.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/102-array-operators/104-size.md => query-operators/array-operators/size.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/101-comparison-operators/100-eq.md => query-operators/comparison-operators/eq.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/101-comparison-operators/101-gt.md => query-operators/comparison-operators/gt.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/101-comparison-operators/104-gte.md => query-operators/comparison-operators/gte.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/101-comparison-operators => query-operators/comparison-operators}/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/101-comparison-operators/102-lt.md => query-operators/comparison-operators/lt.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/101-comparison-operators/103-lte.md => query-operators/comparison-operators/lte.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/101-comparison-operators/105-ne.md => query-operators/comparison-operators/ne.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/103-element-operators/100-exists.md => query-operators/element-operators/exists.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/103-element-operators => query-operators/element-operators}/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/103-element-operators/102-regex.md => query-operators/element-operators/regex.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/103-element-operators/101-type.md => query-operators/element-operators/type.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators => query-operators}/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/100-indexes.md => query-operators/indexes.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/104-logical-operators/100-and.md => query-operators/logical-operators/and.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/104-logical-operators => query-operators/logical-operators}/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/104-logical-operators/103-nor.md => query-operators/logical-operators/nor.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/104-logical-operators/102-not.md => query-operators/logical-operators/not.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/104-logical-operators/101-or.md => query-operators/logical-operators/or.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/100-projection-operators/102-exclude.md => query-operators/projection-operators/exclude.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/100-projection-operators/101-include.md => query-operators/projection-operators/include.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/100-projection-operators => query-operators/projection-operators}/index.md (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/100-projection-operators/100-project.md => query-operators/projection-operators/project.md} (100%) rename src/data/roadmaps/mongodb/content/{105-query-operators/100-projection-operators/103-slice.md => query-operators/projection-operators/slice.md} (100%) rename src/data/roadmaps/mongodb/content/{109-scaling-mongodb.md => scaling-mongodb.md} (100%) rename src/data/roadmaps/mongodb/content/{107-transactions.md => transactions.md} (100%) rename src/data/roadmaps/mongodb/content/{102-useful-concepts/101-cursors.md => useful-concepts/cursors.md} (100%) rename src/data/roadmaps/mongodb/content/{102-useful-concepts => useful-concepts}/index.md (100%) rename src/data/roadmaps/mongodb/content/{102-useful-concepts/100-read-write-concerns.md => useful-concepts/read-write-concerns.md} (100%) rename src/data/roadmaps/mongodb/content/{102-useful-concepts/102-retryable-reads-writes.md => useful-concepts/retryable-reads-writes.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{100-basic-llm/102-how-llms-built.md => basic-llm/how-llms-built.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{100-basic-llm => basic-llm}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{100-basic-llm/101-llm-types.md => basic-llm/llm-types.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{100-basic-llm/103-llm-vocabulary.md => basic-llm/llm-vocabulary.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{100-basic-llm/100-what-are-llms.md => basic-llm/what-are-llms.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{108-image-prompting/103-deformed-generations.md => image-prompting/deformed-generations.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{108-image-prompting => image-prompting}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{108-image-prompting/101-quality-boosters.md => image-prompting/quality-boosters.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{108-image-prompting/100-style-modifiers.md => image-prompting/style-modifiers.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{108-image-prompting/102-weighted-terms.md => image-prompting/weighted-terms.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{104-llm-pitfalls/101-bias.md => llm-pitfalls/bias.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{104-llm-pitfalls/100-citing-sources.md => llm-pitfalls/citing-sources.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{104-llm-pitfalls/102-hallucinations.md => llm-pitfalls/hallucinations.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{104-llm-pitfalls => llm-pitfalls}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{104-llm-pitfalls/103-math.md => llm-pitfalls/math.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{104-llm-pitfalls/104-prompt-hacking.md => llm-pitfalls/prompt-hacking.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{106-llm-settings => llm-settings}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{106-llm-settings/102-other-hyper-params.md => llm-settings/other-hyper-params.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{106-llm-settings/100-temperature.md => llm-settings/temperature.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{106-llm-settings/101-top-p.md => llm-settings/top-p.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{107-prompt-hacking/103-defensive-measures.md => prompt-hacking/defensive-measures.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{107-prompt-hacking => prompt-hacking}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{107-prompt-hacking/102-jailbreaking.md => prompt-hacking/jailbreaking.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{107-prompt-hacking/104-offensive-measures.md => prompt-hacking/offensive-measures.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{107-prompt-hacking/100-prompt-injection.md => prompt-hacking/prompt-injection.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{107-prompt-hacking/101-prompt-leaking.md => prompt-hacking/prompt-leaking.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{101-prompting-introduction/100-basic-prompting.md => prompting-introduction/basic-prompting.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{101-prompting-introduction => prompting-introduction}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{101-prompting-introduction/101-need-for-prompting.md => prompting-introduction/need-for-prompting.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/103-give-conditions.md => prompts/good-prompts/give-conditions.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/104-give-examples.md => prompts/good-prompts/give-examples.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/105-include-steps.md => prompts/good-prompts/include-steps.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts => prompts}/good-prompts/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/107-iterate-refine.md => prompts/good-prompts/iterate-refine.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/101-structured-data.md => prompts/good-prompts/structured-data.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/102-style-information.md => prompts/good-prompts/style-information.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/100-use-delimiters.md => prompts/good-prompts/use-delimiters.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/good-prompts/106-workout-solution.md => prompts/good-prompts/workout-solution.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts => prompts}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/101-parts-of-a-prompt.md => prompts/parts-of-a-prompt.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/prompting-techniques/102-chain-of-thought.md => prompts/prompting-techniques/chain-of-thought.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/prompting-techniques/106-combining-techniques.md => prompts/prompting-techniques/combining-techniques.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/prompting-techniques/105-dual-prompt.md => prompts/prompting-techniques/dual-prompt.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/prompting-techniques/101-few-shot-prompting.md => prompts/prompting-techniques/few-shot-prompting.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts => prompts}/prompting-techniques/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/prompting-techniques/104-least-to-most.md => prompts/prompting-techniques/least-to-most.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/prompting-techniques/100-role-prompting.md => prompts/prompting-techniques/role-prompting.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{102-prompts/prompting-techniques/103-zeroshot-chain-of-thought.md => prompts/prompting-techniques/zeroshot-chain-of-thought.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{103-real-world/103-coding-assistance.md => real-world/coding-assistance.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{103-real-world/105-designing-chatbots.md => real-world/designing-chatbots.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{103-real-world => real-world}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{103-real-world/101-inferring.md => real-world/inferring.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{103-real-world/100-structured-data.md => real-world/structured-data.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{103-real-world/104-study-buddy.md => real-world/study-buddy.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{103-real-world/102-writing-emails.md => real-world/writing-emails.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{105-reliability/103-calibrating-llms.md => reliability/calibrating-llms.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{105-reliability/100-debiasing.md => reliability/debiasing.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{105-reliability/101-ensembling.md => reliability/ensembling.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{105-reliability => reliability}/index.md (100%) rename src/data/roadmaps/prompt-engineering/content/{105-reliability/104-math.md => reliability/math.md} (100%) rename src/data/roadmaps/prompt-engineering/content/{105-reliability/102-self-evaluation.md => reliability/self-evaluation.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/107-activity-indicator.md => core-components/activity-indicator.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/102-button.md => core-components/button.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/104-image-background.md => core-components/image-background.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/103-image.md => core-components/image.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components => core-components}/index.md (100%) rename src/data/roadmaps/react-native/content/{104-core-components/111-listings => core-components/listings}/index.md (100%) rename src/data/roadmaps/react-native/content/{104-core-components/111-listings/101-list-views => core-components/listings/list-views}/flat-list.md (100%) rename src/data/roadmaps/react-native/content/{104-core-components/111-listings/101-list-views => core-components/listings/list-views}/index.md (100%) rename src/data/roadmaps/react-native/content/{104-core-components/111-listings/101-list-views => core-components/listings/list-views}/section-list.md (100%) rename src/data/roadmaps/react-native/content/{104-core-components/111-listings/102-refresh-control.md => core-components/listings/refresh-control.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/111-listings/100-scroll-view.md => core-components/listings/scroll-view.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/108-modal.md => core-components/modal.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/109-pressable.md => core-components/pressable.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/106-status-bar.md => core-components/status-bar.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/105-switch.md => core-components/switch.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/101-text-input.md => core-components/text-input.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/100-text.md => core-components/text.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/110-view => core-components/view}/index.md (100%) rename src/data/roadmaps/react-native/content/{104-core-components/110-view/101-keyboard-avoiding-view.md => core-components/view/keyboard-avoiding-view.md} (100%) rename src/data/roadmaps/react-native/content/{104-core-components/110-view/100-safe-area-view.md => core-components/view/safe-area-view.md} (100%) rename src/data/roadmaps/react-native/content/{110-deep-linking.md => deep-linking.md} (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow/101-debugging/100-dev-menu.md => development-workflow/debugging/dev-menu.md} (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow/101-debugging/104-devtools.md => development-workflow/debugging/devtools.md} (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow/101-debugging/101-fast-refresh.md => development-workflow/debugging/fast-refresh.md} (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow/101-debugging => development-workflow/debugging}/index.md (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow/101-debugging/102-logbox.md => development-workflow/debugging/logbox.md} (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow/101-debugging/103-sourcemaps.md => development-workflow/debugging/sourcemaps.md} (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow => development-workflow}/index.md (100%) rename src/data/roadmaps/react-native/content/{103-development-workflow/100-running-on-device.md => development-workflow/running-on-device.md} (100%) rename src/data/roadmaps/react-native/content/{102-environment-setup/100-expo/100-create-expo-app.md => environment-setup/expo/create-expo-app.md} (100%) rename src/data/roadmaps/react-native/content/{102-environment-setup/100-expo/101-expo-snack.md => environment-setup/expo/expo-snack.md} (100%) rename src/data/roadmaps/react-native/content/{102-environment-setup/100-expo/102-expo-tradeoffs.md => environment-setup/expo/expo-tradeoffs.md} (100%) rename src/data/roadmaps/react-native/content/{102-environment-setup/100-expo => environment-setup/expo}/index.md (100%) rename src/data/roadmaps/react-native/content/{102-environment-setup => environment-setup}/index.md (100%) rename src/data/roadmaps/react-native/content/{102-environment-setup/102-metro-bundler.md => environment-setup/metro-bundler.md} (100%) rename src/data/roadmaps/react-native/content/{102-environment-setup/101-react-native-cli.md => environment-setup/react-native-cli.md} (100%) rename src/data/roadmaps/react-native/content/{109-interactions/104-animations.md => interactions/animations.md} (100%) rename src/data/roadmaps/react-native/content/{109-interactions/101-gesture.md => interactions/gesture.md} (100%) rename src/data/roadmaps/react-native/content/{109-interactions => interactions}/index.md (100%) rename src/data/roadmaps/react-native/content/{109-interactions/103-screen-navigation.md => interactions/screen-navigation.md} (100%) rename src/data/roadmaps/react-native/content/{109-interactions/102-scrolling-swiping.md => interactions/scrolling-swiping.md} (100%) rename src/data/roadmaps/react-native/content/{109-interactions/100-touchables.md => interactions/touchables.md} (100%) rename src/data/roadmaps/react-native/content/{100-introduction => introduction}/index.md (100%) rename src/data/roadmaps/react-native/content/{100-introduction/102-react-native-alternatives.md => introduction/react-native-alternatives.md} (100%) rename src/data/roadmaps/react-native/content/{100-introduction/100-what-is-react-native.md => introduction/what-is-react-native.md} (100%) rename src/data/roadmaps/react-native/content/{100-introduction/101-why-react-native.md => introduction/why-react-native.md} (100%) rename src/data/roadmaps/react-native/content/{107-networking/100-connectivity.md => networking/connectivity.md} (100%) rename src/data/roadmaps/react-native/content/{107-networking/101-fetch.md => networking/fetch.md} (100%) rename src/data/roadmaps/react-native/content/{107-networking => networking}/index.md (100%) rename src/data/roadmaps/react-native/content/{107-networking/102-websockets.md => networking/websockets.md} (100%) rename src/data/roadmaps/react-native/content/{114-performance/101-common-problem-sources.md => performance/common-problem-sources.md} (100%) rename src/data/roadmaps/react-native/content/{114-performance/100-frame-rates.md => performance/frame-rates.md} (100%) rename src/data/roadmaps/react-native/content/{114-performance => performance}/index.md (100%) rename src/data/roadmaps/react-native/content/{114-performance/103-optimizing-flatlist-config.md => performance/optimizing-flatlist-config.md} (100%) rename src/data/roadmaps/react-native/content/{114-performance/105-profiling.md => performance/profiling.md} (100%) rename src/data/roadmaps/react-native/content/{114-performance/104-ram-bundles.md => performance/ram-bundles.md} (100%) rename src/data/roadmaps/react-native/content/{114-performance/102-speeding-up-builds.md => performance/speeding-up-builds.md} (100%) rename src/data/roadmaps/react-native/content/{105-platform-specific-code/101-file-extensions.md => platform-specific-code/file-extensions.md} (100%) rename src/data/roadmaps/react-native/content/{105-platform-specific-code => platform-specific-code}/index.md (100%) rename src/data/roadmaps/react-native/content/{105-platform-specific-code/100-platform-module.md => platform-specific-code/platform-module.md} (100%) rename src/data/roadmaps/react-native/content/{105-platform-specific-code/102-react-native-web.md => platform-specific-code/react-native-web.md} (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites/101-css.md => pre-requisites/css.md} (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites => pre-requisites}/index.md (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites/100-javascript.md => pre-requisites/javascript.md} (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites/102-react/100-components.md => pre-requisites/react/components.md} (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites/102-react => pre-requisites/react}/index.md (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites/102-react/103-jsx.md => pre-requisites/react/jsx.md} (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites/102-react/102-props.md => pre-requisites/react/props.md} (100%) rename src/data/roadmaps/react-native/content/{101-pre-requisites/102-react/101-state.md => pre-requisites/react/state.md} (100%) rename src/data/roadmaps/react-native/content/{116-publishing-apps/100-app-store.md => publishing-apps/app-store.md} (100%) rename src/data/roadmaps/react-native/content/{116-publishing-apps/101-google-store.md => publishing-apps/google-store.md} (100%) rename src/data/roadmaps/react-native/content/{116-publishing-apps => publishing-apps}/index.md (100%) rename src/data/roadmaps/react-native/content/{108-push-notifications.md => push-notifications.md} (100%) rename src/data/roadmaps/react-native/content/{111-security/100-authentication.md => security/authentication.md} (100%) rename src/data/roadmaps/react-native/content/{111-security => security}/index.md (100%) rename src/data/roadmaps/react-native/content/{111-security/101-networking.md => security/networking.md} (100%) rename src/data/roadmaps/react-native/content/{111-security/102-storage.md => security/storage.md} (100%) rename src/data/roadmaps/react-native/content/{112-storage/100-async-storage.md => storage/async-storage.md} (100%) rename src/data/roadmaps/react-native/content/{112-storage/101-expo-file-system.md => storage/expo-file-system.md} (100%) rename src/data/roadmaps/react-native/content/{112-storage/100-expo-secure-store.md => storage/expo-secure-store.md} (100%) rename src/data/roadmaps/react-native/content/{112-storage/102-expo-sqlite.md => storage/expo-sqlite.md} (100%) rename src/data/roadmaps/react-native/content/{112-storage => storage}/index.md (100%) rename src/data/roadmaps/react-native/content/{112-storage/101-other-storage-options.md => storage/other-storage-options.md} (100%) rename src/data/roadmaps/react-native/content/{106-styling/102-accessibility.md => styling/accessibility.md} (100%) rename src/data/roadmaps/react-native/content/{106-styling => styling}/index.md (100%) rename src/data/roadmaps/react-native/content/{106-styling/101-layouts.md => styling/layouts.md} (100%) rename src/data/roadmaps/react-native/content/{106-styling/100-stylesheets.md => styling/stylesheets.md} (100%) rename src/data/roadmaps/react-native/content/{113-testing/104-appium.md => testing/appium.md} (100%) rename src/data/roadmaps/react-native/content/{113-testing/103-detox.md => testing/detox.md} (100%) rename src/data/roadmaps/react-native/content/{113-testing => testing}/index.md (100%) rename src/data/roadmaps/react-native/content/{113-testing/100-jest.md => testing/jest.md} (100%) rename src/data/roadmaps/react-native/content/{113-testing/102-react-native-testing-library.md => testing/react-native-testing-library.md} (100%) rename src/data/roadmaps/react-native/content/{113-testing/101-react-test-renderer.md => testing/react-test-renderer.md} (100%) rename src/data/roadmaps/react-native/content/{115-using-native-modules/101-for-android.md => using-native-modules/for-android.md} (100%) rename src/data/roadmaps/react-native/content/{115-using-native-modules/100-for-ios.md => using-native-modules/for-ios.md} (100%) rename src/data/roadmaps/react-native/content/{115-using-native-modules => using-native-modules}/index.md (100%) rename src/data/roadmaps/rust/content/{109-async-programming/101-async-std.md => async-programming/async-std.md} (100%) rename src/data/roadmaps/rust/content/{109-async-programming => async-programming}/index.md (100%) rename src/data/roadmaps/rust/content/{109-async-programming/102-smol.md => async-programming/smol.md} (100%) rename src/data/roadmaps/rust/content/{109-async-programming/100-tokio.md => async-programming/tokio.md} (100%) rename src/data/roadmaps/rust/content/{114-cli-utils/100-clap.md => cli-utils/clap.md} (100%) rename src/data/roadmaps/rust/content/{114-cli-utils => cli-utils}/index.md (100%) rename src/data/roadmaps/rust/content/{114-cli-utils/101-structopt.md => cli-utils/structopt.md} (100%) rename src/data/roadmaps/rust/content/{114-cli-utils/102-termion.md => cli-utils/termion.md} (100%) rename src/data/roadmaps/rust/content/{104-concurrency-parallelism/101-atomic-operations.md => concurrency-parallelism/atomic-operations.md} (100%) rename src/data/roadmaps/rust/content/{104-concurrency-parallelism/100-futures.md => concurrency-parallelism/futures.md} (100%) rename src/data/roadmaps/rust/content/{104-concurrency-parallelism => concurrency-parallelism}/index.md (100%) rename src/data/roadmaps/rust/content/{104-concurrency-parallelism/102-threads.md => concurrency-parallelism/threads.md} (100%) rename src/data/roadmaps/rust/content/{113-cryptography => cryptography}/index.md (100%) rename src/data/roadmaps/rust/content/{113-cryptography/100-ring.md => cryptography/ring.md} (100%) rename src/data/roadmaps/rust/content/{113-cryptography/101-rust-crypto.md => cryptography/rust-crypto.md} (100%) rename src/data/roadmaps/rust/content/{113-cryptography/102-sodiumoxide.md => cryptography/sodiumoxide.md} (100%) rename src/data/roadmaps/rust/content/{112-database-orm/100-diesel.md => database-orm/diesel.md} (100%) rename src/data/roadmaps/rust/content/{112-database-orm => database-orm}/index.md (100%) rename src/data/roadmaps/rust/content/{112-database-orm/102-rusqlite.md => database-orm/rusqlite.md} (100%) rename src/data/roadmaps/rust/content/{112-database-orm/101-sqlx.md => database-orm/sqlx.md} (100%) rename src/data/roadmaps/rust/content/{120-debugging => debugging}/index.md (100%) rename src/data/roadmaps/rust/content/{120-debugging/100-rust-gdb.md => debugging/rust-gdb.md} (100%) rename src/data/roadmaps/rust/content/{120-debugging/101-rust-lldb.md => debugging/rust-lldb.md} (100%) rename src/data/roadmaps/rust/content/{117-embedded/100-embedded-hal.md => embedded/embedded-hal.md} (100%) rename src/data/roadmaps/rust/content/{117-embedded => embedded}/index.md (100%) rename src/data/roadmaps/rust/content/{117-embedded/102-nrf-hal.md => embedded/nrf-hal.md} (100%) rename src/data/roadmaps/rust/content/{117-embedded/101-rppal.md => embedded/rppal.md} (100%) rename src/data/roadmaps/rust/content/{102-error-handling/102-custom-error.md => error-handling/custom-error.md} (100%) rename src/data/roadmaps/rust/content/{102-error-handling => error-handling}/index.md (100%) rename src/data/roadmaps/rust/content/{102-error-handling/100-option.md => error-handling/option.md} (100%) rename src/data/roadmaps/rust/content/{102-error-handling/101-propagating.md => error-handling/propagating.md} (100%) rename src/data/roadmaps/rust/content/{123-file-parsing => file-parsing}/index.md (100%) rename src/data/roadmaps/rust/content/{123-file-parsing/100-pdf-rs.md => file-parsing/pdf-rs.md} (100%) rename src/data/roadmaps/rust/content/{115-game-dev/100-bevy.md => game-dev/bevy.md} (100%) rename src/data/roadmaps/rust/content/{115-game-dev/101-fyrox.md => game-dev/fyrox.md} (100%) rename src/data/roadmaps/rust/content/{115-game-dev/102-ggez.md => game-dev/ggez.md} (100%) rename src/data/roadmaps/rust/content/{115-game-dev => game-dev}/index.md (100%) rename src/data/roadmaps/rust/content/{115-game-dev/103-macroquad.md => game-dev/macroquad.md} (100%) rename src/data/roadmaps/rust/content/{115-game-dev/104-wgpu-rs.md => game-dev/wgpu-rs.md} (100%) rename src/data/roadmaps/rust/content/{116-gui-dev/101-gtk-rs.md => gui-dev/gtk-rs.md} (100%) rename src/data/roadmaps/rust/content/{116-gui-dev => gui-dev}/index.md (100%) rename src/data/roadmaps/rust/content/{116-gui-dev/102-relm.md => gui-dev/relm.md} (100%) rename src/data/roadmaps/rust/content/{116-gui-dev/100-tauri.md => gui-dev/tauri.md} (100%) rename src/data/roadmaps/rust/content/{100-introduction/104-ides-and-rust.md => introduction/ides-and-rust.md} (100%) rename src/data/roadmaps/rust/content/{100-introduction => introduction}/index.md (100%) rename src/data/roadmaps/rust/content/{100-introduction/103-installing-rust.md => introduction/installing-rust.md} (100%) rename src/data/roadmaps/rust/content/{100-introduction/102-memory-safety.md => introduction/memory-safety.md} (100%) rename src/data/roadmaps/rust/content/{100-introduction/105-rust-repl.md => introduction/rust-repl.md} (100%) rename src/data/roadmaps/rust/content/{100-introduction/100-what-is-rust.md => introduction/what-is-rust.md} (100%) rename src/data/roadmaps/rust/content/{100-introduction/101-why-rust.md => introduction/why-rust.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/102-constructs/100-enums.md => language-basics/constructs/enums.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/102-constructs/103-impl-blocks.md => language-basics/constructs/impl-blocks.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/102-constructs => language-basics/constructs}/index.md (100%) rename src/data/roadmaps/rust/content/{101-language-basics/102-constructs/101-structs.md => language-basics/constructs/structs.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/102-constructs/102-traits.md => language-basics/constructs/traits.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/117-arc.md => language-basics/data-structures/arc.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/105-array.md => language-basics/data-structures/array.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/111-binary-heap.md => language-basics/data-structures/binary-heap.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/102-boolean.md => language-basics/data-structures/boolean.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/114-btree-map.md => language-basics/data-structures/btree-map.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/115-btree-set.md => language-basics/data-structures/btree-set.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/120-channels.md => language-basics/data-structures/channels.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/103-character.md => language-basics/data-structures/character.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/101-floats.md => language-basics/data-structures/floats.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/108-hashmap.md => language-basics/data-structures/hashmap.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/109-hashset.md => language-basics/data-structures/hashset.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures => language-basics/data-structures}/index.md (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/100-integers.md => language-basics/data-structures/integers.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/110-linked-list.md => language-basics/data-structures/linked-list.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/118-mutex.md => language-basics/data-structures/mutex.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/113-queue.md => language-basics/data-structures/queue.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/116-rc.md => language-basics/data-structures/rc.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/119-rwlock.md => language-basics/data-structures/rwlock.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/112-stack.md => language-basics/data-structures/stack.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/107-string.md => language-basics/data-structures/string.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/104-tuple.md => language-basics/data-structures/tuple.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/103-data-structures/106-vector.md => language-basics/data-structures/vector.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics => language-basics}/index.md (100%) rename src/data/roadmaps/rust/content/{101-language-basics/101-ownership/101-borrowing.md => language-basics/ownership/borrowing.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/101-ownership => language-basics/ownership}/index.md (100%) rename src/data/roadmaps/rust/content/{101-language-basics/101-ownership/100-rules.md => language-basics/ownership/rules.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/101-ownership/102-stack-heap.md => language-basics/ownership/stack-heap.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/100-syntax/102-control-flow.md => language-basics/syntax/control-flow.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/100-syntax/103-functions.md => language-basics/syntax/functions.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/100-syntax => language-basics/syntax}/index.md (100%) rename src/data/roadmaps/rust/content/{101-language-basics/100-syntax/104-pattern-matching.md => language-basics/syntax/pattern-matching.md} (100%) rename src/data/roadmaps/rust/content/{101-language-basics/100-syntax/101-variables.md => language-basics/syntax/variables.md} (100%) rename src/data/roadmaps/rust/content/{106-lifetimes-borrow/102-covariant.md => lifetimes-borrow/covariant.md} (100%) rename src/data/roadmaps/rust/content/{106-lifetimes-borrow/100-explicit-lifetime.md => lifetimes-borrow/explicit-lifetime.md} (100%) rename src/data/roadmaps/rust/content/{106-lifetimes-borrow => lifetimes-borrow}/index.md (100%) rename src/data/roadmaps/rust/content/{106-lifetimes-borrow/101-lifetime-elision.md => lifetimes-borrow/lifetime-elision.md} (100%) rename src/data/roadmaps/rust/content/{107-macros/100-declarative.md => macros/declarative.md} (100%) rename src/data/roadmaps/rust/content/{107-macros/102-domain-specific.md => macros/domain-specific.md} (100%) rename src/data/roadmaps/rust/content/{107-macros => macros}/index.md (100%) rename src/data/roadmaps/rust/content/{107-macros/101-procedural.md => macros/procedural.md} (100%) rename src/data/roadmaps/rust/content/{103-modules-and-crates/100-code-organization.md => modules-and-crates/code-organization.md} (100%) rename src/data/roadmaps/rust/content/{103-modules-and-crates/101-dependency-mgmt.md => modules-and-crates/dependency-mgmt.md} (100%) rename src/data/roadmaps/rust/content/{103-modules-and-crates => modules-and-crates}/index.md (100%) rename src/data/roadmaps/rust/content/{103-modules-and-crates/102-publishing.md => modules-and-crates/publishing.md} (100%) rename src/data/roadmaps/rust/content/{110-networking/101-hyper.md => networking/hyper.md} (100%) rename src/data/roadmaps/rust/content/{110-networking => networking}/index.md (100%) rename src/data/roadmaps/rust/content/{110-networking/102-quinn.md => networking/quinn.md} (100%) rename src/data/roadmaps/rust/content/{110-networking/100-reqwest.md => networking/reqwest.md} (100%) rename src/data/roadmaps/rust/content/{122-perf-profiling/100-criterion-rs.md => perf-profiling/criterion-rs.md} (100%) rename src/data/roadmaps/rust/content/{122-perf-profiling => perf-profiling}/index.md (100%) rename src/data/roadmaps/rust/content/{121-rustdoc.md => rustdoc.md} (100%) rename src/data/roadmaps/rust/content/{111-serialization => serialization}/index.md (100%) rename src/data/roadmaps/rust/content/{111-serialization/101-json-rust.md => serialization/json-rust.md} (100%) rename src/data/roadmaps/rust/content/{111-serialization/100-serde.md => serialization/serde.md} (100%) rename src/data/roadmaps/rust/content/{111-serialization/102-toml-rs.md => serialization/toml-rs.md} (100%) rename src/data/roadmaps/rust/content/{119-testing => testing}/index.md (100%) rename src/data/roadmaps/rust/content/{119-testing/101-mocking.md => testing/mocking.md} (100%) rename src/data/roadmaps/rust/content/{119-testing/100-unit-integration.md => testing/unit-integration.md} (100%) rename src/data/roadmaps/rust/content/{105-traits-generics/102-advanced-generics.md => traits-generics/advanced-generics.md} (100%) rename src/data/roadmaps/rust/content/{105-traits-generics => traits-generics}/index.md (100%) rename src/data/roadmaps/rust/content/{105-traits-generics/101-trait-bounds.md => traits-generics/trait-bounds.md} (100%) rename src/data/roadmaps/rust/content/{105-traits-generics/100-trait-def.md => traits-generics/trait-def.md} (100%) rename src/data/roadmaps/rust/content/{118-wasm => wasm}/index.md (100%) rename src/data/roadmaps/rust/content/{118-wasm/100-wasm-bindgen.md => wasm/wasm-bindgen.md} (100%) rename src/data/roadmaps/rust/content/{118-wasm/101-wasm-pack.md => wasm/wasm-pack.md} (100%) rename src/data/roadmaps/rust/content/{118-wasm/102-wasmer.md => wasm/wasmer.md} (100%) rename src/data/roadmaps/rust/content/{108-web-development/102-actix.md => web-development/actix.md} (100%) rename src/data/roadmaps/rust/content/{108-web-development/104-axum.md => web-development/axum.md} (100%) rename src/data/roadmaps/rust/content/{108-web-development => web-development}/index.md (100%) rename src/data/roadmaps/rust/content/{108-web-development/106-leptos.md => web-development/leptos.md} (100%) rename src/data/roadmaps/rust/content/{108-web-development/105-poem.md => web-development/poem.md} (100%) rename src/data/roadmaps/rust/content/{108-web-development/100-rocket.md => web-development/rocket.md} (100%) rename src/data/roadmaps/rust/content/{108-web-development/101-warp.md => web-development/warp.md} (100%) rename src/data/roadmaps/rust/content/{108-web-development/103-yew.md => web-development/yew.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/105-blackboard-pattern.md => architectural-patterns/blackboard-pattern.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/100-cqrs.md => architectural-patterns/cqrs.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/102-domain-driven-design.md => architectural-patterns/domain-driven-design.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/109-event-sourcing.md => architectural-patterns/event-sourcing.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns => architectural-patterns}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/108-message-queues-streams.md => architectural-patterns/message-queues-streams.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/106-microkernel.md => architectural-patterns/microkernel.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/104-microservices.md => architectural-patterns/microservices.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/103-model-view-controller.md => architectural-patterns/model-view-controller.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/107-serverless-architecture.md => architectural-patterns/serverless-architecture.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{107-architectural-patterns/101-soa.md => architectural-patterns/soa.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{105-architectural-principles/103-boundaries.md => architectural-principles/boundaries.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{105-architectural-principles/100-component-principles.md => architectural-principles/component-principles.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{105-architectural-principles/102-coupling-and-cohesion.md => architectural-principles/coupling-and-cohesion.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{105-architectural-principles => architectural-principles}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{105-architectural-principles/101-policy-vs-detail.md => architectural-principles/policy-vs-detail.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/101-distributed/100-client-server.md => architectural-styles/distributed/client-server.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/101-distributed => architectural-styles/distributed}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/101-distributed/101-peer-to-peer.md => architectural-styles/distributed/peer-to-peer.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles => architectural-styles}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/100-messaging/101-event-driven.md => architectural-styles/messaging/event-driven.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/100-messaging => architectural-styles/messaging}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/100-messaging/100-publish-subscribe.md => architectural-styles/messaging/publish-subscribe.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/102-structural/100-component-based.md => architectural-styles/structural/component-based.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/102-structural => architectural-styles/structural}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/102-structural/102-layered.md => architectural-styles/structural/layered.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{106-architectural-styles/102-structural/101-monolithic.md => architectural-styles/structural/monolithic.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/114-avoid-hasty-abstractions.md => clean-code-principles/avoid-hasty-abstractions.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/107-avoid-passing-nulls-booleans.md => clean-code-principles/avoid-passing-nulls-booleans.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/101-be-consistent.md => clean-code-principles/be-consistent.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/112-code-by-actor.md => clean-code-principles/code-by-actor.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/113-command-query-separation.md => clean-code-principles/command-query-separation.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/103-indentation-and-code-style.md => clean-code-principles/indentation-and-code-style.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles => clean-code-principles}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/108-keep-framework-code-distant.md => clean-code-principles/keep-framework-code-distant.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/104-keep-it-small.md => clean-code-principles/keep-it-small.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/110-keep-tests-independent.md => clean-code-principles/keep-tests-independent.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/102-meaningful-names.md => clean-code-principles/meaningful-names.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/106-minimize-cyclomatic-complexity.md => clean-code-principles/minimize-cyclomatic-complexity.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/105-pure-functions.md => clean-code-principles/pure-functions.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/109-use-correct-constructs.md => clean-code-principles/use-correct-constructs.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{100-clean-code-principles/111-use-meaningful-names.md => clean-code-principles/use-meaningful-names.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{104-design-patterns/100-gof-design-patterns.md => design-patterns/gof-design-patterns.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{104-design-patterns => design-patterns}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{104-design-patterns/101-posa-patterns.md => design-patterns/posa-patterns.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/106-commands-queries.md => enterprise-patterns/commands-queries.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/108-domain-models.md => enterprise-patterns/domain-models.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/100-dtos.md => enterprise-patterns/dtos.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/109-entities.md => enterprise-patterns/entities.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/101-identity-maps.md => enterprise-patterns/identity-maps.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns => enterprise-patterns}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/104-mappers.md => enterprise-patterns/mappers.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/110-orms.md => enterprise-patterns/orms.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/103-repositories.md => enterprise-patterns/repositories.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/105-transaction-script.md => enterprise-patterns/transaction-script.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/102-use-cases.md => enterprise-patterns/use-cases.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{108-enterprise-patterns/107-value-objects.md => enterprise-patterns/value-objects.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming => object-oriented-programming}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/102-model-driven-design/101-anemic-models.md => object-oriented-programming/model-driven-design/anemic-models.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/102-model-driven-design/104-class-invariants.md => object-oriented-programming/model-driven-design/class-invariants.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/102-model-driven-design/103-domain-language.md => object-oriented-programming/model-driven-design/domain-language.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/102-model-driven-design/100-domain-models.md => object-oriented-programming/model-driven-design/domain-models.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/102-model-driven-design => object-oriented-programming/model-driven-design}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/102-model-driven-design/102-layered-architectures.md => object-oriented-programming/model-driven-design/layered-architectures.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/101-paradigm-features/100-abstract-classes.md => object-oriented-programming/paradigm-features/abstract-classes.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/101-paradigm-features/101-concrete-classes.md => object-oriented-programming/paradigm-features/concrete-classes.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/101-paradigm-features => object-oriented-programming/paradigm-features}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/101-paradigm-features/103-interfaces.md => object-oriented-programming/paradigm-features/interfaces.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/101-paradigm-features/102-scope-visibility.md => object-oriented-programming/paradigm-features/scope-visibility.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/100-primary-principles/102-abstraction.md => object-oriented-programming/primary-principles/abstraction.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/100-primary-principles/103-encapsulation.md => object-oriented-programming/primary-principles/encapsulation.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/100-primary-principles => object-oriented-programming/primary-principles}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/100-primary-principles/100-inheritance.md => object-oriented-programming/primary-principles/inheritance.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{102-object-oriented-programming/100-primary-principles/101-polymorphism.md => object-oriented-programming/primary-principles/polymorphism.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{101-programming-paradigms/101-functional-programming.md => programming-paradigms/functional-programming.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{101-programming-paradigms => programming-paradigms}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{101-programming-paradigms/102-object-oriented-programming.md => programming-paradigms/object-oriented-programming.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{101-programming-paradigms/100-structured-programming.md => programming-paradigms/structured-programming.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles/100-composition-over-inheritance.md => software-design-principles/composition-over-inheritance.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles/105-dry.md => software-design-principles/dry.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles/101-encapsulate-what-varies.md => software-design-principles/encapsulate-what-varies.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles/103-hollywood-principle.md => software-design-principles/hollywood-principle.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles => software-design-principles}/index.md (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles/102-program-against-abstractions.md => software-design-principles/program-against-abstractions.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles/104-solid.md => software-design-principles/solid.md} (100%) rename src/data/roadmaps/software-design-architecture/content/{103-software-design-principles/106-yagni.md => software-design-principles/yagni.md} (100%) rename src/data/roadmaps/spring-boot/content/{103-autconfiguration.md => autconfiguration.md} (100%) rename src/data/roadmaps/spring-boot/content/{105-embedded-server.md => embedded-server.md} (100%) rename src/data/roadmaps/spring-boot/content/{106-hibernate/102-entity-lifecycle.md => hibernate/entity-lifecycle.md} (100%) rename src/data/roadmaps/spring-boot/content/{106-hibernate => hibernate}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{106-hibernate/101-relationships.md => hibernate/relationships.md} (100%) rename src/data/roadmaps/spring-boot/content/{106-hibernate/100-transactions.md => hibernate/transactions.md} (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices => microservices}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud/101-cloud-config.md => microservices/spring-cloud/cloud-config.md} (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud/106-eureka.md => microservices/spring-cloud/eureka.md} (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud/104-hystrix.md => microservices/spring-cloud/hystrix.md} (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud => microservices/spring-cloud}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud/105-sleuth.md => microservices/spring-cloud/sleuth.md} (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud/102-spring-cloud-circuit-breaker.md => microservices/spring-cloud/spring-cloud-circuit-breaker.md} (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud/100-spring-cloud-gateway.md => microservices/spring-cloud/spring-cloud-gateway.md} (100%) rename src/data/roadmaps/spring-boot/content/{108-microservices/100-spring-cloud/103-spring-cloud-openfeign.md => microservices/spring-cloud/spring-cloud-openfeign.md} (100%) rename src/data/roadmaps/spring-boot/content/{104-spring-boot-actuators.md => spring-boot-actuators.md} (100%) rename src/data/roadmaps/spring-boot/content/{102-spring-boot-starters.md => spring-boot-starters.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/106-annotations.md => spring-core/annotations.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/101-configuration.md => spring-core/configuration.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/102-dependency-injection.md => spring-core/dependency-injection.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core => spring-core}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/100-introduction/101-architecture.md => spring-core/introduction/architecture.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/100-introduction => spring-core/introduction}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/100-introduction/100-terminology.md => spring-core/introduction/terminology.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/100-introduction/102-why-spring.md => spring-core/introduction/why-spring.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/104-spring-aop.md => spring-core/spring-aop.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/107-spring-bean-scope.md => spring-core/spring-bean-scope.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/103-spring-ioc.md => spring-core/spring-ioc.md} (100%) rename src/data/roadmaps/spring-boot/content/{100-spring-core/105-spring-mvc.md => spring-core/spring-mvc.md} (100%) rename src/data/roadmaps/spring-boot/content/{107-spring-data => spring-data}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{107-spring-data/102-spring-data-jdbc.md => spring-data/spring-data-jdbc.md} (100%) rename src/data/roadmaps/spring-boot/content/{107-spring-data/100-spring-data-jpa.md => spring-data/spring-data-jpa.md} (100%) rename src/data/roadmaps/spring-boot/content/{107-spring-data/101-spring-data-mongodb.md => spring-data/spring-data-mongodb.md} (100%) rename src/data/roadmaps/spring-boot/content/{109-spring-mvc/102-architecture.md => spring-mvc/architecture.md} (100%) rename src/data/roadmaps/spring-boot/content/{109-spring-mvc/103-components.md => spring-mvc/components.md} (100%) rename src/data/roadmaps/spring-boot/content/{109-spring-mvc => spring-mvc}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{109-spring-mvc/101-jsp-files.md => spring-mvc/jsp-files.md} (100%) rename src/data/roadmaps/spring-boot/content/{109-spring-mvc/100-servlet.md => spring-mvc/servlet.md} (100%) rename src/data/roadmaps/spring-boot/content/{101-spring-security/100-authentication.md => spring-security/authentication.md} (100%) rename src/data/roadmaps/spring-boot/content/{101-spring-security/101-authorization.md => spring-security/authorization.md} (100%) rename src/data/roadmaps/spring-boot/content/{101-spring-security => spring-security}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{101-spring-security/103-jwt-authentication.md => spring-security/jwt-authentication.md} (100%) rename src/data/roadmaps/spring-boot/content/{101-spring-security/102-oauth2.md => spring-security/oauth2.md} (100%) rename src/data/roadmaps/spring-boot/content/{110-testing => testing}/index.md (100%) rename src/data/roadmaps/spring-boot/content/{110-testing/100-jpa-test.md => testing/jpa-test.md} (100%) rename src/data/roadmaps/spring-boot/content/{110-testing/101-mock-mvc.md => testing/mock-mvc.md} (100%) rename src/data/roadmaps/spring-boot/content/{110-testing/103-mockbean-annotation.md => testing/mockbean-annotation.md} (100%) rename src/data/roadmaps/spring-boot/content/{110-testing/102-spring-boot-test-annotation.md => testing/spring-boot-test-annotation.md} (100%) delete mode 100644 src/lib/roadmap-topic.ts rename src/pages/{[roadmapId]/index.json.ts => [roadmapId].json.ts} (95%) delete mode 100644 src/pages/[roadmapId]/courses.json.ts diff --git a/astro.config.mjs b/astro.config.mjs index 7353af597..6ecea3c3f 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -55,7 +55,7 @@ export default defineConfig({ ], ], }, - output: 'hybrid', + output: 'server', adapter: node({ mode: 'standalone', }), diff --git a/package.json b/package.json index ce4e2bb61..7a37a98e5 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,9 @@ "test:e2e": "playwright test" }, "dependencies": { - "@astrojs/node": "^8.3.4", + "@astrojs/node": "^9.1.3", "@astrojs/react": "^4.2.3", - "@astrojs/sitemap": "^3.2.0", + "@astrojs/sitemap": "^3.3.0", "@fingerprintjs/fingerprintjs": "^4.5.0", "@microsoft/clarity": "^1.0.0", "@nanostores/react": "^0.8.0", @@ -44,7 +44,7 @@ "@tanstack/react-query": "^5.59.16", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", - "astro": "^4.16.1", + "astro": "^5.6.1", "clsx": "^2.1.1", "dayjs": "^1.11.13", "dom-to-image": "^2.6.0", @@ -93,6 +93,7 @@ "@types/dom-to-image": "^2.6.7", "@types/js-cookie": "^3.0.6", "@types/luxon": "^3.4.2", + "@types/markdown-it": "^14.1.2", "@types/prismjs": "^1.26.4", "@types/react-calendar-heatmap": "^1.6.7", "@types/react-slick": "^0.23.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 938f0b3e2..000fdb8f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,13 +9,13 @@ importers: .: dependencies: '@astrojs/node': - specifier: ^8.3.4 - version: 8.3.4(astro@4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3)) + specifier: ^9.1.3 + version: 9.1.3(astro@5.6.1(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.39.0)(tsx@4.19.3)(typescript@5.8.3)) '@astrojs/react': specifier: ^4.2.3 version: 4.2.3(@types/node@18.19.86)(@types/react-dom@19.1.1(@types/react@19.1.0))(@types/react@19.1.0)(jiti@2.4.2)(lightningcss@1.29.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tsx@4.19.3) '@astrojs/sitemap': - specifier: ^3.2.0 + specifier: ^3.3.0 version: 3.3.0 '@fingerprintjs/fingerprintjs': specifier: ^4.5.0 @@ -37,7 +37,7 @@ importers: version: link:packages/editor '@tailwindcss/vite': specifier: ^4.1.3 - version: 4.1.3(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2)) + version: 4.1.3(vite@6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)) '@tanstack/react-query': specifier: ^5.59.16 version: 5.72.0(react@19.1.0) @@ -48,8 +48,8 @@ importers: specifier: ^19.0.0 version: 19.1.1(@types/react@19.1.0) astro: - specifier: ^4.16.1 - version: 4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3) + specifier: ^5.6.1 + version: 5.6.1(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.39.0)(tsx@4.19.3)(typescript@5.8.3) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -189,6 +189,9 @@ importers: '@types/luxon': specifier: ^3.4.2 version: 3.6.2 + '@types/markdown-it': + specifier: ^14.1.2 + version: 14.1.2 '@types/prismjs': specifier: ^1.26.4 version: 1.26.5 @@ -332,20 +335,20 @@ packages: '@astrojs/compiler@2.11.0': resolution: {integrity: sha512-zZOO7i+JhojO8qmlyR/URui6LyfHJY6m+L9nwyX5GiKD78YoRaZ5tzz6X0fkl+5bD3uwlDHayf6Oe8Fu36RKNg==} - '@astrojs/internal-helpers@0.4.1': - resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + '@astrojs/internal-helpers@0.6.1': + resolution: {integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==} - '@astrojs/markdown-remark@5.3.0': - resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} + '@astrojs/markdown-remark@6.3.1': + resolution: {integrity: sha512-c5F5gGrkczUaTVgmMW9g1YMJGzOtRvjjhw6IfGuxarM6ct09MpwysP10US729dy07gg8y+ofVifezvP3BNsWZg==} - '@astrojs/node@8.3.4': - resolution: {integrity: sha512-xzQs39goN7xh9np9rypGmbgZj3AmmjNxEMj9ZWz5aBERlqqFF3n8A/w/uaJeZ/bkHS60l1BXVS0tgsQt9MFqBA==} + '@astrojs/node@9.1.3': + resolution: {integrity: sha512-YcVxEmeZU8khNdrPYNPN3j//4tYPM+Pw6CthAJ6VE/bw65qEX7ErMRApalY2tibc3YhCeHMmsO9rXGhyW0NNyA==} peerDependencies: - astro: ^4.2.0 + astro: ^5.3.0 - '@astrojs/prism@3.1.0': - resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/prism@3.2.0': + resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} '@astrojs/react@4.2.3': resolution: {integrity: sha512-icL1hCnW1v+w+NCAz8REfsh9R1aGMW75fYBoeLjyhrVDxXQHiFbTfyBIHkgH79qqID7SM81+hPxHlqcgCuBP8w==} @@ -359,9 +362,9 @@ packages: '@astrojs/sitemap@3.3.0': resolution: {integrity: sha512-nYE4lKQtk+Kbrw/w0G0TTgT724co0jUsU4tPlHY9au5HmTBKbwiCLwO/15b1/y13aZ4Kr9ZbMeMHlXuwn0ty4Q==} - '@astrojs/telemetry@3.1.0': - resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/telemetry@3.2.0': + resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} @@ -379,10 +382,6 @@ packages: resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.0': resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==} engines: {node: '>=6.9.0'} @@ -422,12 +421,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.25.9': resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} @@ -440,12 +433,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.25.9': - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.0': resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} engines: {node: '>=6.9.0'} @@ -471,204 +458,102 @@ packages: '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.25.2': resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.2': resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.2': resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.2': resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.2': resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.2': resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.2': resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.2': resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.2': resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.2': resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.2': resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.2': resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.2': resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} @@ -681,12 +566,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.2': resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} @@ -699,60 +578,30 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.2': resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.2': resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.2': resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} @@ -1205,39 +1054,21 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@1.29.2': - resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} - '@shikijs/core@3.2.1': resolution: {integrity: sha512-FhsdxMWYu/C11sFisEp7FMGBtX/OSSbnXZDMBhGuUDBNTdsoZlMSgQv5f90rwvzWAdWIW6VobD+G3IrazxA6dQ==} - '@shikijs/engine-javascript@1.29.2': - resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} - '@shikijs/engine-javascript@3.2.1': resolution: {integrity: sha512-eMdcUzN3FMQYxOmRf2rmU8frikzoSHbQDFH2hIuXsrMO+IBOCI9BeeRkCiBkcLDHeRKbOCtYMJK3D6U32ooU9Q==} - '@shikijs/engine-oniguruma@1.29.2': - resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} - '@shikijs/engine-oniguruma@3.2.1': resolution: {integrity: sha512-wZZAkayEn6qu2+YjenEoFqj0OyQI64EWsNR6/71d1EkG4sxEOFooowKivsWPpaWNBu3sxAG+zPz5kzBL/SsreQ==} - '@shikijs/langs@1.29.2': - resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} - '@shikijs/langs@3.2.1': resolution: {integrity: sha512-If0iDHYRSGbihiA8+7uRsgb1er1Yj11pwpX1c6HLYnizDsKAw5iaT3JXj5ZpaimXSWky/IhxTm7C6nkiYVym+A==} - '@shikijs/themes@1.29.2': - resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} - '@shikijs/themes@3.2.1': resolution: {integrity: sha512-k5DKJUT8IldBvAm8WcrDT5+7GA7se6lLksR+2E3SvyqGTyFMzU2F9Gb7rmD+t+Pga1MKrYFxDIeyWjMZWM6uBQ==} - '@shikijs/types@1.29.2': - resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} - '@shikijs/types@3.2.1': resolution: {integrity: sha512-/NTWAk4KE2M8uac0RhOsIhYQf4pdU0OywQuYDGIGAJ6Mjunxl2cGiuLkvu4HLCMn+OTTLRWkjZITp+aYJv60yA==} @@ -1366,9 +1197,6 @@ packages: '@types/babel__traverse@7.20.7': resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/d3-color@3.1.3': resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} @@ -1536,6 +1364,10 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -1556,9 +1388,9 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - astro@4.16.18: - resolution: {integrity: sha512-G7zfwJt9BDHEZwlaLNvjbInIw2hPryyD654314KV/XT34pJU6SfN1S+mWa8RAkALcZNJnJXCJmT3JXLQStD3Lw==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + astro@5.6.1: + resolution: {integrity: sha512-aQ2TV7wIf+q2Oi6gGWMINHWEAZqoP0eH6/mihodfTJYATPWyd03JIGVfjtYUJlkNdNSKxDXwEe/r/Zx4CZ1FPg==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true async@3.2.6: @@ -1661,14 +1493,6 @@ packages: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -1715,9 +1539,12 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} @@ -1726,6 +1553,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crossws@0.3.4: + resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==} + css-background-parser@0.1.0: resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} @@ -1804,14 +1634,6 @@ packages: dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -1828,6 +1650,9 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1840,9 +1665,8 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} @@ -1954,11 +1778,6 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.25.2: resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} @@ -2046,17 +1865,10 @@ packages: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} @@ -2076,9 +1888,9 @@ packages: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} fs-extra@11.3.0: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} @@ -2151,6 +1963,9 @@ packages: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} + h3@1.15.1: + resolution: {integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==} + has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -2238,6 +2053,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-absolute-url@4.0.1: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2271,10 +2089,6 @@ packages: engines: {node: '>=14.16'} hasBin: true - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2287,14 +2101,6 @@ packages: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -2445,10 +2251,6 @@ packages: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -2465,10 +2267,6 @@ packages: lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -2664,18 +2462,17 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} @@ -2689,9 +2486,6 @@ packages: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2723,6 +2517,9 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + node-fetch-native@1.6.6: + resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -2735,9 +2532,16 @@ packages: node-html-parser@6.1.13: resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} + node-mock-http@1.0.0: + resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} + node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + npm-check-updates@17.1.16: resolution: {integrity: sha512-9nohkfjLRzLfsLVGbO34eXBejvrOOTuw5tvNammH73KEFG5XlFoi3G2TgjTExHtnrKWCbZ+mTT+dbNeSjASIPw==} engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'} @@ -2754,20 +2558,16 @@ packages: resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} engines: {node: '>= 10.12.0'} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} - oniguruma-parser@0.5.4: resolution: {integrity: sha512-yNxcQ8sKvURiTwP0mV6bLQCYE7NKfKRRWunhbZnXgxSmB1OXa1lHrN3o4DZd+0Si0kU5blidK7BcROO8qv5TZA==} - oniguruma-to-es@2.3.0: - resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} - oniguruma-to-es@4.1.0: resolution: {integrity: sha512-SNwG909cSLo4vPyyPbU/VJkEc9WOXqu2ycBlfd1UCXLqk1IijcQktSBb2yRQ2UFPsDhpkaf+C1dtT3PkLK/yWA==} @@ -2783,10 +2583,6 @@ packages: zod: optional: true - ora@8.2.0: - resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} - engines: {node: '>=18'} - orderedmap@2.1.1: resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} @@ -2817,6 +2613,9 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@1.1.0: + resolution: {integrity: sha512-Y8f9qUlBzW8qauJjd/eu6jlpJZsuPJm2ZAV0cDVd420o4EdpH5RPdoCv+60/TdJflGatr4sDfpAL6ArWZbM5tA==} + pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -2859,10 +2658,6 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -2916,10 +2711,6 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - preferred-pm@4.1.1: - resolution: {integrity: sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==} - engines: {node: '>=18.12'} - prettier-plugin-astro@0.14.1: resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} engines: {node: ^14.15.0 || >=16.0.0} @@ -3073,6 +2864,9 @@ packages: queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -3129,18 +2923,12 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regex-recursion@5.1.1: - resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} - regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@5.1.1: - resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} - regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} @@ -3182,10 +2970,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} - retext-latin@4.0.0: resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} @@ -3254,9 +3038,9 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.1: - resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} - engines: {node: '>= 0.8.0'} + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} server-destroy@1.0.1: resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} @@ -3276,9 +3060,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.29.2: - resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} - shiki@3.2.1: resolution: {integrity: sha512-VML/2o1/KGYkEf/stJJ+s9Ypn7jUKQPomGLGYso4JJFMFxVDyPNsjsI3MB3KLjlMOeH44gyaPdXC6rik2WXvUQ==} @@ -3305,6 +3086,10 @@ packages: resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} engines: {node: '>=8.0.0'} + smol-toml@1.3.1: + resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} + engines: {node: '>= 18'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -3323,10 +3108,6 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} - stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -3360,10 +3141,6 @@ packages: resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - strip-outer@1.0.1: resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} engines: {node: '>=0.10.0'} @@ -3506,9 +3283,15 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + ultrahtml@1.6.0: resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -3549,6 +3332,65 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unstorage@1.15.0: + resolution: {integrity: sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -3599,37 +3441,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@5.4.17: - resolution: {integrity: sha512-5+VqZryDj4wgCs55o9Lp+p8GE78TLVg0lasCH5xFZ4jacZjtqZa6JUw9/p0WeAojaOfncSM6v77InkFPGnvPvg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@6.2.5: resolution: {integrity: sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -3704,10 +3515,6 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} - which-pm@3.0.1: - resolution: {integrity: sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg==} - engines: {node: '>=18.12'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3743,6 +3550,14 @@ packages: resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} + yocto-spinner@0.2.1: + resolution: {integrity: sha512-lHHxjh0bXaLgdJy3cNnVb/F9myx3CkhrvSOEVTkaUgNMXnYFa2xYPVhtGnqhh3jErY2gParBOHallCbc7NrlZQ==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + yoga-wasm-web@0.3.3: resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} @@ -3841,15 +3656,17 @@ snapshots: '@astrojs/compiler@2.11.0': {} - '@astrojs/internal-helpers@0.4.1': {} + '@astrojs/internal-helpers@0.6.1': {} - '@astrojs/markdown-remark@5.3.0': + '@astrojs/markdown-remark@6.3.1': dependencies: - '@astrojs/prism': 3.1.0 + '@astrojs/internal-helpers': 0.6.1 + '@astrojs/prism': 3.2.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 rehype-stringify: 10.0.1 @@ -3857,7 +3674,8 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 1.29.2 + shiki: 3.2.1 + smol-toml: 1.3.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -3866,15 +3684,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@8.3.4(astro@4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3))': + '@astrojs/node@9.1.3(astro@5.6.1(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.39.0)(tsx@4.19.3)(typescript@5.8.3))': dependencies: - astro: 4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3) - send: 0.19.1 + '@astrojs/internal-helpers': 0.6.1 + astro: 5.6.1(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.39.0)(tsx@4.19.3)(typescript@5.8.3) + send: 1.2.0 server-destroy: 1.0.1 transitivePeerDependencies: - supports-color - '@astrojs/prism@3.1.0': + '@astrojs/prism@3.2.0': dependencies: prismjs: 1.30.0 @@ -3907,7 +3726,7 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.24.2 - '@astrojs/telemetry@3.1.0': + '@astrojs/telemetry@3.2.0': dependencies: ci-info: 4.2.0 debug: 4.4.0 @@ -3955,10 +3774,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.27.0 - '@babel/helper-compilation-targets@7.27.0': dependencies: '@babel/compat-data': 7.26.8 @@ -4000,11 +3815,6 @@ snapshots: dependencies: '@babel/types': 7.27.0 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -4015,17 +3825,6 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.10)': - dependencies: - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 - transitivePeerDependencies: - - supports-color - '@babel/runtime@7.27.0': dependencies: regenerator-runtime: 0.14.1 @@ -4069,147 +3868,78 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.21.5': - optional: true - '@esbuild/aix-ppc64@0.25.2': optional: true - '@esbuild/android-arm64@0.21.5': - optional: true - '@esbuild/android-arm64@0.25.2': optional: true - '@esbuild/android-arm@0.21.5': - optional: true - '@esbuild/android-arm@0.25.2': optional: true - '@esbuild/android-x64@0.21.5': - optional: true - '@esbuild/android-x64@0.25.2': optional: true - '@esbuild/darwin-arm64@0.21.5': - optional: true - '@esbuild/darwin-arm64@0.25.2': optional: true - '@esbuild/darwin-x64@0.21.5': - optional: true - '@esbuild/darwin-x64@0.25.2': optional: true - '@esbuild/freebsd-arm64@0.21.5': - optional: true - '@esbuild/freebsd-arm64@0.25.2': optional: true - '@esbuild/freebsd-x64@0.21.5': - optional: true - '@esbuild/freebsd-x64@0.25.2': optional: true - '@esbuild/linux-arm64@0.21.5': - optional: true - '@esbuild/linux-arm64@0.25.2': optional: true - '@esbuild/linux-arm@0.21.5': - optional: true - '@esbuild/linux-arm@0.25.2': optional: true - '@esbuild/linux-ia32@0.21.5': - optional: true - '@esbuild/linux-ia32@0.25.2': optional: true - '@esbuild/linux-loong64@0.21.5': - optional: true - '@esbuild/linux-loong64@0.25.2': optional: true - '@esbuild/linux-mips64el@0.21.5': - optional: true - '@esbuild/linux-mips64el@0.25.2': optional: true - '@esbuild/linux-ppc64@0.21.5': - optional: true - '@esbuild/linux-ppc64@0.25.2': optional: true - '@esbuild/linux-riscv64@0.21.5': - optional: true - '@esbuild/linux-riscv64@0.25.2': optional: true - '@esbuild/linux-s390x@0.21.5': - optional: true - '@esbuild/linux-s390x@0.25.2': optional: true - '@esbuild/linux-x64@0.21.5': - optional: true - '@esbuild/linux-x64@0.25.2': optional: true '@esbuild/netbsd-arm64@0.25.2': optional: true - '@esbuild/netbsd-x64@0.21.5': - optional: true - '@esbuild/netbsd-x64@0.25.2': optional: true '@esbuild/openbsd-arm64@0.25.2': optional: true - '@esbuild/openbsd-x64@0.21.5': - optional: true - '@esbuild/openbsd-x64@0.25.2': optional: true - '@esbuild/sunos-x64@0.21.5': - optional: true - '@esbuild/sunos-x64@0.25.2': optional: true - '@esbuild/win32-arm64@0.21.5': - optional: true - '@esbuild/win32-arm64@0.25.2': optional: true - '@esbuild/win32-ia32@0.21.5': - optional: true - '@esbuild/win32-ia32@0.25.2': optional: true - '@esbuild/win32-x64@0.21.5': - optional: true - '@esbuild/win32-x64@0.25.2': optional: true @@ -4542,15 +4272,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.39.0': optional: true - '@shikijs/core@1.29.2': - dependencies: - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - '@shikijs/core@3.2.1': dependencies: '@shikijs/types': 3.2.1 @@ -4558,49 +4279,25 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@1.29.2': - dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 2.3.0 - '@shikijs/engine-javascript@3.2.1': dependencies: '@shikijs/types': 3.2.1 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.1.0 - '@shikijs/engine-oniguruma@1.29.2': - dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@3.2.1': dependencies: '@shikijs/types': 3.2.1 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@1.29.2': - dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/langs@3.2.1': dependencies: '@shikijs/types': 3.2.1 - '@shikijs/themes@1.29.2': - dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/themes@3.2.1': dependencies: '@shikijs/types': 3.2.1 - '@shikijs/types@1.29.2': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - '@shikijs/types@3.2.1': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -4683,12 +4380,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.3 - '@tailwindcss/vite@4.1.3(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2))': + '@tailwindcss/vite@4.1.3(vite@6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3))': dependencies: '@tailwindcss/node': 4.1.3 '@tailwindcss/oxide': 4.1.3 tailwindcss: 4.1.3 - vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) + vite: 6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3) '@tanstack/query-core@5.72.0': {} @@ -4748,8 +4445,6 @@ snapshots: dependencies: '@babel/types': 7.27.0 - '@types/cookie@0.6.0': {} - '@types/d3-color@3.1.3': {} '@types/d3-drag@3.0.7': @@ -4852,7 +4547,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 17.0.45 + '@types/node': 18.19.86 '@types/turndown@5.0.5': {} @@ -4930,6 +4625,11 @@ snapshots: any-promise@1.3.0: {} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + arg@5.0.2: {} argparse@1.0.10: @@ -4944,19 +4644,14 @@ snapshots: array-union@2.1.0: {} - astro@4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3): + astro@5.6.1(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(rollup@4.39.0)(tsx@4.19.3)(typescript@5.8.3): dependencies: '@astrojs/compiler': 2.11.0 - '@astrojs/internal-helpers': 0.4.1 - '@astrojs/markdown-remark': 5.3.0 - '@astrojs/telemetry': 3.1.0 - '@babel/core': 7.26.10 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.10) - '@babel/types': 7.27.0 + '@astrojs/internal-helpers': 0.6.1 + '@astrojs/markdown-remark': 6.3.1 + '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 '@rollup/pluginutils': 5.1.4(rollup@4.39.0) - '@types/babel__core': 7.20.5 - '@types/cookie': 0.6.0 acorn: 8.14.1 aria-query: 5.3.2 axobject-query: 4.1.0 @@ -4964,7 +4659,7 @@ snapshots: ci-info: 4.2.0 clsx: 2.1.1 common-ancestor-path: 1.0.1 - cookie: 0.7.2 + cookie: 1.0.2 cssesc: 3.0.0 debug: 4.4.0 deterministic-object-hash: 2.0.2 @@ -4973,45 +4668,63 @@ snapshots: dlv: 1.1.3 dset: 3.1.4 es-module-lexer: 1.6.0 - esbuild: 0.21.5 + esbuild: 0.25.2 estree-walker: 3.0.3 - fast-glob: 3.3.3 flattie: 1.1.1 github-slugger: 2.0.0 - gray-matter: 4.0.3 html-escaper: 3.0.3 http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 magic-string: 0.30.17 magicast: 0.3.5 - micromatch: 4.0.8 mrmime: 2.0.1 neotraverse: 0.6.18 - ora: 8.2.0 p-limit: 6.2.0 p-queue: 8.1.0 - preferred-pm: 4.1.1 + package-manager-detector: 1.1.0 + picomatch: 4.0.2 prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.1 - shiki: 1.29.2 + shiki: 3.2.1 tinyexec: 0.3.2 + tinyglobby: 0.2.12 tsconfck: 3.1.5(typescript@5.8.3) + ultrahtml: 1.6.0 unist-util-visit: 5.0.0 + unstorage: 1.15.0 vfile: 6.0.3 - vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) - vitefu: 1.0.6(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2)) - which-pm: 3.0.1 + vite: 6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3) + vitefu: 1.0.6(vite@6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)) xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 + yocto-spinner: 0.2.1 zod: 3.24.2 zod-to-json-schema: 3.24.5(zod@3.24.2) zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.24.2) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti - less - lightningcss - rollup @@ -5021,7 +4734,10 @@ snapshots: - sugarss - supports-color - terser + - tsx - typescript + - uploadthing + - yaml async@3.2.6: {} @@ -5105,12 +4821,6 @@ snapshots: cli-boxes@3.0.0: {} - cli-cursor@5.0.0: - dependencies: - restore-cursor: 5.1.0 - - cli-spinners@2.9.2: {} - clsx@2.1.1: {} color-convert@2.0.1: @@ -5147,7 +4857,9 @@ snapshots: convert-source-map@2.0.0: {} - cookie@0.7.2: {} + cookie-es@1.2.2: {} + + cookie@1.0.2: {} crelt@1.0.6: {} @@ -5157,6 +4869,10 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crossws@0.3.4: + dependencies: + uncrypto: 0.1.3 + css-background-parser@0.1.0: {} css-box-shadow@1.0.0-3: {} @@ -5225,10 +4941,6 @@ snapshots: dayjs@1.11.13: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@4.4.0: dependencies: ms: 2.1.3 @@ -5239,13 +4951,15 @@ snapshots: deepmerge@4.3.1: {} + defu@6.1.4: {} + delayed-stream@1.0.0: {} depd@2.0.0: {} dequal@2.0.3: {} - destroy@1.2.0: {} + destr@2.0.5: {} detect-libc@2.0.3: {} @@ -5341,32 +5055,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - esbuild@0.25.2: optionalDependencies: '@esbuild/aix-ppc64': 0.25.2 @@ -5461,18 +5149,11 @@ snapshots: make-dir: 3.1.0 pkg-dir: 4.2.0 - find-up-simple@1.0.1: {} - find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - find-yarn-workspace-root2@1.2.16: - dependencies: - micromatch: 4.0.8 - pkg-dir: 4.2.0 - flattie@1.1.1: {} foreground-child@3.3.1: @@ -5494,7 +5175,7 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.3 - fresh@0.5.2: {} + fresh@2.0.0: {} fs-extra@11.3.0: dependencies: @@ -5583,6 +5264,18 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 + h3@1.15.1: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.4 + defu: 6.1.4 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.0 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -5721,6 +5414,8 @@ snapshots: inherits@2.0.4: {} + iron-webcrypto@1.2.1: {} + is-absolute-url@4.0.1: {} is-arrayish@0.3.2: {} @@ -5741,18 +5436,12 @@ snapshots: dependencies: is-docker: 3.0.0 - is-interactive@2.0.0: {} - is-number@7.0.0: {} is-plain-obj@4.1.0: {} is-plain-object@5.0.0: {} - is-unicode-supported@1.3.0: {} - - is-unicode-supported@2.1.0: {} - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -5868,13 +5557,6 @@ snapshots: load-tsconfig@0.2.5: {} - load-yaml-file@0.2.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -5887,11 +5569,6 @@ snapshots: lodash.sortby@4.7.0: {} - log-symbols@6.0.0: - dependencies: - chalk: 5.4.1 - is-unicode-supported: 1.3.0 - longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -6272,13 +5949,15 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} - - mimic-function@5.0.1: {} + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 minimatch@9.0.5: dependencies: @@ -6288,8 +5967,6 @@ snapshots: mrmime@2.0.1: {} - ms@2.0.0: {} - ms@2.1.3: {} mz@2.7.0: @@ -6312,6 +5989,8 @@ snapshots: node-domexception@1.0.0: {} + node-fetch-native@1.6.6: {} + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 @@ -6321,8 +6000,12 @@ snapshots: css-select: 5.1.0 he: 1.2.0 + node-mock-http@1.0.0: {} + node-releases@2.0.19: {} + normalize-path@3.0.0: {} + npm-check-updates@17.1.16: {} nth-check@2.1.1: @@ -6333,22 +6016,18 @@ snapshots: object-path@0.11.8: {} - on-finished@2.4.1: + ofetch@1.4.1: dependencies: - ee-first: 1.1.1 + destr: 2.0.5 + node-fetch-native: 1.6.6 + ufo: 1.5.4 - onetime@7.0.0: + on-finished@2.4.1: dependencies: - mimic-function: 5.0.1 + ee-first: 1.1.1 oniguruma-parser@0.5.4: {} - oniguruma-to-es@2.3.0: - dependencies: - emoji-regex-xs: 1.0.0 - regex: 5.1.1 - regex-recursion: 5.1.1 - oniguruma-to-es@4.1.0: dependencies: emoji-regex-xs: 1.0.0 @@ -6370,18 +6049,6 @@ snapshots: transitivePeerDependencies: - encoding - ora@8.2.0: - dependencies: - chalk: 5.4.1 - cli-cursor: 5.0.0 - cli-spinners: 2.9.2 - is-interactive: 2.0.0 - is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 - stdin-discarder: 0.2.2 - string-width: 7.2.0 - strip-ansi: 7.1.0 - orderedmap@2.1.1: {} p-limit@2.3.0: @@ -6407,6 +6074,8 @@ snapshots: package-json-from-dist@1.0.1: {} + package-manager-detector@1.1.0: {} + pako@0.2.9: {} parse-css-color@0.2.1: @@ -6446,8 +6115,6 @@ snapshots: picomatch@4.0.2: {} - pify@4.0.1: {} - pirates@4.0.7: {} pkg-dir@4.2.0: @@ -6489,12 +6156,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - preferred-pm@4.1.1: - dependencies: - find-up-simple: 1.0.1 - find-yarn-workspace-root2: 1.2.16 - which-pm: 3.0.1 - prettier-plugin-astro@0.14.1: dependencies: '@astrojs/compiler': 2.11.0 @@ -6639,6 +6300,8 @@ snapshots: dependencies: inherits: 2.0.4 + radix3@1.1.2: {} + range-parser@1.2.1: {} react-calendar-heatmap@1.10.0(react@19.1.0): @@ -6688,21 +6351,12 @@ snapshots: regenerator-runtime@0.14.1: {} - regex-recursion@5.1.1: - dependencies: - regex: 5.1.1 - regex-utilities: 2.3.0 - regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.1.1: - dependencies: - regex-utilities: 2.3.0 - regex@6.0.1: dependencies: regex-utilities: 2.3.0 @@ -6786,11 +6440,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} - restore-cursor@5.1.0: - dependencies: - onetime: 7.0.0 - signal-exit: 4.1.0 - retext-latin@4.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -6900,17 +6549,15 @@ snapshots: semver@7.7.1: {} - send@0.19.1: + send@1.2.0: dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 + debug: 4.4.0 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - fresh: 0.5.2 + fresh: 2.0.0 http-errors: 2.0.0 - mime: 1.6.0 + mime-types: 3.0.1 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 @@ -6954,17 +6601,6 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.29.2: - dependencies: - '@shikijs/core': 1.29.2 - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/langs': 1.29.2 - '@shikijs/themes': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - shiki@3.2.1: dependencies: '@shikijs/core': 3.2.1 @@ -6995,6 +6631,8 @@ snapshots: slugify@1.6.6: {} + smol-toml@1.3.1: {} + source-map-js@1.2.1: {} source-map@0.8.0-beta.0: @@ -7007,8 +6645,6 @@ snapshots: statuses@2.0.1: {} - stdin-discarder@0.2.2: {} - stream-replace-string@2.0.0: {} string-width@4.2.3: @@ -7046,8 +6682,6 @@ snapshots: strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} - strip-outer@1.0.1: dependencies: escape-string-regexp: 1.0.5 @@ -7183,8 +6817,12 @@ snapshots: uc.micro@2.1.0: {} + ufo@1.5.4: {} + ultrahtml@1.6.0: {} + uncrypto@0.1.3: {} + undici-types@5.26.5: {} unicode-trie@2.0.0: @@ -7246,6 +6884,17 @@ snapshots: universalify@2.0.1: {} + unstorage@1.15.0: + dependencies: + anymatch: 3.1.3 + chokidar: 4.0.3 + destr: 2.0.5 + h3: 1.15.1 + lru-cache: 10.4.3 + node-fetch-native: 1.6.6 + ofetch: 1.4.1 + ufo: 1.5.4 + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: browserslist: 4.24.4 @@ -7292,16 +6941,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2): - dependencies: - esbuild: 0.21.5 - postcss: 8.5.3 - rollup: 4.39.0 - optionalDependencies: - '@types/node': 18.19.86 - fsevents: 2.3.3 - lightningcss: 1.29.2 - vite@6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3): dependencies: esbuild: 0.25.2 @@ -7314,9 +6953,9 @@ snapshots: lightningcss: 1.29.2 tsx: 4.19.3 - vitefu@1.0.6(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2)): + vitefu@1.0.6(vite@6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)): optionalDependencies: - vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) + vite: 6.2.5(@types/node@18.19.86)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3) w3c-keyname@2.2.8: {} @@ -7341,10 +6980,6 @@ snapshots: which-pm-runs@1.1.0: {} - which-pm@3.0.1: - dependencies: - load-yaml-file: 0.2.0 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -7379,6 +7014,12 @@ snapshots: yocto-queue@1.2.1: {} + yocto-spinner@0.2.1: + dependencies: + yoctocolors: 2.1.1 + + yoctocolors@2.1.1: {} + yoga-wasm-web@0.3.3: {} zod-to-json-schema@3.24.5(zod@3.24.2): diff --git a/scripts/rename-content.ts b/scripts/rename-content.ts new file mode 100644 index 000000000..777762fea --- /dev/null +++ b/scripts/rename-content.ts @@ -0,0 +1,58 @@ +import fs from 'fs'; +import path from 'path'; + +const roadmapDirs = fs.readdirSync( + path.join(__dirname, '..', 'src', 'data', 'roadmaps'), +); + +roadmapDirs.forEach((roadmapDir) => { + const roadmapDirPath = path.join( + __dirname, + '..', + 'src', + 'data', + 'roadmaps', + roadmapDir, + 'content', + ); + + const roadmapDirContent = fs.readdirSync(roadmapDirPath); + + roadmapDirContent.forEach((content) => { + const contentPath = path.join(roadmapDirPath, content); + const contentStats = fs.statSync(contentPath); + + const oldName = path.basename(contentPath); + const newName = oldName.replace(/^(\d+)-/, ''); + + fs.renameSync(contentPath, path.join(roadmapDirPath, newName)); + + if (contentStats.isDirectory()) { + const contentDirContent = fs.readdirSync(contentPath); + + contentDirContent.forEach((contentDir) => { + const contentDirPath = path.join(contentPath, contentDir); + const contentDirStats = fs.statSync(contentDirPath); + + const oldName = path.basename(contentDirPath); + const newName = oldName.replace(/^(\d+)-/, ''); + + fs.renameSync(contentDirPath, path.join(contentPath, newName)); + + if (contentDirStats.isDirectory()) { + const contentDirContent = fs.readdirSync(contentDirPath); + + contentDirContent.forEach((contentDir) => { + const contentDirPath2 = path.join(contentDirPath, contentDir); + const contentDirStats2 = fs.statSync(contentDirPath2); + + const oldName2 = path.basename(contentDirPath2); + const newName2 = oldName2.replace(/^(\d+)-/, ''); + + fs.renameSync(contentDirPath2, path.join(contentDirPath, newName2)); + }); + } + }); + } + }); +}); diff --git a/src/components/ExploreAIRoadmap/ExploreAISorting.tsx b/src/components/ExploreAIRoadmap/ExploreAISorting.tsx index 0557e1348..603160602 100644 --- a/src/components/ExploreAIRoadmap/ExploreAISorting.tsx +++ b/src/components/ExploreAIRoadmap/ExploreAISorting.tsx @@ -1,4 +1,4 @@ -import { ArrowDownWideNarrow, Check, ChevronDown } from 'lucide-react'; +import { Check, ChevronDown } from 'lucide-react'; import { useRef, useState } from 'react'; import { useOutsideClick } from '../../hooks/use-outside-click'; @@ -41,7 +41,7 @@ export function ExploreAISorting(props: ExploreAISortingProps) { ref={dropdownRef} > {isOpen && ( -
+
{sortingLabels.map((item) => (