From 2948b9c023f91559ff4a793c4bf2d050c5572b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Sat, 24 Aug 2024 10:10:28 +0200 Subject: [PATCH] [mod] conf:consolidated versions --- source/conf.ts | 970 ++++++++++++------------------------------------- 1 file changed, 234 insertions(+), 736 deletions(-) diff --git a/source/conf.ts b/source/conf.ts index 544580e..a8eacb3 100644 --- a/source/conf.ts +++ b/source/conf.ts @@ -221,173 +221,227 @@ namespace _espe.conf conf_raw : any ) : void { - switch (conf_raw["version"]) { - case 1: { - _data = { - "general": ( - ((node_general) => ({ - "language": (node_general["language"] ?? null), - "verification_secret": (node_general["verification_secret"] ?? null), - })) (conf_raw["general"] ?? {}) - ), - "log": [ - { - "kind": "stdout", - "data": { - "threshold": ((conf_raw["general"] ?? {})["verbosity"] ?? "notice"), - } - }, - ], - "server": ( - ((node_server) => ({ - "host": "::", - "port": (node_server["port"] ?? 4916), - "path_base": (node_server["path_base"] ?? ""), - })) (conf_raw["server"] ?? {}) - ), - "database": ( - ((node_database) => { - const kind : string = (node_database["kind"] ?? "sqlite"); - const node_database_data_raw = (node_database["data"] ?? {}); - switch (kind) { - case "sqlite": { - return { - "kind": kind, - "data": { - "path": (node_database_data_raw["path"] ?? "data.sqlite"), - } - }; - break; + const version : int = conf_raw["version"]; + _data = { + "general": ( + ((node_general) => ({ + "language": (node_general["language"] ?? null), + "verification_secret": (node_general["verification_secret"] ?? null), + })) (conf_raw["general"] ?? {}) + ), + "log": (() => { + switch (version) { + case 1: { + return [ + { + "kind": "stdout", + "data": { + "threshold": ((conf_raw["general"] ?? {})["verbosity"] ?? "notice"), } - case "postgresql": { - return { - "kind": kind, - "data": node_database_data_raw, - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["database"] ?? {}) - ), - "email_sending": ( - ((node_email_sending) => { - const kind : string = (node_email_sending["kind"] ?? "console"); - const data_raw = (node_email_sending["data"] ?? {}); - switch (kind) { - case "regular": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - } - }; - break; - } - case "redirect": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - "target": data_raw["target"], - } - }; - break; - } - case "console": { - return { - "kind": kind, - "data": { - } - }; - break; - } - case "drop": { - return { - "kind": kind, - "data": { - } - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["email_sending"] ?? {}) - ), - "session_management": ( - ((node_session_management) => ({ - "in_memory": (node_session_management["in_memory"] ?? true), - "drop_all_at_start": (node_session_management["drop_all_at_start"] ?? true), - "lifetime": (node_session_management["lifetime"] ?? 900), - })) (conf_raw["session_management"] ?? {}) - ), - "settings": ( - ((node_settings) => ({ - "organisation": { - "name": ((node_settings["organisation"] ?? {})["name"] ?? "Example Orginsation"), // TODO: mandatory? - "domain": ((node_settings["organisation"] ?? {})["domain"] ?? "example.org"), // TODO: mandatory? }, - "misc": ( - ((node_settings_misc) => ({ - "prefix_for_veiled_email_addresses": (node_settings_misc["prefix_for_veiled_email_addresses"] ?? "member-"), - "facultative_membership_number": (node_settings_misc["facultative_membership_number"] ?? false), - "auto_register": (node_settings_misc["auto_register"] ?? false), - })) (node_settings["misc"] ?? {}) - ), - "summon_email": ( - ((node_settings_summon_email) => ({ - "remark": (node_settings_summon_email["remark"] ?? null), - })) (node_settings["summon_email"] ?? {}) - ), - "password_policy": ( - ((node_settings_password_policy) => ({ - "minimum_length": ( - ("minimum_length" in node_settings_password_policy) - ? node_settings_password_policy["minimum_length"] - : 8 - ), - "maximum_length": ( - ("maximum_length" in node_settings_password_policy) - ? node_settings_password_policy["maximum_length"] - : 240 - ), - "must_contain_letter": (node_settings_password_policy["must_contain_letter"] ?? true), - "must_contain_number": (node_settings_password_policy["must_contain_number"] ?? true), - "must_contain_special_character": (node_settings_password_policy["must_contain_special_character"] ?? true), - })) (node_settings["password_policy"] ?? {}) - ), - "password_change": ( - ((node_settings_password_change) => ({ - "cooldown_time": (node_settings_password_change["cooldown_time"] ?? 86400), - })) (node_settings["password_change"] ?? {}) - ), - "name_index": ( - ((node_settings_password_policy) => ({ - "veil": (node_settings_password_policy["veil"] ?? true), - "salt": (node_settings_password_policy["salt"] ?? ""), - })) (node_settings["name_index"] ?? {}) - ), - "connections": ( - ((node_settings_connections) => ({ - "frontend_url_base": (node_settings_connections["frontend_url_base"] ?? null), - "login_url": (node_settings_connections["login_url"] ?? null), - })) (node_settings["connections"] ?? {}) - ), - })) (conf_raw["settings"] ?? {}) + ]; + break; + } + case 2: + case 3: + case 4: { + const node_log = ( + conf_raw["log"] + ?? + [ + { + "kind": "console", + "data": { + } + }, + ] + ); + return ( + node_log.map( + (node_log_entry : any) => ({ + "kind": node_log_entry["kind"], + "data": Object.assign( + { + "format": "human_readable", + "threshold": "notice", + }, + (node_log_entry["data"] ?? {}) + ) + }) + ) + ); + break; + } + } + }) (), + "server": ( + ((node_server) => ({ + "host": (() => { + switch (version) { + case 1: + case 2: + case 3: { + return "::"; + break; + } + case 4: { + return (node_server["host"] ?? "::"); + break + } + } + }) (), + "port": (node_server["port"] ?? 4916), + "path_base": (node_server["path_base"] ?? ""), + })) (conf_raw["server"] ?? {}) + ), + "database": ( + ((node_database) => { + const kind : string = (node_database["kind"] ?? "sqlite"); + const node_database_data_raw = (node_database["data"] ?? {}); + switch (kind) { + case "sqlite": { + return { + "kind": kind, + "data": { + "path": (node_database_data_raw["path"] ?? "data.sqlite"), + } + }; + break; + } + case "postgresql": { + return { + "kind": kind, + "data": node_database_data_raw, + }; + break; + } + default: { + throw (new Error("unhandled")); + break; + } + } + }) (conf_raw["database"] ?? {}) + ), + "email_sending": ( + ((node_email_sending) => { + const kind : string = (node_email_sending["kind"] ?? "console"); + const data_raw = (node_email_sending["data"] ?? {}); + switch (kind) { + case "regular": { + return { + "kind": kind, + "data": { + "smtp_credentials": (data_raw["smtp_credentials"] ?? null), + "sender": data_raw["sender"], + } + }; + break; + } + case "redirect": { + return { + "kind": kind, + "data": { + "smtp_credentials": (data_raw["smtp_credentials"] ?? null), + "sender": data_raw["sender"], + "target": data_raw["target"], + } + }; + break; + } + case "console": { + return { + "kind": kind, + "data": { + } + }; + break; + } + case "drop": { + return { + "kind": kind, + "data": { + } + }; + break; + } + default: { + throw (new Error("unhandled")); + break; + } + } + }) (conf_raw["email_sending"] ?? {}) + ), + "session_management": ( + ((node_session_management) => ({ + "in_memory": (node_session_management["in_memory"] ?? true), + "drop_all_at_start": (node_session_management["drop_all_at_start"] ?? true), + "lifetime": (node_session_management["lifetime"] ?? 900), + })) (conf_raw["session_management"] ?? {}) + ), + "settings": ( + ((node_settings) => ({ + "organisation": { + "name": ((node_settings["organisation"] ?? {})["name"] ?? "Example Orginsation"), // TODO: mandatory? + "domain": ((node_settings["organisation"] ?? {})["domain"] ?? "example.org"), // TODO: mandatory? + }, + "misc": ( + ((node_settings_misc) => ({ + "prefix_for_veiled_email_addresses": (node_settings_misc["prefix_for_veiled_email_addresses"] ?? "member-"), + "facultative_membership_number": (node_settings_misc["facultative_membership_number"] ?? false), + "auto_register": (node_settings_misc["auto_register"] ?? false), + })) (node_settings["misc"] ?? {}) ), - "admins": (conf_raw["admins"] ?? []), - "outputs": ( - ((node_output) => ( + "summon_email": ( + ((node_settings_summon_email) => ({ + "remark": (node_settings_summon_email["remark"] ?? null), + })) (node_settings["summon_email"] ?? {}) + ), + "password_policy": ( + ((node_settings_password_policy) => ({ + "minimum_length": ( + ("minimum_length" in node_settings_password_policy) + ? node_settings_password_policy["minimum_length"] + : 8 + ), + "maximum_length": ( + ("maximum_length" in node_settings_password_policy) + ? node_settings_password_policy["maximum_length"] + : 240 + ), + "must_contain_letter": (node_settings_password_policy["must_contain_letter"] ?? true), + "must_contain_number": (node_settings_password_policy["must_contain_number"] ?? true), + "must_contain_special_character": (node_settings_password_policy["must_contain_special_character"] ?? true), + })) (node_settings["password_policy"] ?? {}) + ), + "password_change": ( + ((node_settings_password_change) => ({ + "cooldown_time": (node_settings_password_change["cooldown_time"] ?? 86400), + })) (node_settings["password_change"] ?? {}) + ), + "name_index": ( + ((node_settings_password_policy) => ({ + "veil": (node_settings_password_policy["veil"] ?? true), + "salt": (node_settings_password_policy["salt"] ?? ""), + })) (node_settings["name_index"] ?? {}) + ), + "connections": ( + ((node_settings_connections) => ({ + "frontend_url_base": (node_settings_connections["frontend_url_base"] ?? null), + "login_url": (node_settings_connections["login_url"] ?? null), + })) (node_settings["connections"] ?? {}) + ), + })) (conf_raw["settings"] ?? {}) + ), + "admins": (conf_raw["admins"] ?? []), + "outputs": (() => { + switch (version) { + case 1: + case 2: { + const node_output = (conf_raw["output"] ?? {}); + return ( ("authelia" in node_output) - ? [ + ? + [ { "kind": "authelia_file", "data": { @@ -395,571 +449,19 @@ namespace _espe.conf } } ] - : [ - ] - )) (conf_raw["output"] ?? {}) - ), - }; - break; - } - case 2: { - _data = { - "general": ( - ((node_general) => ({ - "language": (node_general["language"] ?? null), - "verification_secret": (node_general["verification_secret"] ?? null), - })) (conf_raw["general"] ?? {}) - ), - "log": ( - ((node_log) => node_log.map( - (node_log_entry : any) => ({ - "kind": node_log_entry["kind"], - "data": Object.assign( - { - "format": "human_readable", - "threshold": "notice", - }, - (node_log_entry["data"] ?? {}) - ) - }) - )) ( - conf_raw["log"] - ?? + : [ - { - "kind": "console", - "data": { - } - }, ] - ) - ), - "server": ( - ((node_server) => ({ - "host": "::", - "port": (node_server["port"] ?? 4916), - "path_base": (node_server["path_base"] ?? ""), - })) (conf_raw["server"] ?? {}) - ), - "database": ( - ((node_database) => { - const kind : string = (node_database["kind"] ?? "sqlite"); - const node_database_data_raw = (node_database["data"] ?? {}); - switch (kind) { - case "sqlite": { - return { - "kind": kind, - "data": { - "path": (node_database_data_raw["path"] ?? "data.sqlite"), - } - }; - break; - } - case "postgresql": { - return { - "kind": kind, - "data": node_database_data_raw, - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["database"] ?? {}) - ), - "email_sending": ( - ((node_email_sending) => { - const kind : string = (node_email_sending["kind"] ?? "console"); - const data_raw = (node_email_sending["data"] ?? {}); - switch (kind) { - case "regular": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - } - }; - break; - } - case "redirect": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - "target": data_raw["target"], - } - }; - break; - } - case "console": { - return { - "kind": kind, - "data": { - } - }; - break; - } - case "drop": { - return { - "kind": kind, - "data": { - } - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["email_sending"] ?? {}) - ), - "session_management": ( - ((node_session_management) => ({ - "in_memory": (node_session_management["in_memory"] ?? true), - "drop_all_at_start": (node_session_management["drop_all_at_start"] ?? true), - "lifetime": (node_session_management["lifetime"] ?? 900), - })) (conf_raw["session_management"] ?? {}) - ), - "settings": ( - ((node_settings) => ({ - "organisation": { - "name": ((node_settings["organisation"] ?? {})["name"] ?? "Example Orginsation"), // TODO: mandatory? - "domain": ((node_settings["organisation"] ?? {})["domain"] ?? "example.org"), // TODO: mandatory? - }, - "misc": ( - ((node_settings_misc) => ({ - "prefix_for_veiled_email_addresses": (node_settings_misc["prefix_for_veiled_email_addresses"] ?? "member-"), - "facultative_membership_number": (node_settings_misc["facultative_membership_number"] ?? false), - "auto_register": (node_settings_misc["auto_register"] ?? false), - })) (node_settings["misc"] ?? {}) - ), - "summon_email": ( - ((node_settings_summon_email) => ({ - "remark": (node_settings_summon_email["remark"] ?? null), - })) (node_settings["summon_email"] ?? {}) - ), - "password_policy": ( - ((node_settings_password_policy) => ({ - "minimum_length": ( - ("minimum_length" in node_settings_password_policy) - ? node_settings_password_policy["minimum_length"] - : 8 - ), - "maximum_length": ( - ("maximum_length" in node_settings_password_policy) - ? node_settings_password_policy["maximum_length"] - : 240 - ), - "must_contain_letter": (node_settings_password_policy["must_contain_letter"] ?? true), - "must_contain_number": (node_settings_password_policy["must_contain_number"] ?? true), - "must_contain_special_character": (node_settings_password_policy["must_contain_special_character"] ?? true), - })) (node_settings["password_policy"] ?? {}) - ), - "password_change": ( - ((node_settings_password_change) => ({ - "cooldown_time": (node_settings_password_change["cooldown_time"] ?? 86400), - })) (node_settings["password_change"] ?? {}) - ), - "name_index": ( - ((node_settings_password_policy) => ({ - "veil": (node_settings_password_policy["veil"] ?? true), - "salt": (node_settings_password_policy["salt"] ?? ""), - })) (node_settings["name_index"] ?? {}) - ), - "connections": ( - ((node_settings_connections) => ({ - "frontend_url_base": (node_settings_connections["frontend_url_base"] ?? null), - "login_url": (node_settings_connections["login_url"] ?? null), - })) (node_settings["connections"] ?? {}) - ), - })) (conf_raw["settings"] ?? {}) - ), - "admins": (conf_raw["admins"] ?? []), - "outputs": ( - ((node_output) => ( - ("authelia" in node_output) - ? [ - { - "kind": "authelia_file", - "data": { - "path": node_output["authelia"], - } - } - ] - : [ - ] - )) (conf_raw["output"] ?? {}) - ), - }; - break; - } - case 3: { - _data = { - "general": ( - ((node_general) => ({ - "language": (node_general["language"] ?? null), - "verification_secret": (node_general["verification_secret"] ?? null), - })) (conf_raw["general"] ?? {}) - ), - "log": ( - ((node_log) => node_log.map( - (node_log_entry : any) => ({ - "kind": node_log_entry["kind"], - "data": Object.assign( - { - "format": "human_readable", - "threshold": "notice", - }, - (node_log_entry["data"] ?? {}) - ) - }) - )) ( - conf_raw["log"] - ?? - [ - { - "kind": "console", - "data": { - } - }, - ] - ) - ), - "server": ( - ((node_server) => ({ - "host": "::", - "port": (node_server["port"] ?? 4916), - "path_base": (node_server["path_base"] ?? ""), - })) (conf_raw["server"] ?? {}) - ), - "database": ( - ((node_database) => { - const kind : string = (node_database["kind"] ?? "sqlite"); - const node_database_data_raw = (node_database["data"] ?? {}); - switch (kind) { - case "sqlite": { - return { - "kind": kind, - "data": { - "path": (node_database_data_raw["path"] ?? "data.sqlite"), - } - }; - break; - } - case "postgresql": { - return { - "kind": kind, - "data": node_database_data_raw, - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["database"] ?? {}) - ), - "email_sending": ( - ((node_email_sending) => { - const kind : string = (node_email_sending["kind"] ?? "console"); - const data_raw = (node_email_sending["data"] ?? {}); - switch (kind) { - case "regular": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - } - }; - break; - } - case "redirect": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - "target": data_raw["target"], - } - }; - break; - } - case "console": { - return { - "kind": kind, - "data": { - } - }; - break; - } - case "drop": { - return { - "kind": kind, - "data": { - } - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["email_sending"] ?? {}) - ), - "session_management": ( - ((node_session_management) => ({ - "in_memory": (node_session_management["in_memory"] ?? true), - "drop_all_at_start": (node_session_management["drop_all_at_start"] ?? true), - "lifetime": (node_session_management["lifetime"] ?? 900), - })) (conf_raw["session_management"] ?? {}) - ), - "settings": ( - ((node_settings) => ({ - "organisation": { - "name": ((node_settings["organisation"] ?? {})["name"] ?? "Example Orginsation"), // TODO: mandatory? - "domain": ((node_settings["organisation"] ?? {})["domain"] ?? "example.org"), // TODO: mandatory? - }, - "misc": ( - ((node_settings_misc) => ({ - "prefix_for_veiled_email_addresses": (node_settings_misc["prefix_for_veiled_email_addresses"] ?? "member-"), - "facultative_membership_number": (node_settings_misc["facultative_membership_number"] ?? false), - "auto_register": (node_settings_misc["auto_register"] ?? false), - })) (node_settings["misc"] ?? {}) - ), - "summon_email": ( - ((node_settings_summon_email) => ({ - "remark": (node_settings_summon_email["remark"] ?? null), - })) (node_settings["summon_email"] ?? {}) - ), - "password_policy": ( - ((node_settings_password_policy) => ({ - "minimum_length": ( - ("minimum_length" in node_settings_password_policy) - ? node_settings_password_policy["minimum_length"] - : 8 - ), - "maximum_length": ( - ("maximum_length" in node_settings_password_policy) - ? node_settings_password_policy["maximum_length"] - : 240 - ), - "must_contain_letter": (node_settings_password_policy["must_contain_letter"] ?? true), - "must_contain_number": (node_settings_password_policy["must_contain_number"] ?? true), - "must_contain_special_character": (node_settings_password_policy["must_contain_special_character"] ?? true), - })) (node_settings["password_policy"] ?? {}) - ), - "password_change": ( - ((node_settings_password_change) => ({ - "cooldown_time": (node_settings_password_change["cooldown_time"] ?? 86400), - })) (node_settings["password_change"] ?? {}) - ), - "name_index": ( - ((node_settings_password_policy) => ({ - "veil": (node_settings_password_policy["veil"] ?? true), - "salt": (node_settings_password_policy["salt"] ?? ""), - })) (node_settings["name_index"] ?? {}) - ), - "connections": ( - ((node_settings_connections) => ({ - "frontend_url_base": (node_settings_connections["frontend_url_base"] ?? null), - "login_url": (node_settings_connections["login_url"] ?? null), - })) (node_settings["connections"] ?? {}) - ), - })) (conf_raw["settings"] ?? {}) - ), - "admins": (conf_raw["admins"] ?? []), - "outputs": (conf_raw["outputs"] ?? []), - }; - break; - } - case 4: { - _data = { - "general": ( - ((node_general) => ({ - "language": (node_general["language"] ?? null), - "verification_secret": (node_general["verification_secret"] ?? null), - })) (conf_raw["general"] ?? {}) - ), - "log": ( - ((node_log) => node_log.map( - (node_log_entry : any) => ({ - "kind": node_log_entry["kind"], - "data": Object.assign( - { - "format": "human_readable", - "threshold": "notice", - }, - (node_log_entry["data"] ?? {}) - ) - }) - )) ( - conf_raw["log"] - ?? - [ - { - "kind": "console", - "data": { - } - }, - ] - ) - ), - "server": ( - ((node_server) => ({ - "host": (node_server["host"] ?? "::"), - "port": (node_server["port"] ?? 4916), - "path_base": (node_server["path_base"] ?? ""), - })) (conf_raw["server"] ?? {}) - ), - "database": ( - ((node_database) => { - const kind : string = (node_database["kind"] ?? "sqlite"); - const node_database_data_raw = (node_database["data"] ?? {}); - switch (kind) { - case "sqlite": { - return { - "kind": kind, - "data": { - "path": (node_database_data_raw["path"] ?? "data.sqlite"), - } - }; - break; - } - case "postgresql": { - return { - "kind": kind, - "data": node_database_data_raw, - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["database"] ?? {}) - ), - "email_sending": ( - ((node_email_sending) => { - const kind : string = (node_email_sending["kind"] ?? "console"); - const data_raw = (node_email_sending["data"] ?? {}); - switch (kind) { - case "regular": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - } - }; - break; - } - case "redirect": { - return { - "kind": kind, - "data": { - "smtp_credentials": (data_raw["smtp_credentials"] ?? null), - "sender": data_raw["sender"], - "target": data_raw["target"], - } - }; - break; - } - case "console": { - return { - "kind": kind, - "data": { - } - }; - break; - } - case "drop": { - return { - "kind": kind, - "data": { - } - }; - break; - } - default: { - throw (new Error("unhandled")); - break; - } - } - }) (conf_raw["email_sending"] ?? {}) - ), - "session_management": ( - ((node_session_management) => ({ - "in_memory": (node_session_management["in_memory"] ?? true), - "drop_all_at_start": (node_session_management["drop_all_at_start"] ?? true), - "lifetime": (node_session_management["lifetime"] ?? 900), - })) (conf_raw["session_management"] ?? {}) - ), - "settings": ( - ((node_settings) => ({ - "organisation": { - "name": ((node_settings["organisation"] ?? {})["name"] ?? "Example Orginsation"), // TODO: mandatory? - "domain": ((node_settings["organisation"] ?? {})["domain"] ?? "example.org"), // TODO: mandatory? - }, - "misc": ( - ((node_settings_misc) => ({ - "prefix_for_veiled_email_addresses": (node_settings_misc["prefix_for_veiled_email_addresses"] ?? "member-"), - "facultative_membership_number": (node_settings_misc["facultative_membership_number"] ?? false), - "auto_register": (node_settings_misc["auto_register"] ?? false), - })) (node_settings["misc"] ?? {}) - ), - "summon_email": ( - ((node_settings_summon_email) => ({ - "remark": (node_settings_summon_email["remark"] ?? null), - })) (node_settings["summon_email"] ?? {}) - ), - "password_policy": ( - ((node_settings_password_policy) => ({ - "minimum_length": ( - ("minimum_length" in node_settings_password_policy) - ? node_settings_password_policy["minimum_length"] - : 8 - ), - "maximum_length": ( - ("maximum_length" in node_settings_password_policy) - ? node_settings_password_policy["maximum_length"] - : 240 - ), - "must_contain_letter": (node_settings_password_policy["must_contain_letter"] ?? true), - "must_contain_number": (node_settings_password_policy["must_contain_number"] ?? true), - "must_contain_special_character": (node_settings_password_policy["must_contain_special_character"] ?? true), - })) (node_settings["password_policy"] ?? {}) - ), - "password_change": ( - ((node_settings_password_change) => ({ - "cooldown_time": (node_settings_password_change["cooldown_time"] ?? 86400), - })) (node_settings["password_change"] ?? {}) - ), - "name_index": ( - ((node_settings_password_policy) => ({ - "veil": (node_settings_password_policy["veil"] ?? true), - "salt": (node_settings_password_policy["salt"] ?? ""), - })) (node_settings["name_index"] ?? {}) - ), - "connections": ( - ((node_settings_connections) => ({ - "frontend_url_base": (node_settings_connections["frontend_url_base"] ?? null), - "login_url": (node_settings_connections["login_url"] ?? null), - })) (node_settings["connections"] ?? {}) - ), - })) (conf_raw["settings"] ?? {}) - ), - "admins": (conf_raw["admins"] ?? []), - "outputs": ( - ((node_outputs) => node_outputs.map( + ); + break; + } + case 3: { + return (conf_raw["outputs"] ?? []); + break; + } + case 4: { + const node_outputs = (conf_raw["outputs"] ?? []); + return node_outputs.map( (output_description : {kind : string; data : any;}) => { const kind : string = output_description["kind"]; const node_options_data_raw = (output_description["data"] ?? {}); @@ -1005,16 +507,12 @@ namespace _espe.conf } } } - )) (conf_raw["outputs"] ?? []) - ), - }; - break; - } - default: { - throw (new Error("invalid conf version: " + conf_raw["version"])); - break; - } - } + ); + break; + } + } + }) (), + }; }