From a65bf3d9d9e9ae5896efb2998973b7cd25626710 Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Fri, 26 Dec 2025 01:55:30 +0000 Subject: [PATCH] code: hpp,dbal,cpp (13 files) --- .../{ => handlers}/process_health_check.hpp | 0 .../{ => handlers}/process_not_found.hpp | 0 .../server/{ => handlers}/process_status.hpp | 0 .../server/{ => handlers}/process_version.hpp | 0 .../{ => parsing}/parse_request_line.hpp | 0 .../{ => parsing}/server_parse_request.hpp | 0 .../server/{ => parsing}/to_lowercase.hpp | 0 .../server/{ => parsing}/trim_string.hpp | 0 .../validate_content_length.hpp | 0 .../validate_header.hpp | 0 .../validate_request_path.hpp | 0 .../validate_transfer_encoding.hpp | 0 .../server/install-package-content.ts | 27 +++++++++++++------ 13 files changed, 19 insertions(+), 8 deletions(-) rename dbal/cpp/src/daemon/server/{ => handlers}/process_health_check.hpp (100%) rename dbal/cpp/src/daemon/server/{ => handlers}/process_not_found.hpp (100%) rename dbal/cpp/src/daemon/server/{ => handlers}/process_status.hpp (100%) rename dbal/cpp/src/daemon/server/{ => handlers}/process_version.hpp (100%) rename dbal/cpp/src/daemon/server/{ => parsing}/parse_request_line.hpp (100%) rename dbal/cpp/src/daemon/server/{ => parsing}/server_parse_request.hpp (100%) rename dbal/cpp/src/daemon/server/{ => parsing}/to_lowercase.hpp (100%) rename dbal/cpp/src/daemon/server/{ => parsing}/trim_string.hpp (100%) rename dbal/cpp/src/daemon/server/{ => validation_internal}/validate_content_length.hpp (100%) rename dbal/cpp/src/daemon/server/{ => validation_internal}/validate_header.hpp (100%) rename dbal/cpp/src/daemon/server/{ => validation_internal}/validate_request_path.hpp (100%) rename dbal/cpp/src/daemon/server/{ => validation_internal}/validate_transfer_encoding.hpp (100%) diff --git a/dbal/cpp/src/daemon/server/process_health_check.hpp b/dbal/cpp/src/daemon/server/handlers/process_health_check.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/process_health_check.hpp rename to dbal/cpp/src/daemon/server/handlers/process_health_check.hpp diff --git a/dbal/cpp/src/daemon/server/process_not_found.hpp b/dbal/cpp/src/daemon/server/handlers/process_not_found.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/process_not_found.hpp rename to dbal/cpp/src/daemon/server/handlers/process_not_found.hpp diff --git a/dbal/cpp/src/daemon/server/process_status.hpp b/dbal/cpp/src/daemon/server/handlers/process_status.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/process_status.hpp rename to dbal/cpp/src/daemon/server/handlers/process_status.hpp diff --git a/dbal/cpp/src/daemon/server/process_version.hpp b/dbal/cpp/src/daemon/server/handlers/process_version.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/process_version.hpp rename to dbal/cpp/src/daemon/server/handlers/process_version.hpp diff --git a/dbal/cpp/src/daemon/server/parse_request_line.hpp b/dbal/cpp/src/daemon/server/parsing/parse_request_line.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/parse_request_line.hpp rename to dbal/cpp/src/daemon/server/parsing/parse_request_line.hpp diff --git a/dbal/cpp/src/daemon/server/server_parse_request.hpp b/dbal/cpp/src/daemon/server/parsing/server_parse_request.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/server_parse_request.hpp rename to dbal/cpp/src/daemon/server/parsing/server_parse_request.hpp diff --git a/dbal/cpp/src/daemon/server/to_lowercase.hpp b/dbal/cpp/src/daemon/server/parsing/to_lowercase.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/to_lowercase.hpp rename to dbal/cpp/src/daemon/server/parsing/to_lowercase.hpp diff --git a/dbal/cpp/src/daemon/server/trim_string.hpp b/dbal/cpp/src/daemon/server/parsing/trim_string.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/trim_string.hpp rename to dbal/cpp/src/daemon/server/parsing/trim_string.hpp diff --git a/dbal/cpp/src/daemon/server/validate_content_length.hpp b/dbal/cpp/src/daemon/server/validation_internal/validate_content_length.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/validate_content_length.hpp rename to dbal/cpp/src/daemon/server/validation_internal/validate_content_length.hpp diff --git a/dbal/cpp/src/daemon/server/validate_header.hpp b/dbal/cpp/src/daemon/server/validation_internal/validate_header.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/validate_header.hpp rename to dbal/cpp/src/daemon/server/validation_internal/validate_header.hpp diff --git a/dbal/cpp/src/daemon/server/validate_request_path.hpp b/dbal/cpp/src/daemon/server/validation_internal/validate_request_path.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/validate_request_path.hpp rename to dbal/cpp/src/daemon/server/validation_internal/validate_request_path.hpp diff --git a/dbal/cpp/src/daemon/server/validate_transfer_encoding.hpp b/dbal/cpp/src/daemon/server/validation_internal/validate_transfer_encoding.hpp similarity index 100% rename from dbal/cpp/src/daemon/server/validate_transfer_encoding.hpp rename to dbal/cpp/src/daemon/server/validation_internal/validate_transfer_encoding.hpp diff --git a/frontends/nextjs/src/lib/packages/server/install-package-content.ts b/frontends/nextjs/src/lib/packages/server/install-package-content.ts index 602ecd579..53fe5ca66 100644 --- a/frontends/nextjs/src/lib/packages/server/install-package-content.ts +++ b/frontends/nextjs/src/lib/packages/server/install-package-content.ts @@ -2,6 +2,8 @@ import 'server-only' import { Database } from '@/lib/database' import type { PackageContent } from '@/lib/package-types' +import { mergeByKey } from './merge-by-key' +import { mergeRecords } from './merge-records' export async function installPackageContent(packageId: string, content: PackageContent): Promise { const [schemas, pages, workflows, luaScripts, hierarchy, configs] = await Promise.all([ @@ -13,23 +15,32 @@ export async function installPackageContent(packageId: string, content: PackageC Database.getComponentConfigs(), ]) + const mergedSchemas = mergeByKey(schemas, content.schemas, (schema) => schema.name) + const mergedPages = mergeByKey(pages, content.pages, (page) => page.id) + const mergedWorkflows = mergeByKey(workflows, content.workflows, (workflow) => workflow.id) + const mergedLuaScripts = mergeByKey(luaScripts, content.luaScripts, (script) => script.id) + const mergedHierarchy = mergeRecords(hierarchy, content.componentHierarchy) + const mergedConfigs = mergeRecords(configs, content.componentConfigs) + await Promise.all([ - Database.setSchemas([...schemas, ...content.schemas]), - Database.setPages([...pages, ...content.pages]), - Database.setWorkflows([...workflows, ...content.workflows]), - Database.setLuaScripts([...luaScripts, ...content.luaScripts]), - Database.setComponentHierarchy({ ...hierarchy, ...content.componentHierarchy }), - Database.setComponentConfigs({ ...configs, ...content.componentConfigs }), + Database.setSchemas(mergedSchemas), + Database.setPages(mergedPages), + Database.setWorkflows(mergedWorkflows), + Database.setLuaScripts(mergedLuaScripts), + Database.setComponentHierarchy(mergedHierarchy), + Database.setComponentConfigs(mergedConfigs), ]) if (content.cssClasses) { const cssClasses = await Database.getCssClasses() - await Database.setCssClasses([...cssClasses, ...content.cssClasses]) + const mergedCssClasses = mergeByKey(cssClasses, content.cssClasses, (category) => category.name) + await Database.setCssClasses(mergedCssClasses) } if (content.dropdownConfigs) { const dropdowns = await Database.getDropdownConfigs() - await Database.setDropdownConfigs([...dropdowns, ...content.dropdownConfigs]) + const mergedDropdowns = mergeByKey(dropdowns, content.dropdownConfigs, (config) => config.id) + await Database.setDropdownConfigs(mergedDropdowns) } if (content.seedData) {