Skip to content

Commit 752f908

Browse files
feat: migrate to Biome linter, update API definitions, and enhance testing infrastructure (#193)
* chore: update dependencies * chore: update dependencies * fix(deps): update dependency axios to v1.2.5 (#78) * fix(deps): update dependency axios to v1.2.6 (#79) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update dependencies * chore(deps): update dependency typescript to v4.9.5 (#80) * fix(deps): update dependency axios to v1.3.0 (#81) * chore: update dependencies * fix(deps): update dependency axios to v1.3.2 (#82) * chore(deps): update dependency lint-staged to v13.1.1 (#83) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v2.8.4 (#84) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update all non-major dependencies (#85) * chore: update dependencies * chore(deps): update dependency lint-staged to v13.2.0 (#86) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency typescript to v5 (#87) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v2.8.5 (#88) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v2.8.6 (#89) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v2.8.7 (#90) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency typescript to v5.0.3 (#91) * chore: update dependencies * chore(deps): update all non-major dependencies (#92) * chore: update dependencies * chore(deps): update dependency prettier to v2.8.8 (#93) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency lint-staged to v13.2.2 (#95) * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore(deps): update dependency prettier to v3.0.1 (#100) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency lint-staged to v13.3.0 (#101) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update dependencies * chore(deps): update dependency prettier to v3.0.2 (#103) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency lint-staged to v14.0.1 (#104) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update all non-major dependencies (#105) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency axios to v1.5.0 (#106) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v3.0.3 (#107) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update actions/checkout action to v4 (#108) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/chai to v4.3.6 (#109) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update actions/checkout digest to 8ade135 (#110) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix(deps): update dependency axios to v1.5.1 (#111) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chai to v4.3.9 (#112) * chore(deps): update dependency @types/mocha to v10.0.2 (#113) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chai to v4.3.10 (#115) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update styfle/cancel-workflow-action action to v0.12.0 (#116) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/chai to v4.3.7 (#117) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/chai to v4.3.8 (#118) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update dependencies * chore(deps): update dependency lint-staged to v15.0.1 (#120) * chore: update dependencies * chore(deps): update dependency @types/mocha to v10.0.3 (#121) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency lint-staged to v15.0.2 (#123) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update actions/setup-node action to v4 (#124) * chore: update dependencies * chore(deps): update dependency @types/mocha to v10.0.4 (#126) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update dependencies * fix(deps): update dependency axios to v1.6.1 (#127) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency lint-staged to v15.1.0 (#129) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v3.1.0 (#130) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update dependencies * chore(deps): update dependency typescript to v5.3.2 (#131) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update all non-major dependencies (#132) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/mocha to v10.0.6 (#133) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update dependencies * chore: update dependencies * chore(deps): update dependency ts-node to v10.9.2 (#134) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency prettier to v3.1.1 (#135) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: update dependencies * chore(deps): update dependency chai to v5 (#136) * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore: update dependencies * chore(deps): update dependency pretty-quick to v4 (#138) * chore(deps): update dependency prettier to v3.2.4 (#137) * fix(deps): update all non-major dependencies (#139) * chore(deps): update dependency husky to v9 (#140) * fix(deps): update dependency axios to v1.6.7 (#141) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency husky to v9.0.6 (#142) * chore(deps): update all non-major dependencies (#143) * chore(deps): update dependency prettier to v3.2.5 (#144) * chore(deps): update all non-major dependencies (#145) * chore(deps): update dependency typescript to v5.4.2 (#146) * chore(deps): update actions/checkout digest to b4ffde6 (#122) * fix(deps): update dependency axios to v1.6.8 (#147) * chore(deps): update all non-major dependencies (#148) * chore(deps): update actions/checkout digest to 44c2b7a (#149) * chore(deps): update actions/checkout digest to 0ad4b8f (#151) * chore(deps): update all non-major dependencies (#150) * fix(deps): update dependency axios to v1.7.1 (#152) * chore(deps): update actions/checkout digest to a5ac7e5 (#153) * fix(deps): update all non-major dependencies (#154) * chore(deps): update dependency lint-staged to v15.2.5 (#155) * chore(deps): update actions/checkout digest to 692973e (#157) * chore(deps): update all non-major dependencies (#156) * chore(deps): update all non-major dependencies (#158) * chore(deps): update all non-major dependencies (#159) * chore(deps): update all non-major dependencies (#160) * chore(deps): update all non-major dependencies (#161) * chore(deps): update dependency typescript to v5.5.4 (#162) * chore(deps): update dependency husky to v9.1.2 (#163) * chore(deps): update all non-major dependencies (#164) * chore(deps): update all non-major dependencies (#165) * chore(deps): update all non-major dependencies (#166) * fix(deps): update dependency axios to v1.7.4 [security] (#167) * fix(deps): update dependency axios to v1.7.5 [security] (#170) * chore(deps): update all non-major dependencies (#168) * chore(deps): update all non-major dependencies (#172) * chore(deps): update dependency @types/chai to v5 (#169) * chore(deps): update actions/checkout digest to 11bd719 (#171) * chore(deps): update all non-major dependencies (#173) * chore(deps): update all non-major dependencies (#174) * chore(deps): update dependency mocha to v11 (#176) * fix(deps): update all non-major dependencies (#175) * chore(deps): update all non-major dependencies (#177) * fix(deps): update all non-major dependencies (#178) * fix(deps): update all non-major dependencies (#179) * chore(deps): update all non-major dependencies (#180) * chore(deps): update dependency lint-staged to v16 (#181) * chore(deps): update dependency mocha to v11.3.0 (#182) * chore(deps): update dependency mocha to v11.4.0 (#183) * fix(deps): update all non-major dependencies (#184) * chore(deps): update all non-major dependencies (#185) * chore(deps): update actions/checkout action to v5 (#188) * fix(deps): update all non-major dependencies (#186) * chore(deps): update actions/setup-node action to v5 (#191) * chore(deps): update all non-major dependencies (#189) * chore(deps): update dependency chai to v6 (#190) * feat: enhance package exports for better module resolution - Add comprehensive exports field to package.json with subpath exports - Update CHANGELOG.md with new export enhancements - Fix main and types paths to point to dist directory - Enable cleaner imports like @devmehq/sdk-js/api and @devmehq/sdk-js/configuration - Add files field to optimize npm package size * chore: update linting and api * chore: update linting and api --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 parent 4df2dab commit 752f908

32 files changed

+10499
-3826
lines changed

.dockerignore

Lines changed: 0 additions & 32 deletions
This file was deleted.

.eslintignore

Lines changed: 0 additions & 11 deletions
This file was deleted.

.eslintrc

Lines changed: 0 additions & 46 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 87 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,53 +8,119 @@ on:
88
- '__tests__/**'
99
- 'package.json'
1010
- 'yarn.lock'
11-
- 'release.config.js'
12-
- '.github/workflows/ci.yml'
1311
branches:
1412
- '*'
1513
- '**'
1614
- '!master'
1715

16+
concurrency:
17+
group: ${{ github.workflow }}-${{ github.ref }}
18+
cancel-in-progress: true
19+
1820
env:
1921
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
2022
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
DEVME_SDK_API_KEY: ${{ secrets.DEVME_SDK_API_KEY }}
2124
CI: true
2225

2326
jobs:
24-
CI:
27+
test:
28+
name: Test
2529
runs-on: ubuntu-latest
2630
timeout-minutes: 20
2731

2832
permissions:
29-
packages: write
3033
contents: write
34+
issues: write
35+
pull-requests: write
36+
id-token: write
37+
packages: write
3138

3239
steps:
33-
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
34-
- uses: styfle/[email protected]
40+
- name: Checkout
41+
uses: actions/checkout@v5
3542
with:
36-
workflow_id: ci.yml
37-
access_token: ${{ github.token }}
43+
fetch-depth: 0
44+
persist-credentials: false
3845

39-
- uses: actions/checkout@v3
40-
with:
41-
fetch-depth: 30
42-
43-
- uses: FranzDiebold/github-env-vars-action@v2
4446
- name: Setup Node.js
45-
uses: actions/setup-node@v3
47+
uses: actions/setup-node@v5
4648
with:
47-
node-version: 19
49+
node-version: 24
50+
cache: 'yarn'
4851

49-
- name: Yarn
52+
- name: Install dependencies
5053
run: yarn install --frozen-lockfile
5154

55+
- name: Verify dependency integrity
56+
run: yarn audit || true
57+
58+
- name: Lint
59+
run: yarn lint
60+
5261
- name: Test
62+
run: yarn test
63+
64+
- name: Build
65+
run: yarn build
66+
67+
- name: Pre-release (develop branch only)
68+
id: semantic_release
69+
if: github.ref == 'refs/heads/develop' && github.event_name == 'push'
70+
env:
71+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
72+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
73+
GIT_AUTHOR_NAME: DEV.ME Team
74+
GIT_AUTHOR_EMAIL: [email protected]
75+
GIT_COMMITTER_NAME: DEV.ME Team
76+
GIT_COMMITTER_EMAIL: [email protected]
5377
run: |
54-
yarn test
78+
# Install semantic-release and required plugins
79+
npm i -g semantic-release @semantic-release/git @semantic-release/github @semantic-release/changelog @semantic-release/npm @semantic-release/commit-analyzer
80+
81+
# Run semantic-release
82+
npx semantic-release --debug 2>&1 | tee release-output.txt
5583
56-
- name: Release
57-
if: github.ref == 'refs/heads/develop'
84+
# Extract version and tag info from release output
85+
if grep -q "Published release" release-output.txt; then
86+
echo "release_published=true" >> $GITHUB_OUTPUT
87+
VERSION=$(grep -oP 'Published release \K[0-9]+\.[0-9]+\.[0-9]+(-.+)?' release-output.txt | head -1)
88+
echo "version=$VERSION" >> $GITHUB_OUTPUT
89+
echo "tag=v$VERSION" >> $GITHUB_OUTPUT
90+
else
91+
echo "release_published=false" >> $GITHUB_OUTPUT
92+
fi
93+
94+
- name: Add Release Summary
95+
if: always()
5896
run: |
59-
npm i -g semantic-release @semantic-release/git @semantic-release/github conventional-changelog-conventionalcommits
60-
npx semantic-release --no-ci --debug
97+
echo "## 📦 Release Summary" >> $GITHUB_STEP_SUMMARY
98+
echo "" >> $GITHUB_STEP_SUMMARY
99+
100+
if [[ "${{ steps.semantic_release.outputs.release_published }}" == "true" ]]; then
101+
echo "### ✅ Release Published Successfully!" >> $GITHUB_STEP_SUMMARY
102+
echo "" >> $GITHUB_STEP_SUMMARY
103+
echo "- **Version:** \`${{ steps.semantic_release.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
104+
echo "- **Tag:** \`${{ steps.semantic_release.outputs.tag }}\`" >> $GITHUB_STEP_SUMMARY
105+
echo "- **Branch:** \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
106+
echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
107+
echo "" >> $GITHUB_STEP_SUMMARY
108+
echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
109+
echo "- [NPM Package](https://www.npmjs.com/package/@devmehq/sdk-js/v/${{ steps.semantic_release.outputs.version }})" >> $GITHUB_STEP_SUMMARY
110+
echo "- [GitHub Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic_release.outputs.tag }})" >> $GITHUB_STEP_SUMMARY
111+
else
112+
echo "### ℹ️ No Release Published" >> $GITHUB_STEP_SUMMARY
113+
echo "" >> $GITHUB_STEP_SUMMARY
114+
echo "No release was created. This could be because:" >> $GITHUB_STEP_SUMMARY
115+
echo "- No relevant commits found for release" >> $GITHUB_STEP_SUMMARY
116+
echo "- Commits don't follow conventional commit format" >> $GITHUB_STEP_SUMMARY
117+
echo "- Release conditions not met" >> $GITHUB_STEP_SUMMARY
118+
fi
119+
120+
echo "" >> $GITHUB_STEP_SUMMARY
121+
echo "### 📊 Build Information" >> $GITHUB_STEP_SUMMARY
122+
echo "- **Workflow:** \`${{ github.workflow }}\`" >> $GITHUB_STEP_SUMMARY
123+
echo "- **Run ID:** \`${{ github.run_id }}\`" >> $GITHUB_STEP_SUMMARY
124+
echo "- **Run Number:** \`${{ github.run_number }}\`" >> $GITHUB_STEP_SUMMARY
125+
echo "- **Actor:** \`${{ github.actor }}\`" >> $GITHUB_STEP_SUMMARY
126+
echo "- **Event:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY

.github/workflows/release.yml

Lines changed: 86 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,45 +9,113 @@ on:
99
branches:
1010
- 'master'
1111

12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
1216
env:
1317
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
1418
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19+
DEVME_SDK_API_KEY: ${{ secrets.DEVME_SDK_API_KEY }}
1520
CI: true
1621

1722
jobs:
18-
Release:
23+
release:
24+
name: Release
1925
runs-on: ubuntu-latest
2026
timeout-minutes: 20
2127

2228
permissions:
23-
packages: write
2429
contents: write
30+
issues: write
31+
pull-requests: write
32+
id-token: write
33+
packages: write
2534

2635
steps:
27-
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
28-
- uses: styfle/[email protected]
29-
with:
30-
workflow_id: release.yml
31-
access_token: ${{ github.token }}
32-
33-
- uses: actions/checkout@v3
36+
- name: Checkout
37+
uses: actions/checkout@v5
3438
with:
35-
fetch-depth: 30
39+
fetch-depth: 0
40+
persist-credentials: false
3641

37-
- uses: FranzDiebold/github-env-vars-action@v2
3842
- name: Setup Node.js
39-
uses: actions/setup-node@v3
43+
uses: actions/setup-node@v5
4044
with:
41-
node-version: 19
45+
node-version: 24
46+
cache: 'yarn'
4247

43-
- name: Yarn
48+
- name: Install dependencies
4449
run: yarn install --frozen-lockfile
4550

51+
- name: Verify dependency integrity
52+
run: yarn audit || true
53+
54+
- name: Lint
55+
run: yarn lint
56+
4657
- name: Test
47-
run: |
48-
yarn test
58+
run: yarn test
59+
60+
- name: Build
61+
run: yarn build
4962

5063
- name: Release
64+
id: semantic_release
65+
env:
66+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
67+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
68+
GIT_AUTHOR_NAME: DEV.ME Team
69+
GIT_AUTHOR_EMAIL: [email protected]
70+
GIT_COMMITTER_NAME: DEV.ME Team
71+
GIT_COMMITTER_EMAIL: [email protected]
5172
run: |
52-
npm i -g semantic-release @semantic-release/git @semantic-release/github conventional-changelog-conventionalcommits
53-
npx semantic-release --no-ci --debug
73+
# Install semantic-release and required plugins
74+
npm i -g semantic-release @semantic-release/git @semantic-release/github @semantic-release/changelog @semantic-release/npm @semantic-release/commit-analyzer
75+
76+
# Run semantic-release
77+
npx semantic-release --debug 2>&1 | tee release-output.txt
78+
79+
# Extract version and tag info from release output
80+
if grep -q "Published release" release-output.txt; then
81+
echo "release_published=true" >> $GITHUB_OUTPUT
82+
VERSION=$(grep -oP 'Published release \K[0-9]+\.[0-9]+\.[0-9]+' release-output.txt | head -1)
83+
echo "version=$VERSION" >> $GITHUB_OUTPUT
84+
echo "tag=v$VERSION" >> $GITHUB_OUTPUT
85+
else
86+
echo "release_published=false" >> $GITHUB_OUTPUT
87+
fi
88+
89+
- name: Add Release Summary
90+
if: always()
91+
run: |
92+
echo "## 📦 Release Summary" >> $GITHUB_STEP_SUMMARY
93+
echo "" >> $GITHUB_STEP_SUMMARY
94+
95+
if [[ "${{ steps.semantic_release.outputs.release_published }}" == "true" ]]; then
96+
echo "### ✅ Release Published Successfully!" >> $GITHUB_STEP_SUMMARY
97+
echo "" >> $GITHUB_STEP_SUMMARY
98+
echo "- **Version:** \`${{ steps.semantic_release.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
99+
echo "- **Tag:** \`${{ steps.semantic_release.outputs.tag }}\`" >> $GITHUB_STEP_SUMMARY
100+
echo "- **Branch:** \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
101+
echo "- **Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
102+
echo "" >> $GITHUB_STEP_SUMMARY
103+
echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
104+
echo "- [NPM Package](https://www.npmjs.com/package/@devmehq/sdk-js/v/${{ steps.semantic_release.outputs.version }})" >> $GITHUB_STEP_SUMMARY
105+
echo "- [GitHub Release](https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic_release.outputs.tag }})" >> $GITHUB_STEP_SUMMARY
106+
else
107+
echo "### ℹ️ No Release Published" >> $GITHUB_STEP_SUMMARY
108+
echo "" >> $GITHUB_STEP_SUMMARY
109+
echo "No release was created. This could be because:" >> $GITHUB_STEP_SUMMARY
110+
echo "- No relevant commits found for release" >> $GITHUB_STEP_SUMMARY
111+
echo "- Commits don't follow conventional commit format" >> $GITHUB_STEP_SUMMARY
112+
echo "- Release conditions not met" >> $GITHUB_STEP_SUMMARY
113+
fi
114+
115+
echo "" >> $GITHUB_STEP_SUMMARY
116+
echo "### 📊 Build Information" >> $GITHUB_STEP_SUMMARY
117+
echo "- **Workflow:** \`${{ github.workflow }}\`" >> $GITHUB_STEP_SUMMARY
118+
echo "- **Run ID:** \`${{ github.run_id }}\`" >> $GITHUB_STEP_SUMMARY
119+
echo "- **Run Number:** \`${{ github.run_number }}\`" >> $GITHUB_STEP_SUMMARY
120+
echo "- **Actor:** \`${{ github.actor }}\`" >> $GITHUB_STEP_SUMMARY
121+
echo "- **Event:** \`${{ github.event_name }}\`" >> $GITHUB_STEP_SUMMARY

.husky/pre-commit

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
node_modules/.bin/pretty-quick
2-
node_modules/.bin/lint-staged
1+
npx biome check --write --staged

.lintstagedrc

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)