Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt typia 7.1 update and publish it #1141

Merged
merged 7 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
name: build
on:
push:
paths:
- '.github/workflows/build.yml'
- 'packages/{core,fetcher,sdk}/src/**'
- 'packages/{core,fetcher,sdk}/package.json'
- 'test/**'
- 'test/package.json'
pull_request:
paths:
- '.github/workflows/build.yml'
- 'packages/{core,fetcher,sdk}/src/**'
- 'packages/{core,fetcher,sdk}/package.json'
- 'test/**'
- 'test/package.json'

jobs:
Ubuntu:
runs-on: ubuntu-latest
Expand All @@ -30,6 +22,9 @@ jobs:
- name: Install dependencies
run: pnpm install

- name: Build
run: npm run build

- name: test
working-directory: ./test
run: npm start
run: pnpm install && npm start -- --skipBuild
14 changes: 4 additions & 10 deletions .github/workflows/migrate.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
name: migrate
on:
push:
paths:
- '.github/workflows/migrate.yaml'
- 'packages/migrate/assets/input/*.json'
- 'packages/migrate/src/**'
- 'packages/migrate/test/**'
- 'packages/migrate/package.json'
on:
pull_request:
paths:
- '.github/workflows/migrate.yaml'
- 'packages/migrate/assets/input/*.json'
- 'packages/migrate/src/**'
- 'packages/migrate/test/**'
- 'packages/migrate/package.json'

jobs:
Ubuntu:
runs-on: ubuntu-latest
Expand All @@ -27,11 +19,13 @@ jobs:
with:
version: 8

- name: Install dependencies
- name: Setup dependencies
run: pnpm install && npm run build

- name: Build
working-directory: ./packages/migrate
run: npm run build

