From 04dee5f1956dca68e1ecca63eeb698061a28967d Mon Sep 17 00:00:00 2001 From: Surya Prashanth Date: Tue, 5 Aug 2025 15:25:25 +0530 Subject: [PATCH 1/2] [SILO-437] fix types for apis - add IssueSearchItemSerializer type for issues search endpoint - add a new IssueDetailSerializer extending IssueSerializer for detail api - exclude slug field from State API response - add many=True for serializer responses with arrays - add IssuePropertyValueAPIDetailSerializer for issue property values --- .github/workflows/publish-node-sdk.yml | 25 +- .openapi-generator/FILES | 3 +- README.md | 4 +- package-lock.json | 4 +- package.json | 2 +- src/apis/WorkItemPropertiesApi.ts | 21 +- src/apis/WorkItemsApi.ts | 9 +- src/models/IssueDetail.ts | 319 ++++++++++++++++++++++ src/models/IssueExpand.ts | 26 +- src/models/IssuePropertyValueAPIDetail.ts | 76 ++++++ src/models/IssueSearch.ts | 7 +- src/models/LabelLite.ts | 83 ------ src/models/index.ts | 3 +- 13 files changed, 453 insertions(+), 129 deletions(-) create mode 100644 src/models/IssueDetail.ts create mode 100644 src/models/IssuePropertyValueAPIDetail.ts delete mode 100644 src/models/LabelLite.ts diff --git a/.github/workflows/publish-node-sdk.yml b/.github/workflows/publish-node-sdk.yml index 58a2339..f2ca750 100644 --- a/.github/workflows/publish-node-sdk.yml +++ b/.github/workflows/publish-node-sdk.yml @@ -12,8 +12,8 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: '20' - registry-url: 'https://registry.npmjs.org' + node-version: "20" + registry-url: "https://registry.npmjs.org" - name: Install dependencies and build run: npm ci @@ -21,4 +21,23 @@ jobs: - name: Publish to npm run: npm publish --access public env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} \ No newline at end of file + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Get version from package.json + id: package-version + run: | + VERSION=$(jq -r '.version' package.json) + if [ -z "$VERSION" ]; then + echo "Error: Could not extract version from package.json" + exit 1 + fi + echo "current-version=$VERSION" >> $GITHUB_OUTPUT + + - name: Create GitHub Release + uses: softprops/action-gh-release@v1 + with: + tag_name: v${{ steps.package-version.outputs.current-version }} + name: v${{ steps.package-version.outputs.current-version }} + draft: false + prerelease: false + generate_release_notes: true diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index ed90c47..57e8bda 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -41,6 +41,7 @@ src/models/IssueAttachment.ts src/models/IssueAttachmentUploadRequest.ts src/models/IssueComment.ts src/models/IssueCommentCreateRequest.ts +src/models/IssueDetail.ts src/models/IssueExpand.ts src/models/IssueForIntakeRequest.ts src/models/IssueLink.ts @@ -50,6 +51,7 @@ src/models/IssuePropertyAPIRequest.ts src/models/IssuePropertyOptionAPI.ts src/models/IssuePropertyOptionAPIRequest.ts src/models/IssuePropertyValueAPI.ts +src/models/IssuePropertyValueAPIDetail.ts src/models/IssuePropertyValueAPIRequest.ts src/models/IssueRequest.ts src/models/IssueSearch.ts @@ -60,7 +62,6 @@ src/models/IssueWorkLogAPI.ts src/models/IssueWorkLogAPIRequest.ts src/models/Label.ts src/models/LabelCreateUpdateRequest.ts -src/models/LabelLite.ts src/models/Module.ts src/models/ModuleCreateRequest.ts src/models/ModuleIssue.ts diff --git a/README.md b/README.md index 137cc44..5aed06f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## @makeplane/plane-node-sdk@0.1.3 +## @makeplane/plane-node-sdk@0.1.4 This generator creates TypeScript/JavaScript client that utilizes [Fetch API](https://fetch.spec.whatwg.org/). The generated Node module can be used in the following environments: @@ -36,7 +36,7 @@ navigate to the folder of your consuming project and run one of the following co _published:_ ``` -npm install @makeplane/plane-node-sdk@0.1.3 --save +npm install @makeplane/plane-node-sdk@0.1.4 --save ``` _unPublished (not recommended):_ diff --git a/package-lock.json b/package-lock.json index 6f4432b..57dcff8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@makeplane/plane-node-sdk", - "version": "0.1.3", + "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@makeplane/plane-node-sdk", - "version": "0.1.3", + "version": "0.1.4", "devDependencies": { "@eslint/js": "^9.29.0", "eslint": "^9.29.0", diff --git a/package.json b/package.json index 001f850..47a54d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@makeplane/plane-node-sdk", - "version": "0.1.3", + "version": "0.1.4", "description": "Node SDK for Plane", "author": "Plane ", "repository": { diff --git a/src/apis/WorkItemPropertiesApi.ts b/src/apis/WorkItemPropertiesApi.ts index 7e432ec..92212cd 100644 --- a/src/apis/WorkItemPropertiesApi.ts +++ b/src/apis/WorkItemPropertiesApi.ts @@ -19,6 +19,7 @@ import type { IssuePropertyOptionAPI, IssuePropertyOptionAPIRequest, IssuePropertyValueAPI, + IssuePropertyValueAPIDetail, IssuePropertyValueAPIRequest, PatchedIssuePropertyAPIRequest, PatchedIssuePropertyOptionAPIRequest, @@ -34,6 +35,8 @@ import { IssuePropertyOptionAPIRequestToJSON, IssuePropertyValueAPIFromJSON, IssuePropertyValueAPIToJSON, + IssuePropertyValueAPIDetailFromJSON, + IssuePropertyValueAPIDetailToJSON, IssuePropertyValueAPIRequestFromJSON, IssuePropertyValueAPIRequestToJSON, PatchedIssuePropertyAPIRequestFromJSON, @@ -500,7 +503,7 @@ export class WorkItemPropertiesApi extends runtime.BaseAPI { * List issue properties * List issue properties */ - async listIssuePropertiesRaw(requestParameters: ListIssuePropertiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async listIssuePropertiesRaw(requestParameters: ListIssuePropertiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters['projectId'] == null) { throw new runtime.RequiredError( 'projectId', @@ -547,14 +550,14 @@ export class WorkItemPropertiesApi extends runtime.BaseAPI { query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => IssuePropertyAPIFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(IssuePropertyAPIFromJSON)); } /** * List issue properties * List issue properties */ - async listIssueProperties(requestParameters: ListIssuePropertiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async listIssueProperties(requestParameters: ListIssuePropertiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.listIssuePropertiesRaw(requestParameters, initOverrides); return await response.value(); } @@ -563,7 +566,7 @@ export class WorkItemPropertiesApi extends runtime.BaseAPI { * List issue property options * List issue property options */ - async listIssuePropertyOptionsRaw(requestParameters: ListIssuePropertyOptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async listIssuePropertyOptionsRaw(requestParameters: ListIssuePropertyOptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters['projectId'] == null) { throw new runtime.RequiredError( 'projectId', @@ -610,14 +613,14 @@ export class WorkItemPropertiesApi extends runtime.BaseAPI { query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => IssuePropertyOptionAPIFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(IssuePropertyOptionAPIFromJSON)); } /** * List issue property options * List issue property options */ - async listIssuePropertyOptions(requestParameters: ListIssuePropertyOptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async listIssuePropertyOptions(requestParameters: ListIssuePropertyOptionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.listIssuePropertyOptionsRaw(requestParameters, initOverrides); return await response.value(); } @@ -626,7 +629,7 @@ export class WorkItemPropertiesApi extends runtime.BaseAPI { * List issue property values * List issue property values */ - async listIssuePropertyValuesRaw(requestParameters: ListIssuePropertyValuesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async listIssuePropertyValuesRaw(requestParameters: ListIssuePropertyValuesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { if (requestParameters['issueId'] == null) { throw new runtime.RequiredError( 'issueId', @@ -680,14 +683,14 @@ export class WorkItemPropertiesApi extends runtime.BaseAPI { query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => IssuePropertyValueAPIFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(IssuePropertyValueAPIDetailFromJSON)); } /** * List issue property values * List issue property values */ - async listIssuePropertyValues(requestParameters: ListIssuePropertyValuesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async listIssuePropertyValues(requestParameters: ListIssuePropertyValuesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const response = await this.listIssuePropertyValuesRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/src/apis/WorkItemsApi.ts b/src/apis/WorkItemsApi.ts index f780533..d79cc98 100644 --- a/src/apis/WorkItemsApi.ts +++ b/src/apis/WorkItemsApi.ts @@ -15,6 +15,7 @@ import * as runtime from '../runtime'; import type { Issue, + IssueDetail, IssueRequest, IssueSearch, PaginatedWorkItemResponse, @@ -23,6 +24,8 @@ import type { import { IssueFromJSON, IssueToJSON, + IssueDetailFromJSON, + IssueDetailToJSON, IssueRequestFromJSON, IssueRequestToJSON, IssueSearchFromJSON, @@ -373,7 +376,7 @@ export class WorkItemsApi extends runtime.BaseAPI { * Retrieve details of a specific work item. * Retrieve work item */ - async retrieveWorkItemRaw(requestParameters: RetrieveWorkItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + async retrieveWorkItemRaw(requestParameters: RetrieveWorkItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters['pk'] == null) { throw new runtime.RequiredError( 'pk', @@ -440,14 +443,14 @@ export class WorkItemsApi extends runtime.BaseAPI { query: queryParameters, }, initOverrides); - return new runtime.JSONApiResponse(response, (jsonValue) => IssueFromJSON(jsonValue)); + return new runtime.JSONApiResponse(response, (jsonValue) => IssueDetailFromJSON(jsonValue)); } /** * Retrieve details of a specific work item. * Retrieve work item */ - async retrieveWorkItem(requestParameters: RetrieveWorkItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { + async retrieveWorkItem(requestParameters: RetrieveWorkItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.retrieveWorkItemRaw(requestParameters, initOverrides); return await response.value(); } diff --git a/src/models/IssueDetail.ts b/src/models/IssueDetail.ts new file mode 100644 index 0000000..c650752 --- /dev/null +++ b/src/models/IssueDetail.ts @@ -0,0 +1,319 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * The Plane REST API + * The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + * + * The version of the API Spec: 0.0.1 + * Contact: support@plane.so + * + * NOTE: This class is auto generated. + * Do not edit the class manually. + */ + +import { mapValues } from '../runtime'; +import type { PriorityEnum } from './PriorityEnum'; +import { + PriorityEnumFromJSON, + PriorityEnumFromJSONTyped, + PriorityEnumToJSON, + PriorityEnumToJSONTyped, +} from './PriorityEnum'; +import type { Label } from './Label'; +import { + LabelFromJSON, + LabelFromJSONTyped, + LabelToJSON, + LabelToJSONTyped, +} from './Label'; +import type { UserLite } from './UserLite'; +import { + UserLiteFromJSON, + UserLiteFromJSONTyped, + UserLiteToJSON, + UserLiteToJSONTyped, +} from './UserLite'; + +/** + * Comprehensive work item serializer with full relationship management. + * + * Handles complete work item lifecycle including assignees, labels, validation, + * and related model updates. Supports dynamic field expansion and HTML content processing. + * @export + * @interface IssueDetail + */ +export interface IssueDetail { + /** + * + * @type {string} + * @memberof IssueDetail + */ + readonly id?: string; + /** + * + * @type {Array} + * @memberof IssueDetail + */ + assignees: Array; + /** + * + * @type {Array