tylersong 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- name: Continuous Integration
1
+ name: CI
2
2
 
3
3
  on:
4
4
  push:
@@ -7,170 +7,39 @@ on:
7
7
  branches: [main, develop]
8
8
 
9
9
  jobs:
10
- test:
11
- name: Test
10
+ # 간소화된 CI - 핵심 검증만
11
+ ci:
12
+ name: Lint & Test
12
13
  runs-on: ubuntu-latest
13
-
14
- strategy:
15
- matrix:
16
- runtime: [node, bun]
17
-
14
+
18
15
  steps:
19
- - name: Checkout code
16
+ - name: Checkout
20
17
  uses: actions/checkout@v4
21
18
 
22
- - name: Setup runtime environment
23
- uses: ./.github/actions/setup-runtime
19
+ - name: Setup Node.js
20
+ uses: actions/setup-node@v4
24
21
  with:
25
- runtime: ${{ matrix.runtime }}
22
+ node-version: "20.x"
23
+ cache: "npm"
26
24
 
27
- - name: Run tests (Node.js)
28
- if: matrix.runtime == 'node'
29
- run: npm test
25
+ - name: Install
26
+ run: npm ci
30
27
 
31
- - name: Run tests (Bun)
32
- if: matrix.runtime == 'bun'
33
- run: bun test || echo "No bun tests specified"
28
+ - name: Type check
29
+ run: npx tsc --noEmit
30
+
31
+ - name: Build
32
+ run: npm run build
34
33
 
35
- - name: Test CLI functionality (Node.js)
36
- if: matrix.runtime == 'node'
34
+ - name: Test CLI
37
35
  run: |
38
- npm run build
39
36
  node dist/index.js --version
40
37
  node dist/index.js --help
41
38
 