- name: test
working-directory: ./packages/migrate
run: npm run test
2 changes: 1 addition & 1 deletion benchmark/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"reflect-metadata": "^0.2.2",
"tgrid": "^1.1.0",
"tstl": "^3.0.0",
"typia": "^7.0.2"
"typia": "^7.1.0"
},
"devDependencies": {
"@types/autocannon": "^7.9.0",
Expand Down
2 changes: 0 additions & 2 deletions deploy/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ const execute = (name) => {
console.log("=========================================");

process.chdir(`${__dirname}/../packages/${name}`);

cp.execSync("pnpm install", { stdio: "inherit" });
cp.execSync("npm run build", { stdio: "inherit" });
};

Expand Down
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
{
"private": true,
"name": "@nestia/station",
"version": "4.0.5",
"version": "4.1.0",
"description": "Nestia station",
"scripts": {
"build": "node deploy build",
"package:latest": "node deploy publish --tag latest",
"package:next": "node deploy publish --tag next",
"prettier": "prettier packages/*/src/**/*.ts --write && prettier benchmark/**/*.ts && prettier test/**/*.ts --write",
"test": "cd test && npm run start"
"prettier": "prettier packages/*/src/**/*.ts --write && prettier benchmark/**/*.ts && prettier test/**/*.ts --write"
},
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion packages/benchmark/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"ts-patch": "^3.3.0",
"typescript": "~5.7.2",
"typescript-transform-paths": "^3.4.7",
"typia": "^7.0.2",
"typia": "^7.1.0",
"uuid": "^10.0.0"
},
"dependencies": {
Expand Down
8 changes: 4 additions & 4 deletions packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nestia/core",
"version": "4.0.5",
"version": "4.1.0-dev.20241210",
"description": "Super-fast validation decorators of NestJS",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
Expand Down Expand Up @@ -48,16 +48,16 @@
"reflect-metadata": ">=0.1.12",
"rxjs": ">=6.0.3",
"tgrid": "^1.1.0",
"typia": "^7.0.2",
"typia": "^7.1.0",
"ws": "^7.5.3"
},
"peerDependencies": {
"@nestia/fetcher": ">=4.0.5",
"@nestia/fetcher": ">=4.1.0-dev.20241210",
"@nestjs/common": ">=7.0.1",
"@nestjs/core": ">=7.0.1",
"reflect-metadata": ">=0.1.12",
"rxjs": ">=6.0.3",
"typia": ">=7.0.2 <8.0.0"
"typia": ">=7.1.0 <8.0.0"
},
"devDependencies": {
"@nestjs/common": "^10.4.13",
Expand Down
2 changes: 1 addition & 1 deletion packages/e2e/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"ts-patch": "^3.3.0",
"typescript": "~5.7.2",
"typescript-transform-paths": "^3.4.7",
"typia": "^7.0.2"
"typia": "^7.1.0"
},
"files": [
"lib",
Expand Down
4 changes: 2 additions & 2 deletions packages/editor/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nestia/editor",
"version": "0.9.4",
"version": "0.9.5",
"typings": "lib/index.d.ts",
"main": "lib/index.js",
"module": "lib/index.mjs",
Expand Down Expand Up @@ -40,7 +40,7 @@
"js-yaml": "^4.1.0",
"prettier": "3.3.3",
"react-mui-fileuploader": "^0.5.2",
"typia": "^7.0.2"
"typia": "^7.1.0"
},
"devDependencies": {
"@eslint/js": "^9.13.0",
Expand Down
6 changes: 3 additions & 3 deletions packages/fetcher/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nestia/fetcher",
"version": "4.0.5",
"version": "4.1.0-dev.20241210",
"description": "Fetcher library of Nestia SDK",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
Expand All @@ -27,7 +27,7 @@
"homepage": "https://nestia.io",
"dependencies": {
"@samchon/openapi": "^2.0.1",
"typia": "^7.0.2"
"typia": "^7.1.0"
},
"peerDependencies": {
"typescript": ">= 4.8.0"
Expand All @@ -38,7 +38,7 @@
"@typescript-eslint/parser": "^5.46.1",
"rimraf": "^3.0.2",
"typescript": "~5.7.2",
"typia": "^7.0.2"
"typia": "^7.1.0"
},
"files": [
"README.md",
Expand Down
4 changes: 2 additions & 2 deletions packages/migrate/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nestia/migrate",
"version": "0.21.4",
"version": "0.21.5",
"description": "Migration program from swagger to NestJS",
"typings": "lib/index.d.ts",
"main": "lib/index.js",
Expand Down Expand Up @@ -78,7 +78,7 @@
"prettier": "^3.2.5",
"tstl": "^3.0.0",
"typescript": "~5.7.2",
"typia": "^7.0.2"
"typia": "^7.1.0"
},
"files": [
"lib",
Expand Down
10 changes: 5 additions & 5 deletions packages/sdk/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nestia/sdk",
"version": "4.0.5",
"version": "4.1.0-dev.20241210",
"description": "Nestia SDK and Swagger generator",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
Expand Down Expand Up @@ -44,16 +44,16 @@
"tsconfck": "^2.1.2",
"tsconfig-paths": "^4.1.1",
"tstl": "^3.0.0",
"typia": "^7.0.2"
"typia": "^7.1.0"
},
"peerDependencies": {
"@nestia/core": ">=4.0.5",
"@nestia/fetcher": ">=4.0.5",
"@nestia/core": ">=4.1.0-dev.20241210",
"@nestia/fetcher": ">=4.1.0-dev.20241210",
"@nestjs/common": ">=7.0.1",
"@nestjs/core": ">=7.0.1",
"reflect-metadata": ">=0.1.12",
"ts-node": ">=10.6.0",
"typia": ">=7.0.2 <8.0.0"
"typia": ">=7.1.0 <8.0.0"
},
"devDependencies": {
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
Expand Down
9 changes: 7 additions & 2 deletions test/executable/start.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,13 @@ const main = async () => {
};

await measure("\nTotal Elapsed Time")(async () => {
if (!process.argv.find((str) => str === "--skipBuild")) await build();
cp.execSync("pnpm install", { stdio: "inherit" });
if (!process.argv.find((str) => str === "--skipBuild")) {
cp.execSync("pnpm install", {
stdio: "inherit",
cwd: `${__dirname}/../..`,
});
await build();
}

console.log("\nTest Features");
const filter = (() => {
Expand Down
2 changes: 1 addition & 1 deletion test/features/body-generic-default/swagger.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"openapi":"3.1.0","servers":[{"url":"https://github.com/samchon/nestia","description":"insert your server url"}],"info":{"version":"4.0.1-dev.20241203","title":"@samchon/nestia-test","description":"Test program of Nestia","license":{"name":"MIT"}},"paths":{"/google/{accountCode}/drives/images/upload/single":{"post":{"summary":"단일 이미지 파일 업로드","description":"단일 이미지 파일 업로드.\n\n단 하나의 이미지 파일을 구글 드라이브에 개별 업로드한다.","tags":["Google"],"parameters":[{"name":"accountCode","in":"path","schema":{"type":"string"},"required":true,"description":" 구글 계정명"}],"requestBody":{"description":"단일 이미지 파일 업로드 정보","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IGoogleDriveImageSingleUpload"}}},"required":true},"responses":{"201":{"description":"업로드 완료된 구글 드라이브 파일 정보","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IGoogleDriveFile"}}}}}}},"/google/{accountCode}/drives/images/upload/activate":{"post":{"tags":[],"parameters":[{"name":"accountCode","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IGoogleTokenActivategoogle-authnever"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{}}}}}},"/body":{"post":{"summary":"Store an article","description":"Store an article.","tags":[],"parameters":[],"requestBody":{"description":"Content to store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle.IStorestring"}}},"required":true},"responses":{"201":{"description":"Newly archived article","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticlestring"}}}}}}},"/body/{id}":{"put":{"tags":[],"parameters":[{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartialIBbsArticle.IStorestring"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{}}}}}}},"components":{"schemas":{"IGoogleDriveFile":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"location":{"type":"string"},"name":{"type":"string"},"extension":{"oneOf":[{"type":"null"},{"type":"string"}]},"url":{"type":"string","format":"uri"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","location","name","extension","url","created_at","updated_at"]},"IGoogleDriveImageSingleUpload":{"type":"object","properties":{"token":{"type":"string","x-wrtn-secret-key":"google-auth-key","title":"구글 사용자 인증 키","description":"구글 사용자 인증 키.\n\n구글 드라이브에 이미지 파일을 업로드하기 위하여, 구글 사용자 인증이 선행되어야 한다.\n본 필드값에는, 바로 그 사전 인증하여 발급받은 사용자 인증 키를 할당해주어야 함.\n그리고 그 인증 키는, read 및 write scope 에 대하여 대응 가능하여야 한다."},"url":{"oneOf":[{"type":"string","format":"uri","contentMediaType":"image/png"},{"type":"string","format":"uri","contentMediaType":"image/jpg"}],"title":"이미지 파일 경로","description":"이미지 파일 경로.\n\nWorkflow Editor 상 Inspector 내지 Chat Agent 의 File Uploader 의하여 구성됨."},"location":{"type":"string","title":"파일 경로","description":"이미지 파일이 위치할 경로, 파일명 및 확장자는 제외."},"name":{"type":"string","x-wrtn-placeholder":"파일명을 입력해주세요.","title":"파일명","description":"파일명.\n\n확장자가 제외된, 순수 파일명.\n\n{@link url} 의 실제 파일명과 다르게 업로드 가능."},"extension":{"oneOf":[{"const":"jpg"},{"const":"png"}],"title":"이미지 확장자","description":"이미지 확장자."}},"required":["token","url","location","name","extension"],"description":"구글 드라이브에의 이미지 업로드 DTO.\n\n구글 드라이브에 단일 이미지를 업로드할 때 사용하는 DTO. 만일 복수의 이미지를\n동시에 업로드하고 싶다면, `IGoogleDriveImageMultipleUpload` DTO 및 관련\nAPI 함수를 사용하도록 할 것."},"IGoogleTokenActivategoogle-authnever":{"type":"object","properties":{"token":{"type":"string","x-wrtn-secret-key":"google-auth"}},"required":["token"]},"IBbsArticlestring":{"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"},"format":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["id","created_at","title","body","format","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.IStorestring":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"format":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["title","body","format","files"]},"PartialIBbsArticle.IStorestring":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"format":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":[],"description":"Make all properties in T optional"}},"securitySchemes":{"bearer":{"type":"apiKey"}}},"tags":[{"name":"Google"}],"x-samchon-emended":true}
{"openapi":"3.1.0","servers":[{"url":"https://github.com/samchon/nestia","description":"insert your server url"}],"info":{"version":"4.0.4","title":"@samchon/nestia-test","description":"Test program of Nestia","license":{"name":"MIT"}},"paths":{"/google/{accountCode}/drives/images/upload/single":{"post":{"summary":"단일 이미지 파일 업로드","description":"단일 이미지 파일 업로드.\n\n단 하나의 이미지 파일을 구글 드라이브에 개별 업로드한다.","tags":["Google"],"parameters":[{"name":"accountCode","in":"path","schema":{"type":"string"},"required":true,"description":" 구글 계정명"}],"requestBody":{"description":"단일 이미지 파일 업로드 정보","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IGoogleDriveImageSingleUpload"}}},"required":true},"responses":{"201":{"description":"업로드 완료된 구글 드라이브 파일 정보","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IGoogleDriveFile"}}}}}}},"/google/{accountCode}/drives/images/upload/activate":{"post":{"tags":[],"parameters":[{"name":"accountCode","in":"path","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IGoogleTokenActivategoogle-authnever"}}},"required":true},"responses":{"201":{"description":"","content":{"application/json":{}}}}}},"/body":{"post":{"summary":"Store an article","description":"Store an article.","tags":[],"parameters":[],"requestBody":{"description":"Content to store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticle.IStorestring"}}},"required":true},"responses":{"201":{"description":"Newly archived article","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IBbsArticlestring"}}}}}}},"/body/{id}":{"put":{"tags":[],"parameters":[{"name":"id","in":"path","schema":{"type":"string","format":"uuid"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartialIBbsArticle.IStorestring"}}},"required":true},"responses":{"200":{"description":"","content":{"application/json":{}}}}}}},"components":{"schemas":{"IGoogleDriveFile":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"location":{"type":"string"},"name":{"type":"string"},"extension":{"oneOf":[{"type":"null"},{"type":"string"}]},"url":{"type":"string","format":"uri"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","location","name","extension","url","created_at","updated_at"]},"IGoogleDriveImageSingleUpload":{"type":"object","properties":{"token":{"type":"string","x-wrtn-secret-key":"google-auth-key","title":"구글 사용자 인증 키","description":"구글 사용자 인증 키.\n\n구글 드라이브에 이미지 파일을 업로드하기 위하여, 구글 사용자 인증이 선행되어야 한다.\n본 필드값에는, 바로 그 사전 인증하여 발급받은 사용자 인증 키를 할당해주어야 함.\n그리고 그 인증 키는, read 및 write scope 에 대하여 대응 가능하여야 한다."},"url":{"oneOf":[{"type":"string","format":"uri","contentMediaType":"image/png"},{"type":"string","format":"uri","contentMediaType":"image/jpg"}],"title":"이미지 파일 경로","description":"이미지 파일 경로.\n\nWorkflow Editor 상 Inspector 내지 Chat Agent 의 File Uploader 의하여 구성됨."},"location":{"type":"string","title":"파일 경로","description":"이미지 파일이 위치할 경로, 파일명 및 확장자는 제외."},"name":{"type":"string","x-wrtn-placeholder":"파일명을 입력해주세요.","title":"파일명","description":"파일명.\n\n확장자가 제외된, 순수 파일명.\n\n{@link url} 의 실제 파일명과 다르게 업로드 가능."},"extension":{"oneOf":[{"const":"jpg"},{"const":"png"}],"title":"이미지 확장자","description":"이미지 확장자."}},"required":["token","url","location","name","extension"],"description":"구글 드라이브에의 이미지 업로드 DTO.\n\n구글 드라이브에 단일 이미지를 업로드할 때 사용하는 DTO. 만일 복수의 이미지를\n동시에 업로드하고 싶다면, `IGoogleDriveImageMultipleUpload` DTO 및 관련\nAPI 함수를 사용하도록 할 것."},"IGoogleTokenActivategoogle-authnever":{"type":"object","properties":{"token":{"type":"string","x-wrtn-secret-key":"google-auth"}},"required":["token"]},"IBbsArticlestring":{"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"},"format":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["id","created_at","title","body","format","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.IStorestring":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"format":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":["title","body","format","files"]},"PartialIBbsArticle.IStorestring":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string"},"format":{"type":"string"},"files":{"type":"array","items":{"$ref":"#/components/schemas/IAttachmentFile"}}},"required":[],"description":"Make all properties in T optional"}},"securitySchemes":{"bearer":{"type":"apiKey"}}},"tags":[{"name":"Google"}],"x-samchon-emended":true}
Loading
Loading