From 1dd3287c291ad63b711f44cb22dda04d7f89773a Mon Sep 17 00:00:00 2001 From: Jeongho Nam Date: Wed, 18 Dec 2024 15:40:53 +0900 Subject: [PATCH 1/2] Adapt `@samchon/openapi@2.3.0`. Bump up `@samchon/openapi` version, and adapt its function name prohibition rule in the compilation level. --- package.json | 6 +-- packages/typescript-json/package.json | 6 +-- .../llm/LlmApplicationProgrammer.ts | 4 ++ test-error/src/llm/llm.application.name.ts | 41 +++++++++++++++++++ 4 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 test-error/src/llm/llm.application.name.ts diff --git a/package.json b/package.json index bd90c324fb..99284d2925 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "typia", - "version": "7.4.2", + "version": "7.5.0", "description": "Superfast runtime validators with only one line", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -41,7 +41,7 @@ }, "homepage": "https://typia.io", "dependencies": { - "@samchon/openapi": "^2.2.1", + "@samchon/openapi": "^2.3.0", "commander": "^10.0.0", "comment-json": "^4.2.3", "inquirer": "^8.2.5", @@ -50,7 +50,7 @@ }, "peerDependencies": { "typescript": ">=4.8.0 <5.8.0", - "@samchon/openapi": ">=2.2.1 <3.0.0" + "@samchon/openapi": ">=2.3.0 <3.0.0" }, "devDependencies": { "@rollup/plugin-commonjs": "^26.0.1", diff --git a/packages/typescript-json/package.json b/packages/typescript-json/package.json index 28cc9baa18..af2d8a18ad 100644 --- a/packages/typescript-json/package.json +++ b/packages/typescript-json/package.json @@ -1,6 +1,6 @@ { "name": "typescript-json", - "version": "7.4.2-dev.20241217", + "version": "7.5.0-dev.20241218", "description": "Superfast runtime validators with only one line", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -37,11 +37,11 @@ }, "homepage": "https://typia.io", "dependencies": { - "typia": "7.4.2-dev.20241217" + "typia": "7.5.0-dev.20241218" }, "peerDependencies": { "typescript": ">=4.8.0 <5.8.0", - "@samchon/openapi": ">=2.2.1 <3.0.0" + "@samchon/openapi": ">=2.3.0-dev.20241218 <3.0.0" }, "stackblitz": { "startCommand": "npm install && npm run test" diff --git a/src/programmers/llm/LlmApplicationProgrammer.ts b/src/programmers/llm/LlmApplicationProgrammer.ts index e47dee7e51..d9a724be07 100644 --- a/src/programmers/llm/LlmApplicationProgrammer.ts +++ b/src/programmers/llm/LlmApplicationProgrammer.ts @@ -95,6 +95,10 @@ export namespace LlmApplicationProgrammer { output.push( `${prefix}'s return type must not be union type with undefined.`, ); + if (/^[0-9]/.test(name[0] ?? "") === true) + output.push(`name must not start with a number`); + if (/^[a-zA-Z0-9_-]+$/.test(name) === false) + output.push(`name must be alphanumeric with underscore`); if (func.parameters.length !== 1) output.push(`${prefix} must have a single parameter.`); if (func.parameters.length !== 0) { diff --git a/test-error/src/llm/llm.application.name.ts b/test-error/src/llm/llm.application.name.ts new file mode 100644 index 0000000000..03242b8280 --- /dev/null +++ b/test-error/src/llm/llm.application.name.ts @@ -0,0 +1,41 @@ +import typia from "typia"; + +// APPLICATION FUNCTION +typia.llm.application< + { + "0create"(p: {}): void; + }, + "chatgpt" +>(); +typia.llm.application< + { + "a.b.c"(p: {}): void; + }, + "chatgpt" +>(); +typia.llm.application< + { + "&x"(p: {}): void; + }, + "chatgpt" +>(); + +// APPLICATION-OF-VALIDATE +typia.llm.applicationOfValidate< + { + "0create"(p: {}): void; + }, + "chatgpt" +>(); +typia.llm.applicationOfValidate< + { + "a.b.c"(p: {}): void; + }, + "chatgpt" +>(); +typia.llm.applicationOfValidate< + { + "&x"(p: {}): void; + }, + "chatgpt" +>(); From 166d49c51f224f9a2f8c74382cfef8770da0ca62 Mon Sep 17 00:00:00 2001 From: Jeongho Nam Date: Wed, 18 Dec 2024 15:44:07 +0900 Subject: [PATCH 2/2] Update LlmApplicationProgrammer.ts --- src/programmers/llm/LlmApplicationProgrammer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/programmers/llm/LlmApplicationProgrammer.ts b/src/programmers/llm/LlmApplicationProgrammer.ts index d9a724be07..e8d385ffb0 100644 --- a/src/programmers/llm/LlmApplicationProgrammer.ts +++ b/src/programmers/llm/LlmApplicationProgrammer.ts @@ -96,9 +96,9 @@ export namespace LlmApplicationProgrammer { `${prefix}'s return type must not be union type with undefined.`, ); if (/^[0-9]/.test(name[0] ?? "") === true) - output.push(`name must not start with a number`); + output.push(`name must not start with a number.`); if (/^[a-zA-Z0-9_-]+$/.test(name) === false) - output.push(`name must be alphanumeric with underscore`); + output.push(`name must be alphanumeric with underscore or hypen.`); if (func.parameters.length !== 1) output.push(`${prefix} must have a single parameter.`); if (func.parameters.length !== 0) {