diff --git a/benchmark/package.json b/benchmark/package.json index eb62889c8..a92529b66 100644 --- a/benchmark/package.json +++ b/benchmark/package.json @@ -39,9 +39,9 @@ "physical-cpu-count": "^2.0.0", "randexp": "^0.5.3", "reflect-metadata": "^0.2.2", - "tgrid": "^1.0.0", + "tgrid": "^1.0.2", "tstl": "^3.0.0", - "typia": "^6.0.3" + "typia": "^6.3.1" }, "devDependencies": { "@types/autocannon": "^7.9.0", @@ -51,7 +51,7 @@ "@types/physical-cpu-count": "^2.0.0", "rimraf": "^5.0.1", "ts-node": "^10.9.1", - "ts-patch": "^3.1.1", + "ts-patch": "^3.2.1", "typescript": "^5.4.5" } } diff --git a/package.json b/package.json index 6ec5c6ad6..5566e638e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@nestia/station", - "version": "3.3.0-dev.20240624", + "version": "3.3.0", "description": "Nestia station", "scripts": { "build": "node build/index.js", diff --git a/packages/cli/package.json b/packages/cli/package.json index 17dbff4c5..ae5ced68b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -41,7 +41,7 @@ "@types/inquirer": "^9.0.3", "@types/node": "^18.11.16", "rimraf": "^3.0.2", - "typescript": "<5.5.0" + "typescript": "^5.5.2" }, "files": [ "bin", diff --git a/packages/core/package.json b/packages/core/package.json index 044a9f61e..96c4f1e0d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@nestia/core", - "version": "3.3.0-dev.20240624", + "version": "3.3.0", "description": "Super-fast validation decorators of NestJS", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -36,7 +36,7 @@ }, "homepage": "https://nestia.io", "dependencies": { - "@nestia/fetcher": "^3.3.0-dev.20240624", + "@nestia/fetcher": "^3.3.0", "@nestjs/common": ">=7.0.1", "@nestjs/core": ">=7.0.1", "@samchon/openapi": "^0.1.21", @@ -49,16 +49,16 @@ "reflect-metadata": ">=0.1.12", "rxjs": ">=6.0.3", "tgrid": "^1.0.0", - "typia": "^6.0.3", + "typia": "^6.3.1", "ws": "^7.5.3" }, "peerDependencies": { - "@nestia/fetcher": ">=3.3.0-dev.20240624", + "@nestia/fetcher": ">=3.3.0", "@nestjs/common": ">=7.0.1", "@nestjs/core": ">=7.0.1", "reflect-metadata": ">=0.1.12", "rxjs": ">=6.0.3", - "typia": ">=6.0.3 <7.0.0" + "typia": ">=6.3.1 <7.0.0" }, "devDependencies": { "@fastify/multipart": "^8.1.0", @@ -80,9 +80,9 @@ "inquirer": "^8.2.5", "rimraf": "^3.0.2", "ts-node": "^10.9.1", - "ts-patch": "^3.2.0", + "ts-patch": "^3.2.1", "tstl": "^3.0.0", - "typescript": "<5.5.0", + "typescript": "^5.5.2", "typescript-transform-paths": "^3.4.6" }, "files": [ diff --git a/packages/e2e/package.json b/packages/e2e/package.json index 18b2cf376..78844d2ba 100644 --- a/packages/e2e/package.json +++ b/packages/e2e/package.json @@ -36,15 +36,15 @@ "@typescript-eslint/parser": "^5.57.0", "rimraf": "^4.1.2", "ts-node": "^10.9.1", - "ts-patch": "^3.1.0", - "typescript": "<5.5.0", - "typia": "^6.1.1" + "ts-patch": "^3.2.1", + "typescript": "^5.5.2", + "typia": "^6.3.1" }, "dependencies": { "@nestia/fetcher": "^3.2.2", "chalk": "^4.1.2", "cli": "^1.0.1", - "tgrid": "^1.0.1", + "tgrid": "^1.0.2", "tstl": "^3.0.0" }, "files": [ diff --git a/packages/fetcher/package.json b/packages/fetcher/package.json index 1e8dd0b4f..fc2c5ff93 100644 --- a/packages/fetcher/package.json +++ b/packages/fetcher/package.json @@ -1,6 +1,6 @@ { "name": "@nestia/fetcher", - "version": "3.3.0-dev.20240624", + "version": "3.3.0", "description": "Fetcher library of Nestia SDK", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -30,7 +30,7 @@ "@typescript-eslint/eslint-plugin": "^5.46.1", "@typescript-eslint/parser": "^5.46.1", "rimraf": "^3.0.2", - "typescript": "<5.5.0" + "typescript": "^5.5.2" }, "peerDependencies": { "typescript": ">= 4.8.0" diff --git a/packages/migrate/package.json b/packages/migrate/package.json index 9b33bfee2..93ae32191 100644 --- a/packages/migrate/package.json +++ b/packages/migrate/package.json @@ -68,8 +68,8 @@ "inquirer": "8.2.5", "prettier": "^3.2.5", "tstl": "^3.0.0", - "typescript": "<5.5.0", - "typia": "^6.2.1" + "typescript": "^5.5.2", + "typia": "^6.3.1" }, "files": [ "lib", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index a8a8fe0bc..e03efcee2 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@nestia/sdk", - "version": "3.3.0-dev.20240624", + "version": "3.3.0", "description": "Nestia SDK and Swagger generator", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -32,7 +32,7 @@ }, "homepage": "https://nestia.io", "dependencies": { - "@nestia/fetcher": "^3.3.0-dev.20240624", + "@nestia/fetcher": "^3.3.0", "@samchon/openapi": "^0.1.21", "cli": "^1.0.1", "get-function-location": "^2.0.0", @@ -43,15 +43,15 @@ "tsconfck": "^2.0.1", "tsconfig-paths": "^4.1.1", "tstl": "^3.0.0", - "typia": "^6.0.3" + "typia": "^6.3.1" }, "peerDependencies": { - "@nestia/fetcher": ">=3.3.0-dev.20240624", + "@nestia/fetcher": ">=3.3.0", "@nestjs/common": ">=7.0.1", "@nestjs/core": ">=7.0.1", "reflect-metadata": ">=0.1.12", "ts-node": ">=10.6.0", - "typia": ">=6.0.3 <7.0.0" + "typia": ">=6.3.1 <7.0.0" }, "devDependencies": { "@nestia/e2e": "^0.4.3", @@ -67,9 +67,9 @@ "eslint": "^8.29.0", "eslint-plugin-deprecation": "^1.4.1", "rimraf": "^3.0.2", - "tgrid": "^1.0.0", - "ts-patch": "^3.2.0", - "typescript": "<5.5.0", + "tgrid": "^1.0.2", + "ts-patch": "^3.2.1", + "typescript": "^5.5.2", "typescript-transform-paths": "^3.4.4", "uuid": "^9.0.0" }, diff --git a/test/features/all/src/api/HttpError.ts b/test/features/all/src/api/HttpError.ts new file mode 100644 index 000000000..5df328ae4 --- /dev/null +++ b/test/features/all/src/api/HttpError.ts @@ -0,0 +1 @@ +export { HttpError } from "@nestia/fetcher"; diff --git a/test/features/all/src/api/IConnection.ts b/test/features/all/src/api/IConnection.ts new file mode 100644 index 000000000..107bdb8f8 --- /dev/null +++ b/test/features/all/src/api/IConnection.ts @@ -0,0 +1 @@ +export type { IConnection } from "@nestia/fetcher"; diff --git a/test/features/all/src/api/Primitive.ts b/test/features/all/src/api/Primitive.ts new file mode 100644 index 000000000..60d394424 --- /dev/null +++ b/test/features/all/src/api/Primitive.ts @@ -0,0 +1 @@ +export type { Primitive } from "@nestia/fetcher"; diff --git a/test/features/all/src/api/functional/all/index.ts b/test/features/all/src/api/functional/all/index.ts new file mode 100644 index 000000000..9bc5cc256 --- /dev/null +++ b/test/features/all/src/api/functional/all/index.ts @@ -0,0 +1,65 @@ +/** + * @packageDocumentation + * @module api.functional.all + * @nestia Generated by Nestia - https://github.com/samchon/nestia + */ +//================================================================ +import type { IConnection, Primitive } from "@nestia/fetcher"; +import { PlainFetcher } from "@nestia/fetcher/lib/PlainFetcher"; + +import type { IBbsArticle } from "../../structures/IBbsArticle"; + +/** + * Store an article. + * + * Create an article, and returns it. + * + * @param input Content to store + * @returns Newly archived article + * @author Samchon + * @warning This is an fake API + * + * @controller AllController.store + * @path POST /all + * @nestia Generated by Nestia - https://github.com/samchon/nestia + */ +export async function store( + connection: IConnection, + input: store.Input, +): Promise { + return PlainFetcher.fetch( + { + ...connection, + headers: { + ...connection.headers, + "Content-Type": "application/json", + }, + }, + { + ...store.METADATA, + template: store.METADATA.path, + path: store.path(), + }, + input, + ); +} +export namespace store { + export type Input = Primitive; + export type Output = Primitive; + + export const METADATA = { + method: "POST", + path: "/all", + request: { + type: "application/json", + encrypted: false, + }, + response: { + type: "application/json", + encrypted: false, + }, + status: null, + } as const; + + export const path = () => "/all"; +} diff --git a/test/features/all/src/api/functional/health/index.ts b/test/features/all/src/api/functional/health/index.ts new file mode 100644 index 000000000..d5a9f9925 --- /dev/null +++ b/test/features/all/src/api/functional/health/index.ts @@ -0,0 +1,35 @@ +/** + * @packageDocumentation + * @module api.functional.health + * @nestia Generated by Nestia - https://github.com/samchon/nestia + */ +//================================================================ +import type { IConnection } from "@nestia/fetcher"; +import { PlainFetcher } from "@nestia/fetcher/lib/PlainFetcher"; + +/** + * @controller HealthController.get + * @path GET /health + * @nestia Generated by Nestia - https://github.com/samchon/nestia + */ +export async function get(connection: IConnection): Promise { + return PlainFetcher.fetch(connection, { + ...get.METADATA, + template: get.METADATA.path, + path: get.path(), + }); +} +export namespace get { + export const METADATA = { + method: "GET", + path: "/health", + request: null, + response: { + type: "application/json", + encrypted: false, + }, + status: null, + } as const; + + export const path = () => "/health"; +} diff --git a/test/features/all/src/api/functional/index.ts b/test/features/all/src/api/functional/index.ts new file mode 100644 index 000000000..43fbad9c4 --- /dev/null +++ b/test/features/all/src/api/functional/index.ts @@ -0,0 +1,9 @@ +/** + * @packageDocumentation + * @module api.functional + * @nestia Generated by Nestia - https://github.com/samchon/nestia + */ +//================================================================ +export * as all from "./all"; +export * as health from "./health"; +export * as performance from "./performance"; diff --git a/test/features/all/src/api/functional/performance/index.ts b/test/features/all/src/api/functional/performance/index.ts new file mode 100644 index 000000000..2e71dbb40 --- /dev/null +++ b/test/features/all/src/api/functional/performance/index.ts @@ -0,0 +1,39 @@ +/** + * @packageDocumentation + * @module api.functional.performance + * @nestia Generated by Nestia - https://github.com/samchon/nestia + */ +//================================================================ +import type { IConnection, Primitive } from "@nestia/fetcher"; +import { PlainFetcher } from "@nestia/fetcher/lib/PlainFetcher"; + +import type { IPerformance } from "../../structures/IPerformance"; + +/** + * @controller PerformanceController.get + * @path GET /performance + * @nestia Generated by Nestia - https://github.com/samchon/nestia + */ +export async function get(connection: IConnection): Promise { + return PlainFetcher.fetch(connection, { + ...get.METADATA, + template: get.METADATA.path, + path: get.path(), + }); +} +export namespace get { + export type Output = Primitive; + + export const METADATA = { + method: "GET", + path: "/performance", + request: null, + response: { + type: "application/json", + encrypted: false, + }, + status: null, + } as const; + + export const path = () => "/performance"; +} diff --git a/test/features/all/src/api/index.ts b/test/features/all/src/api/index.ts new file mode 100644 index 000000000..1705f43c8 --- /dev/null +++ b/test/features/all/src/api/index.ts @@ -0,0 +1,4 @@ +import * as api from "./module"; + +export * from "./module"; +export default api; diff --git a/test/features/all/src/api/module.ts b/test/features/all/src/api/module.ts new file mode 100644 index 000000000..dbb6e9a51 --- /dev/null +++ b/test/features/all/src/api/module.ts @@ -0,0 +1,5 @@ +export type * from "./IConnection"; +export type * from "./Primitive"; +export * from "./HttpError"; + +export * as functional from "./functional"; diff --git a/test/features/all/src/test/features/api/automated/test_api_all_store.ts b/test/features/all/src/test/features/api/automated/test_api_all_store.ts new file mode 100644 index 000000000..85a81a6a1 --- /dev/null +++ b/test/features/all/src/test/features/api/automated/test_api_all_store.ts @@ -0,0 +1,13 @@ +import type { Primitive } from "@nestia/fetcher"; +import typia from "typia"; + +import api from "../../../../api"; +import type { IBbsArticle } from "../../../../api/structures/IBbsArticle"; + +export const test_api_all_store = async (connection: api.IConnection) => { + const output: Primitive = await api.functional.all.store( + connection, + typia.random(), + ); + typia.assert(output); +}; diff --git a/test/features/all/src/test/features/api/automated/test_api_health_get.ts b/test/features/all/src/test/features/api/automated/test_api_health_get.ts new file mode 100644 index 000000000..8766b1129 --- /dev/null +++ b/test/features/all/src/test/features/api/automated/test_api_health_get.ts @@ -0,0 +1,8 @@ +import typia from "typia"; + +import api from "../../../../api"; + +export const test_api_health_get = async (connection: api.IConnection) => { + const output = await api.functional.health.get(connection); + typia.assert(output); +}; diff --git a/test/features/all/src/test/features/api/automated/test_api_performance_get.ts b/test/features/all/src/test/features/api/automated/test_api_performance_get.ts new file mode 100644 index 000000000..54cdfd218 --- /dev/null +++ b/test/features/all/src/test/features/api/automated/test_api_performance_get.ts @@ -0,0 +1,11 @@ +import type { Primitive } from "@nestia/fetcher"; +import typia from "typia"; + +import api from "../../../../api"; +import type { IPerformance } from "../../../../api/structures/IPerformance"; + +export const test_api_performance_get = async (connection: api.IConnection) => { + const output: Primitive = + await api.functional.performance.get(connection); + typia.assert(output); +}; diff --git a/test/features/all/swagger.json b/test/features/all/swagger.json new file mode 100644 index 000000000..12325b646 --- /dev/null +++ b/test/features/all/swagger.json @@ -0,0 +1,320 @@ +{ + "openapi": "3.1.0", + "servers": [ + { + "url": "https://github.com/samchon/nestia", + "description": "insert your server url" + } + ], + "info": { + "version": "3.3.0-dev.20240627", + "title": "@nestia/test", + "description": "Test program of Nestia", + "license": { + "name": "MIT" + } + }, + "paths": { + "/all": { + "post": { + "tags": [], + "parameters": [], + "requestBody": { + "description": "Content to store", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IBbsArticle.IStore" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Newly archived article", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IBbsArticle" + } + } + } + } + }, + "summary": "Store an article", + "description": "Store an article.\n\nCreate an article, and returns it." + } + }, + "/health": { + "get": { + "tags": [], + "parameters": [], + "responses": { + "200": { + "description": "" + } + } + } + }, + "/performance": { + "get": { + "tags": [], + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IPerformance" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "IBbsArticle.IStore": { + "type": "object", + "properties": { + "title": { + "type": "string", + "minLength": 3, + "maxLength": 50 + }, + "body": { + "type": "string" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IAttachmentFile" + } + } + }, + "required": [ + "title", + "body", + "files" + ] + }, + "IAttachmentFile": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "maxLength": 255 + } + ] + }, + "extension": { + "oneOf": [ + { + "type": "null" + }, + { + "type": "string", + "minLength": 1, + "maxLength": 8 + } + ] + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name", + "extension", + "url" + ] + }, + "IBbsArticle": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "title": { + "type": "string", + "minLength": 3, + "maxLength": 50 + }, + "body": { + "type": "string" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IAttachmentFile" + } + } + }, + "required": [ + "id", + "created_at", + "title", + "body", + "files" + ] + }, + "IPerformance": { + "type": "object", + "properties": { + "cpu": { + "$ref": "#/components/schemas/process.global.NodeJS.CpuUsage" + }, + "memory": { + "$ref": "#/components/schemas/process.global.NodeJS.MemoryUsage" + }, + "resource": { + "$ref": "#/components/schemas/process.global.NodeJS.ResourceUsage" + } + }, + "required": [ + "cpu", + "memory", + "resource" + ], + "description": "Performance info." + }, + "process.global.NodeJS.CpuUsage": { + "type": "object", + "properties": { + "user": { + "type": "number" + }, + "system": { + "type": "number" + } + }, + "required": [ + "user", + "system" + ] + }, + "process.global.NodeJS.MemoryUsage": { + "type": "object", + "properties": { + "rss": { + "type": "number" + }, + "heapTotal": { + "type": "number" + }, + "heapUsed": { + "type": "number" + }, + "external": { + "type": "number" + }, + "arrayBuffers": { + "type": "number" + } + }, + "required": [ + "rss", + "heapTotal", + "heapUsed", + "external", + "arrayBuffers" + ] + }, + "process.global.NodeJS.ResourceUsage": { + "type": "object", + "properties": { + "fsRead": { + "type": "number" + }, + "fsWrite": { + "type": "number" + }, + "involuntaryContextSwitches": { + "type": "number" + }, + "ipcReceived": { + "type": "number" + }, + "ipcSent": { + "type": "number" + }, + "majorPageFault": { + "type": "number" + }, + "maxRSS": { + "type": "number" + }, + "minorPageFault": { + "type": "number" + }, + "sharedMemorySize": { + "type": "number" + }, + "signalsCount": { + "type": "number" + }, + "swappedOut": { + "type": "number" + }, + "systemCPUTime": { + "type": "number" + }, + "unsharedDataSize": { + "type": "number" + }, + "unsharedStackSize": { + "type": "number" + }, + "userCPUTime": { + "type": "number" + }, + "voluntaryContextSwitches": { + "type": "number" + } + }, + "required": [ + "fsRead", + "fsWrite", + "involuntaryContextSwitches", + "ipcReceived", + "ipcSent", + "majorPageFault", + "maxRSS", + "minorPageFault", + "sharedMemorySize", + "signalsCount", + "swappedOut", + "systemCPUTime", + "unsharedDataSize", + "unsharedStackSize", + "userCPUTime", + "voluntaryContextSwitches" + ] + } + }, + "securitySchemes": { + "bearer": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + } + }, + "tags": [], + "x-samchon-emended": true +} \ No newline at end of file diff --git a/test/features/app/swagger.json b/test/features/app/swagger.json index 10bda408c..5082ab8dd 100644 --- a/test/features/app/swagger.json +++ b/test/features/app/swagger.json @@ -1 +1 @@ -{"openapi":"3.1.0","servers":[{"url":"https://github.com/samchon/nestia","description":"insert your server url"}],"info":{"version":"3.2.2-dev.20240617","title":"@nestia/test","description":"Test program of Nestia","license":{"name":"MIT"}},"paths":{"/health":{"get":{"tags":[],"parameters":[],"responses":{"200":{"description":""}}}},"/performance":{"get":{"tags":[],"parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPerformance"}}}}}}},"/bbs/{section}/articles":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"query","in":"query","schema":{"$ref":"#/components/schemas/IPage.IRequest"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPageIBbsArticle.ISummary"}}}}}},"post":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"Section code","required":true}],"requestBody":{"description":"Content to store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle.IStore"}}},"required":true},"responses":{"201":{"description":"Newly archived article","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle"}}}}},"summary":"Store a new article","description":"Store a new article."}},"/bbs/{section}/articles/{id}":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle"}}}}}},"put":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"Section code","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"Target article ID","required":true}],"requestBody":{"description":"Content to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle.IStore"}}},"required":true},"responses":{"200":{"description":"Updated content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle"}}}}},"summary":"Update an article","description":"Update an article."}},"/{section}/articles/{articleId}/comments":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true},{"name":"query","in":"query","schema":{"$ref":"#/components/schemas/IPage.IRequest"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPageIBbsComment"}}}}}},"post":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment.IStore"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment"}}}}}}},"/{section}/articles/{articleId}/comments/{id}":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment"}}}}}},"put":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment.IStore"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment"}}}}}}}},"components":{"schemas":{"IPerformance":{"type":"object","properties":{"cpu":{"$ref":"#/components/schemas/process.global.NodeJS.CpuUsage"},"memory":{"$ref":"#/components/schemas/process.global.NodeJS.MemoryUsage"},"resource":{"$ref":"#/components/schemas/process.global.NodeJS.ResourceUsage"}},"required":["cpu","memory","resource"],"description":"Performance info."},"process.global.NodeJS.CpuUsage":{"type":"object","properties":{"user":{"type":"number"},"system":{"type":"number"}},"required":["user","system"]},"process.global.NodeJS.MemoryUsage":{"type":"object","properties":{"rss":{"type":"number"},"heapTotal":{"type":"number"},"heapUsed":{"type":"number"},"external":{"type":"number"},"arrayBuffers":{"type":"number"}},"required":["rss","heapTotal","heapUsed","external","arrayBuffers"]},"process.global.NodeJS.ResourceUsage":{"type":"object","properties":{"fsRead":{"type":"number"},"fsWrite":{"type":"number"},"involuntaryContextSwitches":{"type":"number"},"ipcReceived":{"type":"number"},"ipcSent":{"type":"number"},"majorPageFault":{"type":"number"},"maxRSS":{"type":"number"},"minorPageFault":{"type":"number"},"sharedMemorySize":{"type":"number"},"signalsCount":{"type":"number"},"swappedOut":{"type":"number"},"systemCPUTime":{"type":"number"},"unsharedDataSize":{"type":"number"},"unsharedStackSize":{"type":"number"},"userCPUTime":{"type":"number"},"voluntaryContextSwitches":{"type":"number"}},"required":["fsRead","fsWrite","involuntaryContextSwitches","ipcReceived","ipcSent","majorPageFault","maxRSS","minorPageFault","sharedMemorySize","signalsCount","swappedOut","systemCPUTime","unsharedDataSize","unsharedStackSize","userCPUTime","voluntaryContextSwitches"]},"IPage.IRequest":{"type":"object","properties":{"page":{"oneOf":[{"type":"null"},{"type":"integer"}]},"limit":{"oneOf":[{"type":"null"},{"type":"integer"}]}},"description":"Page request data"},"IPageIBbsArticle.ISummary":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IBbsArticle.ISummary"}},"pagination":{"$ref":"#/components/schemas/IPage.IPagination"}},"required":["data","pagination"]},"IBbsArticle.ISummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"section":{"type":"string"},"writer":{"type":"string"},"title":{"type":"string","minLength":3,"maxLength":50},"created_at":{"type":"string","format":"date-time"}},"required":["id","section","writer","title","created_at"]},"IPage.IPagination":{"type":"object","properties":{"current":{"type":"integer"},"limit":{"type":"integer"},"records":{"type":"integer"},"pages":{"type":"integer"}},"required":["current","limit","records","pages"],"description":"Page information."},"IBbsArticle":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"section":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["id","section","created_at","title","body","files"]},"IAttachmentFile":{"type":"object","properties":{"name":{"oneOf":[{"type":"null"},{"type":"string","minLength":1,"maxLength":255}]},"extension":{"oneOf":[{"type":"null"},{"type":"string","minLength":1,"maxLength":8}]},"url":{"oneOf":[{"type":"null"},{"type":"string","format":"uri"}]}},"required":["name","extension","url"]},"IBbsArticle.IStore":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["title","body","files"]},"IPageIBbsComment":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IBbsComment"}},"pagination":{"$ref":"#/components/schemas/IPage.IPagination"}},"required":["data","pagination"]},"IBbsComment":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["id","created_at","body","files"]},"IBbsComment.IStore":{"type":"object","properties":{"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["body","files"]}},"securitySchemes":{"bearer":{"type":"apiKey","in":"header","name":"Authorization"}}},"tags":[],"x-samchon-emended":true} \ No newline at end of file +{"openapi":"3.1.0","servers":[{"url":"https://github.com/samchon/nestia","description":"insert your server url"}],"info":{"version":"3.3.0-dev.20240627","title":"@nestia/test","description":"Test program of Nestia","license":{"name":"MIT"}},"paths":{"/health":{"get":{"tags":[],"parameters":[],"responses":{"200":{"description":""}}}},"/performance":{"get":{"tags":[],"parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPerformance"}}}}}}},"/bbs/{section}/articles":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"query","in":"query","schema":{"$ref":"#/components/schemas/IPage.IRequest"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPageIBbsArticle.ISummary"}}}}}},"post":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"Section code","required":true}],"requestBody":{"description":"Content to store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle.IStore"}}},"required":true},"responses":{"201":{"description":"Newly archived article","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle"}}}}},"summary":"Store a new article","description":"Store a new article."}},"/bbs/{section}/articles/{id}":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle"}}}}}},"put":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"Section code","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"Target article ID","required":true}],"requestBody":{"description":"Content to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle.IStore"}}},"required":true},"responses":{"200":{"description":"Updated content","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle"}}}}},"summary":"Update an article","description":"Update an article."}},"/{section}/articles/{articleId}/comments":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true},{"name":"query","in":"query","schema":{"$ref":"#/components/schemas/IPage.IRequest"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPageIBbsComment"}}}}}},"post":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment.IStore"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment"}}}}}}},"/{section}/articles/{articleId}/comments/{id}":{"get":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment"}}}}}},"put":{"tags":[],"parameters":[{"name":"section","in":"path","schema":{"type":"string"},"description":"","required":true},{"name":"articleId","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true},{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"description":"","required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment.IStore"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsComment"}}}}}}}},"components":{"schemas":{"IPerformance":{"type":"object","properties":{"cpu":{"$ref":"#/components/schemas/process.global.NodeJS.CpuUsage"},"memory":{"$ref":"#/components/schemas/process.global.NodeJS.MemoryUsage"},"resource":{"$ref":"#/components/schemas/process.global.NodeJS.ResourceUsage"}},"required":["cpu","memory","resource"],"description":"Performance info."},"process.global.NodeJS.CpuUsage":{"type":"object","properties":{"user":{"type":"number"},"system":{"type":"number"}},"required":["user","system"]},"process.global.NodeJS.MemoryUsage":{"type":"object","properties":{"rss":{"type":"number"},"heapTotal":{"type":"number"},"heapUsed":{"type":"number"},"external":{"type":"number"},"arrayBuffers":{"type":"number"}},"required":["rss","heapTotal","heapUsed","external","arrayBuffers"]},"process.global.NodeJS.ResourceUsage":{"type":"object","properties":{"fsRead":{"type":"number"},"fsWrite":{"type":"number"},"involuntaryContextSwitches":{"type":"number"},"ipcReceived":{"type":"number"},"ipcSent":{"type":"number"},"majorPageFault":{"type":"number"},"maxRSS":{"type":"number"},"minorPageFault":{"type":"number"},"sharedMemorySize":{"type":"number"},"signalsCount":{"type":"number"},"swappedOut":{"type":"number"},"systemCPUTime":{"type":"number"},"unsharedDataSize":{"type":"number"},"unsharedStackSize":{"type":"number"},"userCPUTime":{"type":"number"},"voluntaryContextSwitches":{"type":"number"}},"required":["fsRead","fsWrite","involuntaryContextSwitches","ipcReceived","ipcSent","majorPageFault","maxRSS","minorPageFault","sharedMemorySize","signalsCount","swappedOut","systemCPUTime","unsharedDataSize","unsharedStackSize","userCPUTime","voluntaryContextSwitches"]},"IPage.IRequest":{"type":"object","properties":{"page":{"oneOf":[{"type":"null"},{"type":"integer"}]},"limit":{"oneOf":[{"type":"null"},{"type":"integer"}]}},"description":"Page request data"},"IPageIBbsArticle.ISummary":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IBbsArticle.ISummary"}},"pagination":{"$ref":"#/components/schemas/IPage.IPagination"}},"required":["data","pagination"]},"IBbsArticle.ISummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"section":{"type":"string"},"writer":{"type":"string"},"title":{"type":"string","minLength":3,"maxLength":50},"created_at":{"type":"string","format":"date-time"}},"required":["id","section","writer","title","created_at"]},"IPage.IPagination":{"type":"object","properties":{"current":{"type":"integer"},"limit":{"type":"integer"},"records":{"type":"integer"},"pages":{"type":"integer"}},"required":["current","limit","records","pages"],"description":"Page information."},"IBbsArticle":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"section":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["id","section","created_at","title","body","files"]},"IAttachmentFile":{"type":"object","properties":{"name":{"oneOf":[{"type":"null"},{"type":"string","minLength":1,"maxLength":255}]},"extension":{"oneOf":[{"type":"null"},{"type":"string","minLength":1,"maxLength":8}]},"url":{"oneOf":[{"type":"null"},{"type":"string","format":"uri"}]}},"required":["name","extension","url"]},"IBbsArticle.IStore":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["title","body","files"]},"IPageIBbsComment":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IBbsComment"}},"pagination":{"$ref":"#/components/schemas/IPage.IPagination"}},"required":["data","pagination"]},"IBbsComment":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["id","created_at","body","files"]},"IBbsComment.IStore":{"type":"object","properties":{"body":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["body","files"]}},"securitySchemes":{"bearer":{"type":"apiKey","in":"header","name":"Authorization"}}},"tags":[],"x-samchon-emended":true} \ No newline at end of file diff --git a/test/features/distribute-assert-json/packages/api/package.json b/test/features/distribute-assert-json/packages/api/package.json index 4d5ff0f17..293ee4804 100644 --- a/test/features/distribute-assert-json/packages/api/package.json +++ b/test/features/distribute-assert-json/packages/api/package.json @@ -29,11 +29,11 @@ "devDependencies": { "rimraf": "^5.0.7", "ts-node": "^10.9.2", - "ts-patch": "^3.2.0", - "typescript": "<5.5.0" + "ts-patch": "^3.2.1", + "typescript": "^5.5.2" }, "dependencies": { "@nestia/fetcher": "^3.2.2-dev.20240617", - "typia": "^6.0.3" + "typia": "^6.3.1" } } \ No newline at end of file diff --git a/test/features/distribute-assert/packages/api/package.json b/test/features/distribute-assert/packages/api/package.json index 4d5ff0f17..293ee4804 100644 --- a/test/features/distribute-assert/packages/api/package.json +++ b/test/features/distribute-assert/packages/api/package.json @@ -29,11 +29,11 @@ "devDependencies": { "rimraf": "^5.0.7", "ts-node": "^10.9.2", - "ts-patch": "^3.2.0", - "typescript": "<5.5.0" + "ts-patch": "^3.2.1", + "typescript": "^5.5.2" }, "dependencies": { "@nestia/fetcher": "^3.2.2-dev.20240617", - "typia": "^6.0.3" + "typia": "^6.3.1" } } \ No newline at end of file diff --git a/test/features/distribute-json/packages/api/package.json b/test/features/distribute-json/packages/api/package.json index 4d5ff0f17..293ee4804 100644 --- a/test/features/distribute-json/packages/api/package.json +++ b/test/features/distribute-json/packages/api/package.json @@ -29,11 +29,11 @@ "devDependencies": { "rimraf": "^5.0.7", "ts-node": "^10.9.2", - "ts-patch": "^3.2.0", - "typescript": "<5.5.0" + "ts-patch": "^3.2.1", + "typescript": "^5.5.2" }, "dependencies": { "@nestia/fetcher": "^3.2.2-dev.20240617", - "typia": "^6.0.3" + "typia": "^6.3.1" } } \ No newline at end of file diff --git a/test/features/distribute/packages/api/package.json b/test/features/distribute/packages/api/package.json index 4d5ff0f17..293ee4804 100644 --- a/test/features/distribute/packages/api/package.json +++ b/test/features/distribute/packages/api/package.json @@ -29,11 +29,11 @@ "devDependencies": { "rimraf": "^5.0.7", "ts-node": "^10.9.2", - "ts-patch": "^3.2.0", - "typescript": "<5.5.0" + "ts-patch": "^3.2.1", + "typescript": "^5.5.2" }, "dependencies": { "@nestia/fetcher": "^3.2.2-dev.20240617", - "typia": "^6.0.3" + "typia": "^6.3.1" } } \ No newline at end of file diff --git a/test/package.json b/test/package.json index d30ded912..18e5b14ad 100644 --- a/test/package.json +++ b/test/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@nestia/test", - "version": "3.3.0-dev.20240624", + "version": "3.3.0", "description": "Test program of Nestia", "main": "index.js", "scripts": { @@ -26,7 +26,7 @@ }, "homepage": "https://nestia.io", "devDependencies": { - "@nestia/sdk": "^3.3.0-dev.20240624", + "@nestia/sdk": "^3.3.0", "@nestjs/swagger": "^7.1.2", "@samchon/openapi": "^0.1.21", "@types/express": "^4.17.17", @@ -34,22 +34,22 @@ "@types/uuid": "^9.0.8", "nestia": "^5.3.0", "ts-node": "^10.9.2", - "ts-patch": "v3.1.2", + "ts-patch": "v3.2.1", "typescript": "5.4.5", "typescript-transform-paths": "^3.4.6" }, "dependencies": { "@fastify/multipart": "^8.1.0", - "@nestia/core": "^3.3.0-dev.20240624", + "@nestia/core": "^3.3.0", "@nestia/e2e": "^0.3.6", - "@nestia/fetcher": "^3.3.0-dev.20240624", + "@nestia/fetcher": "^3.3.0", "@nestjs/common": "^10.3.5", "@nestjs/core": "^10.3.5", "@nestjs/platform-express": "^10.3.5", "@nestjs/platform-fastify": "^10.3.5", - "tgrid": "^1.0.1", + "tgrid": "^1.0.2", "tstl": "^3.0.0", - "typia": "^6.2.1", + "typia": "^6.3.1", "uuid": "^9.0.1" } } \ No newline at end of file diff --git a/website/package.json b/website/package.json index e87aa669c..0be396cc2 100644 --- a/website/package.json +++ b/website/package.json @@ -34,7 +34,7 @@ "react": "18.2.0", "react-dom": "18.2.0", "react-mui-fileuploader": "^0.5.2", - "typia": "^6.2.1" + "typia": "^6.3.1" }, "devDependencies": { "@trivago/prettier-plugin-sort-imports": "^4.3.0", @@ -44,6 +44,6 @@ "next-sitemap": "^4.2.3", "rimraf": "^5.0.0", "typedoc": "^0.25.13", - "typescript": "<5.5.0" + "typescript": "^5.5.2" } }