diff --git a/.github/workflows/publish_typescript_sdk.yml b/.github/workflows/publish_typescript_sdk.yml index 20e6b38e..031d05fa 100644 --- a/.github/workflows/publish_typescript_sdk.yml +++ b/.github/workflows/publish_typescript_sdk.yml @@ -3,6 +3,12 @@ name: Publish TypeScript SDK on: release: types: [published] + workflow_dispatch: + inputs: + tag: + description: Release tag to publish, for example sdk-v-v0.2.0 + required: true + type: string permissions: contents: read @@ -11,8 +17,14 @@ jobs: publish: runs-on: ubuntu-latest steps: + - name: Resolve release tag + id: release-tag + run: echo "tag=${{ github.event.release.tag_name || inputs.tag }}" >> "$GITHUB_OUTPUT" + - name: Checkout uses: actions/checkout@v4 + with: + ref: ${{ steps.release-tag.outputs.tag }} - name: Setup Node uses: actions/setup-node@v4 @@ -28,7 +40,7 @@ jobs: - name: Check release tag matches SDK version id: tag-check run: | - tag="${{ github.event.release.tag_name }}" + tag="${{ steps.release-tag.outputs.tag }}" version="${{ steps.sdk-version.outputs.version }}" if [[ "$tag" == "v$version" || "$tag" == "sdk-v$version" || "$tag" == "$version" || "$tag" == "sdk-v-v$version" ]]; then echo "publish=true" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/release_please_sdk.yml b/.github/workflows/release_please_sdk.yml index 29a606f1..778955a5 100644 --- a/.github/workflows/release_please_sdk.yml +++ b/.github/workflows/release_please_sdk.yml @@ -8,6 +8,7 @@ on: permissions: contents: write + id-token: write pull-requests: write jobs: @@ -15,6 +16,42 @@ jobs: runs-on: ubuntu-latest steps: - uses: googleapis/release-please-action@v4 + id: release with: config-file: .release-please-config.json manifest-file: .release-please-manifest.json + + - name: Checkout + if: ${{ steps.release.outputs['sdks/typescript-sdk--release_created'] == 'true' }} + uses: actions/checkout@v4 + + - name: Setup Node + if: ${{ steps.release.outputs['sdks/typescript-sdk--release_created'] == 'true' }} + uses: actions/setup-node@v4 + with: + node-version: 24 + registry-url: https://registry.npmjs.org/ + cache: npm + cache-dependency-path: sdks/typescript-sdk/package-lock.json + + - name: Install dependencies + if: ${{ steps.release.outputs['sdks/typescript-sdk--release_created'] == 'true' }} + working-directory: sdks/typescript-sdk + run: npm ci + + - name: Build + if: ${{ steps.release.outputs['sdks/typescript-sdk--release_created'] == 'true' }} + working-directory: sdks/typescript-sdk + run: npm run build + + - name: Test + if: ${{ steps.release.outputs['sdks/typescript-sdk--release_created'] == 'true' }} + working-directory: sdks/typescript-sdk + run: npm test -- --run + + - name: Publish + if: ${{ steps.release.outputs['sdks/typescript-sdk--release_created'] == 'true' }} + working-directory: sdks/typescript-sdk + run: npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.release-please-config.json b/.release-please-config.json index 707c7ed8..4cc7b6eb 100644 --- a/.release-please-config.json +++ b/.release-please-config.json @@ -9,7 +9,28 @@ "tag-separator": "-", "include-component-in-tag": true, "component": "sdk-v", - "extra-files": [] + "extra-files": [ + { + "type": "json", + "path": "package-lock.json", + "jsonpath": "$.packages['sdks/typescript-sdk'].version" + }, + { + "type": "json", + "path": "packages/mcp/package.json", + "jsonpath": "$.dependencies['@terminal49/sdk']" + }, + { + "type": "json", + "path": "package-lock.json", + "jsonpath": "$.packages['packages/mcp'].dependencies['@terminal49/sdk']" + }, + { + "type": "json", + "path": "packages/mcp/package-lock.json", + "jsonpath": "$.packages[''].dependencies['@terminal49/sdk']" + } + ] } } } diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c8214cbb..e317adc9 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - "sdks/typescript-sdk": "0.1.0" + "sdks/typescript-sdk": "0.2.0" } diff --git a/package-lock.json b/package-lock.json index 4aa373c7..e4fb5331 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16204,7 +16204,7 @@ "version": "0.1.0", "dependencies": { "@modelcontextprotocol/sdk": "^1.26.0", - "@terminal49/sdk": "^0.1.0", + "@terminal49/sdk": "0.2.0", "zod": "^4.3.6" }, "devDependencies": { @@ -16223,7 +16223,7 @@ }, "sdks/typescript-sdk": { "name": "@terminal49/sdk", - "version": "0.1.0", + "version": "0.2.0", "dependencies": { "jsona": "^1.12.1", "openapi-fetch": "^0.15.2" diff --git a/packages/mcp/package-lock.json b/packages/mcp/package-lock.json index 3497098e..616d0d6b 100644 --- a/packages/mcp/package-lock.json +++ b/packages/mcp/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "dependencies": { "@modelcontextprotocol/sdk": "^1.22.0", - "@terminal49/sdk": "^0.1.0", + "@terminal49/sdk": "0.2.0", "zod": "^3.25.76" }, "devDependencies": { diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 3e1e44a2..2e9fcc5f 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -22,7 +22,7 @@ ], "dependencies": { "@modelcontextprotocol/sdk": "^1.26.0", - "@terminal49/sdk": "^0.1.0", + "@terminal49/sdk": "0.2.0", "zod": "^4.3.6" }, "devDependencies": { diff --git a/sdks/typescript-sdk/CHANGELOG.md b/sdks/typescript-sdk/CHANGELOG.md index 8b4b2fe8..7da7d6c2 100644 --- a/sdks/typescript-sdk/CHANGELOG.md +++ b/sdks/typescript-sdk/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to `@terminal49/sdk` are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.2.0](https://github.com/Terminal49/API/compare/sdk-v-v0.1.0...sdk-v-v0.2.0) (2026-05-07) + + +### Features + +* **sdk:** add TypeScript SDK + SDK Docs ([#174](https://github.com/Terminal49/API/issues/174)) ([e49ed54](https://github.com/Terminal49/API/commit/e49ed54c9918a8769ad007b0d90973c844d60372)) + ## [Unreleased] ### Added diff --git a/sdks/typescript-sdk/package-lock.json b/sdks/typescript-sdk/package-lock.json index 5ab116f5..89d39f83 100644 --- a/sdks/typescript-sdk/package-lock.json +++ b/sdks/typescript-sdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "@terminal49/sdk", - "version": "0.1.0", + "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@terminal49/sdk", - "version": "0.1.0", + "version": "0.2.0", "dependencies": { "jsona": "^1.12.1", "openapi-fetch": "^0.15.2" diff --git a/sdks/typescript-sdk/package.json b/sdks/typescript-sdk/package.json index dc752959..c497a381 100644 --- a/sdks/typescript-sdk/package.json +++ b/sdks/typescript-sdk/package.json @@ -1,13 +1,19 @@ { "name": "@terminal49/sdk", - "version": "0.1.0", + "version": "0.2.0", "description": "Terminal49 TypeScript SDK (JSON:API, openapi-fetch)", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", "exports": { - ".": "./dist/index.js", - "./client": "./dist/client.js" + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./client": { + "types": "./dist/client.d.ts", + "default": "./dist/client.js" + } }, "scripts": { "build": "tsc",