From e51edbcb979715fd672d90549b3be54770d94f88 Mon Sep 17 00:00:00 2001 From: John Hauck Date: Fri, 12 Jun 2026 09:48:06 -0600 Subject: [PATCH] replace additional characters --- packages/common/src/restHelpers.ts | 5 +++-- packages/common/test/restHelpers.test.ts | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/common/src/restHelpers.ts b/packages/common/src/restHelpers.ts index 249026724..aa61b2c90 100644 --- a/packages/common/src/restHelpers.ts +++ b/packages/common/src/restHelpers.ts @@ -2107,13 +2107,14 @@ export function _countRelationships(layers: any[]): number { /** * Remove spaces and replace other characters that are not allowed in a feature service name with "_". - * Spaces are removed entirely. Disallowed (replaced with "_"): '#', '%', '&', '"', '\', '/', '+', '?', ':', '*', '<', '>', '\t' + * Spaces are removed entirely. Disallowed (replaced with "_"): '#', '%', '&', '"', '\', '/', '+', '?', ':', '*', + * '<', '>', '\t', '!', '@', "'", ';', ',' * * @param name The candidate service name * @returns The sanitized name, or the input unchanged if it is not a string */ export function sanitizeFeatureServiceName(name: string): string { - return typeof name === "string" ? name.replace(/ /g, "").replace(/[#%&"\\/+?:*<>\t]/g, "_") : name; + return typeof name === "string" ? name.replace(/ /g, "").replace(/[#%&"\\/+?:*<>\t!@';,]/g, "_") : name; } /** diff --git a/packages/common/test/restHelpers.test.ts b/packages/common/test/restHelpers.test.ts index 9b9ed141d..724e5cdbe 100644 --- a/packages/common/test/restHelpers.test.ts +++ b/packages/common/test/restHelpers.test.ts @@ -4613,8 +4613,8 @@ describe("Module `restHelpers`: common REST utility functions shared across pack describe("sanitizeFeatureServiceName", () => { it("removes spaces and replaces every other disallowed character with '_'", () => { - const disallowedName = 'a#b%c&d"e\\f/g+h?i:j*km n\to'; - expect(restHelpers.sanitizeFeatureServiceName(disallowedName)).toEqual("a_b_c_d_e_f_g_h_i_j_k_l_mn_o"); + const disallowedName = "a#b%c&d\"e\\f/g+h?i:j*km n\to!p@q'r;s,t"; + expect(restHelpers.sanitizeFeatureServiceName(disallowedName)).toEqual("a_b_c_d_e_f_g_h_i_j_k_l_mn_o_p_q_r_s_t"); }); it("returns allowed names unchanged", () => {