42
- - name: Test CLI functionality (Bun)
43
- if: matrix.runtime == 'bun'
44
- run: |
45
- bun run build:bun
46
- bun run dist/index.js --version
47
- bun run dist/index.js --help
48
-
49
- build:
50
- name: Build & Upload Artifacts
51
- runs-on: ubuntu-latest
52
- needs: test
53
-
54
- steps:
55
- - name: Checkout code
56
- uses: actions/checkout@v4
57
-
58
- - name: Setup Node.js environment
59
- uses: ./.github/actions/setup-runtime
60
- with:
61
- runtime: node
62
-
63
- - name: Build TypeScript
64
- run: npm run build
65
-
66
- - name: Upload build artifacts
67
- uses: actions/upload-artifact@v4
68
- with:
69
- name: dist-files-${{ github.sha }}
70
- path: dist/
71
- retention-days: 30
72
-
73
- - name: Upload type definitions
74
- uses: actions/upload-artifact@v4
75
- with:
76
- name: types-${{ github.sha }}
77
- path: |
78
- dist/*.d.ts
79
- dist/*.d.ts.map
80
- retention-days: 30
81
-
82
- lint:
83
- name: Code Quality
84
- runs-on: ubuntu-latest
85
-
86
- steps:
87
- - name: Checkout code
88
- uses: actions/checkout@v4
89
-
90
- - name: Setup Node.js environment
91
- uses: ./.github/actions/setup-runtime
92
- with:
93
- runtime: node
94
-
95
- - name: Check TypeScript compilation
96
- run: npx tsc --noEmit
97
-
98
- - name: Check code formatting (if prettier is added)
99
- run: echo "Add prettier check here if needed"
100
-
101
39
  - name: Security audit
102
- run: npm audit --audit-level=moderate
40
+ run: npm audit --audit-level=moderate || true
103
41
 
104
- notify:
105
- name: Notify Results
106
- runs-on: ubuntu-latest
107
- needs: [test, build, lint]
108
- if: always()
109
-
110
- steps:
111
- - name: Checkout code
112
- uses: actions/checkout@v4
113
-
114
- - name: Determine overall status
115
- id: status
42
+ - name: Results
116
43
  run: |
117
- if [ "${{ needs.test.result }}" == "success" ] && [ "${{ needs.build.result }}" == "success" ] && [ "${{ needs.lint.result }}" == "success" ]; then
118
- echo "status=success" >> $GITHUB_OUTPUT
119
- echo "title=CI 성공 🎉" >> $GITHUB_OUTPUT
120
- echo "description=모든 테스트, 빌드, 린팅이 성공적으로 완료되었습니다." >> $GITHUB_OUTPUT
121
- else
122
- echo "status=failure" >> $GITHUB_OUTPUT
123
- echo "title=CI 실패 💥" >> $GITHUB_OUTPUT
124
- echo "description=CI 파이프라인에서 오류가 발생했습니다. 로그를 확인해주세요." >> $GITHUB_OUTPUT
125
- fi
126
-
127
- - name: Create fields JSON
128
- id: fields
129
- run: |
130
- FIELDS=$(cat << EOF
131
- [
132
- {
133
- "name": "브랜치",
134
- "value": "${{ github.ref_name }}",
135
- "inline": true
136
- },
137
- {
138
- "name": "커밋",
139
- "value": "[\`${GITHUB_SHA:0:7}\`](https://github.com/${{ github.repository }}/commit/${{ github.sha }})",
140
- "inline": true
141
- },
142
- {
143
- "name": "테스트",
144
- "value": "${{ needs.test.result == 'success' && '✅ 성공' || '❌ 실패' }}",
145
- "inline": true
146
- },
147
- {
148
- "name": "빌드",
149
- "value": "${{ needs.build.result == 'success' && '✅ 성공' || '❌ 실패' }}",
150
- "inline": true
151
- },
152
- {
153
- "name": "린팅",
154
- "value": "${{ needs.lint.result == 'success' && '✅ 성공' || '❌ 실패' }}",
155
- "inline": true
156
- },
157
- {
158
- "name": "작업자",
159
- "value": "${{ github.actor }}",
160
- "inline": true
161
- }
162
- ]
163
- EOF
164
- )
165
- echo "fields<<EOF" >> $GITHUB_OUTPUT
166
- echo "$FIELDS" >> $GITHUB_OUTPUT
167
- echo "EOF" >> $GITHUB_OUTPUT
168
-
169
- - name: Send Discord notification
170
- uses: ./.github/actions/discord-notify
171
- with:
172
- webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
173
- status: ${{ steps.status.outputs.status }}
174
- title: ${{ steps.status.outputs.title }}
175
- description: ${{ steps.status.outputs.description }}
176
- fields: ${{ steps.fields.outputs.fields }}
44
+ echo " All CI checks passed!"
45
+ echo "📦 Ready for deployment"
@@ -0,0 +1,170 @@
1
+ name: Deploy to NPM
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ["v*"]
7
+ pull_request:
8
+ branches: [main]
9
+
10
+ permissions:
11
+ contents: write
12
+ packages: write
13
+
14
+ jobs:
15
+ # 통합된 CI + 배포 작업
16
+ deploy:
17
+ name: CI & Deploy
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ # === 기본 Setup ===
22
+ - name: Checkout
23
+ uses: actions/checkout@v4
24
+ with:
25
+ token: ${{ secrets.GITHUB_TOKEN }}
26
+ fetch-depth: 0
27
+
28
+ - name: Setup Node.js
29
+ uses: actions/setup-node@v4
30
+ with:
31
+ node-version: "20.x"
32
+ registry-url: "https://registry.npmjs.org/"
33
+ cache: "npm"
34
+
35
+ - name: Install dependencies
36
+ run: npm ci
37
+
38
+ # === CI 단계 ===
39
+ - name: Type check
40
+ run: npx tsc --noEmit
41
+
42
+ - name: Build
43
+ run: npm run build
44
+
45
+ - name: Test CLI
46
+ run: |
47
+ node dist/index.js --version
48
+ node dist/index.js --help
49
+
50
+ - name: Security audit
51
+ run: npm audit --audit-level=moderate || true
52
+
53
+ # === 버전 관리 (main 브랜치만) ===
54
+ - name: Auto version update
55
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
56
+ run: |
57
+ # Git 설정
58
+ git config user.name "github-actions[bot]"
59
+ git config user.email "github-actions[bot]@users.noreply.github.com"
60
+
61
+ CURRENT_VERSION=$(node -p "require('./package.json').version")
62
+ PUBLISHED_VERSION=$(npm view tylersong version 2>/dev/null || echo "0.0.0")
63
+
64
+ echo "📦 Current: $CURRENT_VERSION | Published: $PUBLISHED_VERSION"
65
+
66
+ # 같은 버전이면 자동 업데이트
67
+ if [ "$CURRENT_VERSION" == "$PUBLISHED_VERSION" ]; then
68
+ echo "🔄 Auto-updating version..."
69
+
70
+ # 커밋 메시지로 버전 타입 결정
71
+ COMMIT_MSG=$(git log -1 --pretty=%B)
72
+ if echo "$COMMIT_MSG" | grep -qE "BREAKING CHANGE|feat!|fix!"; then
73
+ VERSION_TYPE="major"
74
+ elif echo "$COMMIT_MSG" | grep -qE "^feat(\(.+\))?:"; then
75
+ VERSION_TYPE="minor"
76
+ else
77
+ VERSION_TYPE="patch"
78
+ fi
79
+
80
+ echo "📈 Version type: $VERSION_TYPE"
81
+
82
+ # 버전 업데이트
83
+ npm version $VERSION_TYPE --no-git-tag-version
84
+ NEW_VERSION=$(node -p "require('./package.json').version")
85
+
86
+ # 소스코드 버전 업데이트
87
+ if [ -f "src/index.ts" ]; then
88
+ sed -i.bak "s/program\.version(\".*\")/program.version(\"$NEW_VERSION\")/g" src/index.ts
89
+ rm -f src/index.ts.bak
90
+ fi
91
+
92
+ echo "✅ Updated to v$NEW_VERSION"
93
+ echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
94
+
95
+ # 재빌드 (버전 반영)
96
+ npm run build
97
+
98
+ # 커밋 & 푸시
99
+ git add package.json package-lock.json src/index.ts dist/
100
+ git commit -m "chore: bump version to v$NEW_VERSION [skip ci]"
101
+ git push origin main
102
+
103
+ echo "SHOULD_PUBLISH=true" >> $GITHUB_ENV
104
+ else
105
+ echo "✅ Version already updated"
106
+ echo "NEW_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV
107
+ echo "SHOULD_PUBLISH=true" >> $GITHUB_ENV
108
+ fi
109
+
110
+ # === 태그 기반 배포 ===
111
+ - name: Tag deployment check
112
+ if: startsWith(github.ref, 'refs/tags/v')
113
+ run: |
114
+ VERSION=$(node -p "require('./package.json').version")
115
+ echo "🏷️ Tag deployment for v$VERSION"
116
+ echo "NEW_VERSION=$VERSION" >> $GITHUB_ENV
117
+ echo "SHOULD_PUBLISH=true" >> $GITHUB_ENV
118
+
119
+ # === NPM 배포 ===
120
+ - name: Publish to NPM
121
+ if: |
122
+ env.SHOULD_PUBLISH == 'true' &&
123
+ github.event_name != 'pull_request'
124
+ run: npm publish
125
+ env:
126
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
127
+
128
+ # === GitHub Release (태그만) ===
129
+ - name: Create GitHub Release
130
+ if: startsWith(github.ref, 'refs/tags/v')
131
+ uses: actions/github-script@v7
132
+ with:
133
+ github-token: ${{ secrets.GITHUB_TOKEN }}
134
+ script: |
135
+ const version = process.env.NEW_VERSION;
136
+ const tagName = context.ref.replace('refs/tags/', '');
137
+
138
+ await github.rest.repos.createRelease({
139
+ owner: context.repo.owner,
140
+ repo: context.repo.repo,
141
+ tag_name: tagName,
142
+ name: `Release v${version}`,
143
+ body: `🚀 **tylersong CLI v${version}**
144
+
145
+ ### 설치
146
+ \`\`\`bash
147
+ npx tylersong
148
+ \`\`\`
149
+
150
+ ### 변경사항
151
+ 전체 변경사항은 [커밋 히스토리](https://github.com/${context.repo.owner}/${context.repo.repo}/commits/v${version})를 확인해주세요.`,
152
+ draft: false,
153
+ prerelease: false
154
+ });
155
+
156
+ # === 성공 알림 ===
157
+ - name: Success notification
158
+ if: success() && env.SHOULD_PUBLISH == 'true'
159
+ run: |
160
+ echo "🎉 Successfully deployed tylersong v${{ env.NEW_VERSION }}"
161
+ echo "📦 NPM: https://www.npmjs.com/package/tylersong"
162
+ echo "🚀 Install: npx tylersong"
163
+
164
+ # === 실패 알림 ===
165
+ - name: Failure notification
166
+ if: failure()
167
+ run: |
168
+ echo "❌ Deployment failed!"
169
+ echo "📋 Check the logs above for details"
170
+ exit 1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 📝 tylersong
2
2
 
3
- > 안녕하세요! 프론트엔드 개발자 **송민성**의 자기소개 CLI 도구입니다 ✨
3
+ > 안녕하세요! 개발자 **송민성**의 자기소개 CLI 도구입니다 ✨
4
4
 
5
5
  [![NPM Version](https://img.shields.io/npm/v/tylersong)](https://www.npmjs.com/package/tylersong)
6
6
  [![NPM Downloads](https://img.shields.io/npm/dm/tylersong)](https://www.npmjs.com/package/tylersong)
@@ -49,7 +49,7 @@ tylersong -g # GitHub 프로필 바로 열기 (단축)
49
49
  ╰───────────────────────────────────────────╯
50
50
 
51
51
  👋 안녕하세요!
52
- 💻 프론트엔드 개발자 송민성입니다.
52
+ 💻 개발자 송민성입니다.
53
53
 
54
54
  📌 Github: https://github.com/alstjd0051
55
55
  ✉️ E-mail: wsc7202@gmail.com
package/bun.lock CHANGED
@@ -9,9 +9,11 @@
9
9
  "inquirer": "^12.4.2",
10
10
  },
11
11
  "devDependencies": {
12
+ "@types/chalk": "^0.4.31",
12
13
  "@types/inquirer": "^9.0.8",
13
14
  "@types/node": "^24.1.0",
14
15
  "ts-node": "^10.9.2",
16
+ "tsx": "^4.20.3",
15
17
  "typescript": "^5.9.2",
16
18
  },
17
19
  },
@@ -19,6 +21,58 @@
19
21
  "packages": {
20
22
  "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="],
21
23
 
24
+ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.8", "", { "os": "aix", "cpu": "ppc64" }, "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA=="],
25
+
26
+ "@esbuild/android-arm": ["@esbuild/android-arm@0.25.8", "", { "os": "android", "cpu": "arm" }, "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw=="],
27
+
28
+ "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.8", "", { "os": "android", "cpu": "arm64" }, "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w=="],
29
+
30
+ "@esbuild/android-x64": ["@esbuild/android-x64@0.25.8", "", { "os": "android", "cpu": "x64" }, "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA=="],
31
+
32
+ "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw=="],
33
+
34
+ "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg=="],
35
+
36
+ "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.8", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA=="],
37
+
38
+ "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.8", "", { "os": "freebsd", "cpu": "x64" }, "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw=="],
39
+
40
+ "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.8", "", { "os": "linux", "cpu": "arm" }, "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg=="],
41
+
42
+ "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w=="],
43
+
44
+ "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.8", "", { "os": "linux", "cpu": "ia32" }, "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg=="],
45
+
46
+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ=="],
47
+
48
+ "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw=="],
49
+
50
+ "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.8", "", { "os": "linux", "cpu": "ppc64" }, "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ=="],
51
+
52
+ "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg=="],
53
+
54
+ "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.8", "", { "os": "linux", "cpu": "s390x" }, "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg=="],
55
+
56
+ "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.8", "", { "os": "linux", "cpu": "x64" }, "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ=="],
57
+
58
+ "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.8", "", { "os": "none", "cpu": "arm64" }, "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw=="],
59
+
60
+ "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.8", "", { "os": "none", "cpu": "x64" }, "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg=="],
61
+
62
+ "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.8", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ=="],
63
+
64
+ "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.8", "", { "os": "openbsd", "cpu": "x64" }, "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ=="],
65
+
66
+ "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.8", "", { "os": "none", "cpu": "arm64" }, "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg=="],
67
+
68
+ "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.8", "", { "os": "sunos", "cpu": "x64" }, "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w=="],
69
+
70
+ "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ=="],
71
+
72
+ "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.8", "", { "os": "win32", "cpu": "ia32" }, "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg=="],
73
+
74
+ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.8", "", { "os": "win32", "cpu": "x64" }, "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw=="],
75
+
22
76
  "@inquirer/checkbox": ["@inquirer/checkbox@4.1.2", "", { "dependencies": { "@inquirer/core": "^10.1.7", "@inquirer/figures": "^1.0.10", "@inquirer/type": "^3.0.4", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ=="],
23
77
 
24
78
  "@inquirer/confirm": ["@inquirer/confirm@5.1.6", "", { "dependencies": { "@inquirer/core": "^10.1.7", "@inquirer/type": "^3.0.4" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw=="],
@@ -61,6 +115,8 @@
61
115
 
62
116
  "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="],
63
117
 
118
+ "@types/chalk": ["@types/chalk@0.4.31", "", {}, "sha512-nF0fisEPYMIyfrFgabFimsz9Lnuu9MwkNrrlATm2E4E46afKDyeelT+8bXfw1VSc7sLBxMxRgT7PxTC2JcqN4Q=="],
119
+
64
120
  "@types/inquirer": ["@types/inquirer@9.0.8", "", { "dependencies": { "@types/through": "*", "rxjs": "^7.2.0" } }, "sha512-CgPD5kFGWsb8HJ5K7rfWlifao87m4ph8uioU7OTncJevmE/VLIqAAjfQtko578JZg7/f69K4FgqYym3gNr7DeA=="],
65
121
 
66
122
  "@types/node": ["@types/node@24.1.0", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w=="],
@@ -97,8 +153,14 @@
97
153
 
98
154
  "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
99
155
 
156
+ "esbuild": ["esbuild@0.25.8", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.8", "@esbuild/android-arm": "0.25.8", "@esbuild/android-arm64": "0.25.8", "@esbuild/android-x64": "0.25.8", "@esbuild/darwin-arm64": "0.25.8", "@esbuild/darwin-x64": "0.25.8", "@esbuild/freebsd-arm64": "0.25.8", "@esbuild/freebsd-x64": "0.25.8", "@esbuild/linux-arm": "0.25.8", "@esbuild/linux-arm64": "0.25.8", "@esbuild/linux-ia32": "0.25.8", "@esbuild/linux-loong64": "0.25.8", "@esbuild/linux-mips64el": "0.25.8", "@esbuild/linux-ppc64": "0.25.8", "@esbuild/linux-riscv64": "0.25.8", "@esbuild/linux-s390x": "0.25.8", "@esbuild/linux-x64": "0.25.8", "@esbuild/netbsd-arm64": "0.25.8", "@esbuild/netbsd-x64": "0.25.8", "@esbuild/openbsd-arm64": "0.25.8", "@esbuild/openbsd-x64": "0.25.8", "@esbuild/openharmony-arm64": "0.25.8", "@esbuild/sunos-x64": "0.25.8", "@esbuild/win32-arm64": "0.25.8", "@esbuild/win32-ia32": "0.25.8", "@esbuild/win32-x64": "0.25.8" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q=="],
157
+
100
158
  "external-editor": ["external-editor@3.1.0", "", { "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew=="],
101
159
 
160
+ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
161
+
162
+ "get-tsconfig": ["get-tsconfig@4.10.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ=="],
163
+
102
164
  "iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="],
103
165
 
104
166
  "inquirer": ["inquirer@12.4.2", "", { "dependencies": { "@inquirer/core": "^10.1.7", "@inquirer/prompts": "^7.3.2", "@inquirer/type": "^3.0.4", "ansi-escapes": "^4.3.2", "mute-stream": "^2.0.0", "run-async": "^3.0.0", "rxjs": "^7.8.1" }, "peerDependencies": { "@types/node": ">=18" } }, "sha512-reyjHcwyK2LObXgTJH4T1Dpfhwu88LNPTZmg/KenmTsy3T8lN/kZT8Oo7UwwkB9q8+ss2qjjN7GV8oFAfyz9Xg=="],
@@ -111,6 +173,8 @@
111
173
 
112
174
  "os-tmpdir": ["os-tmpdir@1.0.2", "", {}, "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="],
113
175
 
176
+ "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
177
+
114
178
  "run-async": ["run-async@3.0.0", "", {}, "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q=="],
115
179
 
116
180
  "rxjs": ["rxjs@7.8.1", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg=="],
@@ -129,6 +193,8 @@
129
193
 
130
194
  "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
131
195
 
196
+ "tsx": ["tsx@4.20.3", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ=="],
197
+
132
198
  "type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="],
133
199
 
134
200
  "typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="],
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ const openUrl = (url) => {
11
11
  : "xdg-open";
12
12
  exec(`${command} ${url}`);
13
13
  };
14
- program.version("1.0.7");
14
+ program.version("1.0.9");
15
15
  program.option("-g, --github", "GitHub 프로필 열기");
16
16
  program.parse(process.argv);
17
17
  const options = program.opts();
@@ -49,12 +49,12 @@ const main = async () => {
49
49
  if (answer.showInfo) {
50
50
  console.log(chalk.bold.cyan(`
51
51
  ╭───────────────────────────────────────────╮
52
- │ 🚀 Frontend Developer Profile 🚀 │
52
+ │ 🚀 Developer Profile 🚀 │
53
53
  ╰───────────────────────────────────────────╯
54
54
 
55
55
  `) +
56
56
  chalk.green(`👋 안녕하세요!
57
- 💻 프론트엔드 개발자 ${chalk.bold.yellow("송민성")}입니다.
57
+ 💻 개발자 ${chalk.bold.yellow("송민성")}입니다.
58
58
 
59
59
  `) +
60
60
  chalk.hex("#fef6e1")(`📌 Github: ${chalk.underline.whiteBright(`https://github.com/alstjd0051`)}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUrC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAQ,EAAE;IACpC,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAC/B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,UAAU,CAAC;IACjB,IAAI,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAEhD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,OAAO,GAAmB,OAAO,CAAC,IAAI,EAAE,CAAC;AAE/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACrC,YAAY;IACZ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC;;;;;;;;;;;KAWd,CAAC,CACD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,SAAS;IACT,MAAM,MAAM,GAAe,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC/C;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;OAKf,CAAC;YACA,KAAK,CAAC,KAAK,CAAC;qBACC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;OAEtC,CAAC;YACA,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,KAAK,CAAC,SAAS,CAAC,WAAW,CAC5D,+BAA+B,CAChC;OACF,CAAC;YACA,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,CAAC,WAAW,CACnD,mBAAmB,CACpB;OACF,CAAC;YACA,KAAK,CAAC,OAAO,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;OACjC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUrC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAQ,EAAE;IACpC,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAC/B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,UAAU,CAAC;IACjB,IAAI,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzB,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAEhD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,MAAM,OAAO,GAAmB,OAAO,CAAC,IAAI,EAAE,CAAC;AAE/C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACrC,YAAY;IACZ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC;;;;;;;;;;;KAWd,CAAC,CACD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,SAAS;IACT,MAAM,MAAM,GAAe,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC/C;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACtC,OAAO,EAAE,IAAI;SACd;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;OAKf,CAAC;YACA,KAAK,CAAC,KAAK,CAAC;eACL,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;OAEhC,CAAC;YACA,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,KAAK,CAAC,SAAS,CAAC,WAAW,CAC5D,+BAA+B,CAChC;OACF,CAAC;YACA,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,SAAS,CAAC,WAAW,CACnD,mBAAmB,CACpB;OACF,CAAC;YACA,KAAK,CAAC,OAAO,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;OACjC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tylersong",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "나의 CLI 자기소개 도구",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/src/index.ts CHANGED
@@ -23,7 +23,7 @@ const openUrl = (url: string): void => {
23
23
  exec(`${command} ${url}`);
24
24
  };
25
25
 
26
- program.version("1.0.7");
26
+ program.version("1.0.9");
27
27
 
28
28
  program.option("-g, --github", "GitHub 프로필 열기");
29
29
 
@@ -70,12 +70,12 @@ const main = async (): Promise<void> => {
70
70
  console.log(
71
71
  chalk.bold.cyan(`
72
72
  ╭───────────────────────────────────────────╮
73
- │ 🚀 Frontend Developer Profile 🚀 │
73
+ │ 🚀 Developer Profile 🚀 │
74
74
  ╰───────────────────────────────────────────╯
75
75
 
76
76
  `) +
77
77
  chalk.green(`👋 안녕하세요!
78
- 💻 프론트엔드 개발자 ${chalk.bold.yellow("송민성")}입니다.
78
+ 💻 개발자 ${chalk.bold.yellow("송민성")}입니다.
79
79
 
80
80
  `) +
81
81
  chalk.hex("#fef6e1")(`📌 Github: ${chalk.underline.whiteBright(