phorge-ts 0.2.0 → 1.0.0

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.
Files changed (51) hide show
  1. package/.env.example +2 -0
  2. package/README.md +134 -0
  3. package/dist/client.d.ts +15 -13
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.e2e.test.d.ts +2 -0
  6. package/dist/client.e2e.test.d.ts.map +1 -0
  7. package/dist/client.e2e.test.js +103 -0
  8. package/dist/client.e2e.test.js.map +1 -0
  9. package/dist/client.js +48 -23
  10. package/dist/client.js.map +1 -1
  11. package/dist/client.test.js +75 -14
  12. package/dist/client.test.js.map +1 -1
  13. package/dist/dev.d.ts +2 -0
  14. package/dist/dev.d.ts.map +1 -0
  15. package/dist/dev.js +13 -0
  16. package/dist/dev.js.map +1 -0
  17. package/dist/models/maniphest.d.ts +60 -39
  18. package/dist/models/maniphest.d.ts.map +1 -1
  19. package/dist/models/maniphest.js +73 -60
  20. package/dist/models/maniphest.js.map +1 -1
  21. package/dist/models/phorge.d.ts +1 -1
  22. package/dist/models/phorge.d.ts.map +1 -1
  23. package/dist/models/project.d.ts +25 -25
  24. package/dist/models/project.d.ts.map +1 -1
  25. package/dist/models/project.js +37 -37
  26. package/dist/models/project.js.map +1 -1
  27. package/dist/models/transaction.d.ts +4 -4
  28. package/dist/models/transaction.d.ts.map +1 -1
  29. package/dist/models/transaction.js +2 -2
  30. package/dist/models/transaction.js.map +1 -1
  31. package/dist/models/user.d.ts +4 -4
  32. package/dist/models/user.d.ts.map +1 -1
  33. package/dist/models/user.js +2 -2
  34. package/dist/models/user.js.map +1 -1
  35. package/dist/test.js +7 -6
  36. package/dist/test.js.map +1 -1
  37. package/dist/utils.d.ts +3 -3
  38. package/dist/utils.d.ts.map +1 -1
  39. package/dist/utils.js +3 -10
  40. package/dist/utils.js.map +1 -1
  41. package/package.json +5 -3
  42. package/src/client.e2e.test.ts +122 -0
  43. package/src/client.test.ts +90 -17
  44. package/src/client.ts +60 -31
  45. package/src/models/maniphest.ts +88 -67
  46. package/src/models/phorge.ts +1 -1
  47. package/src/models/project.ts +44 -44
  48. package/src/models/transaction.ts +4 -4
  49. package/src/models/user.ts +4 -4
  50. package/src/utils.ts +4 -11
  51. package/src/test.ts +0 -11
package/.env.example ADDED
@@ -0,0 +1,2 @@
1
+ PHORGE_URI=https://phorge.example.com
2
+ PHORGE_TOKEN=api-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
package/README.md ADDED
@@ -0,0 +1,134 @@
1
+ # Phorge-TS
2
+
3
+ A strictly typed TypeScript client for the Phorge (and Phabricator) Conduit API. This library uses [Zod](https://github.com/colinhacks/zod) to validate API responses, ensuring runtime type safety.
4
+
5
+ ## Features
6
+
7
+ - **Strict Typing**: All API responses are validated against Zod schemas.
8
+ - **Promise-based**: Fully async/await compatible.
9
+ - **Modular**: separate models for Projects, Maniphest (Tasks), Users, and Transactions.
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ npm install phorge-ts
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ### Initialization
20
+
21
+ Import the `Client` and initialize it with your Phorge instance URI and API token.
22
+
23
+ ```typescript
24
+ import { Client } from 'phorge-ts';
25
+
26
+ const client = new Client('https://phorge.example.com', 'api-token-...');
27
+ ```
28
+
29
+ ### Searching for Tasks (Maniphest)
30
+
31
+ ```typescript
32
+ import { Client } from 'phorge-ts';
33
+
34
+ const client = new Client('https://phorge.example.com', 'api-token-...');
35
+
36
+ async function getOpenTasks() {
37
+ try {
38
+ const tasks = await client.searchManiphest({
39
+ constraints: {
40
+ statuses: ['open'],
41
+ },
42
+ limit: 10,
43
+ });
44
+
45
+ for (const task of tasks) {
46
+ console.log(`#${task.id}: ${task.fields.name}`);
47
+ }
48
+ } catch (error) {
49
+ console.error('Failed to search tasks:', error);
50
+ }
51
+ }
52
+
53
+ getOpenTasks();
54
+ ```
55
+
56
+ ### Creating a Task
57
+
58
+ ```typescript
59
+ import { Client } from 'phorge-ts';
60
+
61
+ const client = new Client('https://phorge.example.com', 'api-token-...');
62
+
63
+ async function createNewTask() {
64
+ try {
65
+ const newTask = await client.createManiphest([
66
+ { type: 'title', value: 'New Task Title' },
67
+ { type: 'description', value: 'Description of the new task.' },
68
+ { type: 'priority', value: 80 }, // High priority
69
+ ]);
70
+
71
+ console.log(`Created task with PHID: ${newTask.phid}`);
72
+ } catch (error) {
73
+ console.error('Failed to create task:', error);
74
+ }
75
+ }
76
+
77
+ createNewTask();
78
+ ```
79
+
80
+ ### Working with Projects
81
+
82
+ ```typescript
83
+ import { Client } from 'phorge-ts';
84
+
85
+ const client = new Client('https://phorge.example.com', 'api-token-...');
86
+
87
+ async function searchProjects() {
88
+ const projects = await client.searchProject({
89
+ queryKey: 'active',
90
+ });
91
+ console.log(projects);
92
+ }
93
+ ```
94
+
95
+ ## Available APIs
96
+
97
+ The client currently supports the following methods:
98
+
99
+ - **Maniphest (Tasks)**
100
+ - `searchManiphest(options?)`
101
+ - `createManiphest(transactions)`
102
+ - `updateManiphest(phid, transactions)`
103
+ - `searchManiphestPriority()`
104
+ - `searchManiphestStatus()`
105
+ - **Project**
106
+ - `searchProject(options?)`
107
+ - `createProject(transactions)`
108
+ - `updateProject(phid, transactions)`
109
+ - **User**
110
+ - `searchUser(options?)`
111
+ - **Transaction**
112
+ - `searchTransaction(options?)`
113
+
114
+ ## Development
115
+
116
+ ### Build
117
+
118
+ To compile the TypeScript code:
119
+
120
+ ```bash
121
+ npm run build
122
+ ```
123
+
124
+ ### Test
125
+
126
+ To run the tests using Vitest:
127
+
128
+ ```bash
129
+ npm run test
130
+ ```
131
+
132
+ ## License
133
+
134
+ Apache-2.0
package/dist/client.d.ts CHANGED
@@ -1,21 +1,23 @@
1
- import { TaskSearchOptions, SearchTaskResult } from "./models/maniphest.js";
1
+ import { ManiphestSearchOptions, ManiphestTask, ManiphestStatus, ManiphestPriority } from "./models/maniphest.js";
2
2
  import { CreateObjectResult, type PHID } from "./models/phorge.js";
3
- import { SearchProjectResult, ProjectSearchOptions, ProjectEditTransaction } from "./models/project.js";
4
- import { SearchTransactionResult, TransactionSearchOptions } from "./models/transaction.js";
5
- import { SearchUserResult, UserSearchOptions } from "./models/user.js";
6
- import type { TaskTransaction } from "./models/maniphest.js";
3
+ import { Project, ProjectSearchOptions, ProjectUpdateTransaction } from "./models/project.js";
4
+ import { Transaction, TransactionSearchOptions } from "./models/transaction.js";
5
+ import { User, UserSearchOptions } from "./models/user.js";
6
+ import type { ManiphestUpdateTransaction } from "./models/maniphest.js";
7
7
  export declare class Client {
8
8
  private uri;
9
9
  private token;
10
10
  constructor(uri: string, token: string);
11
11
  private call;
12
- searchProject(options?: ProjectSearchOptions): Promise<SearchProjectResult[]>;
13
- editProject(phid: PHID<"PROJ">, transactions: ProjectEditTransaction[]): Promise<CreateObjectResult>;
14
- createProject(transactions: ProjectEditTransaction[]): Promise<CreateObjectResult>;
15
- searchTask(options?: TaskSearchOptions): Promise<SearchTaskResult[]>;
16
- createTask(transactions: TaskTransaction[]): Promise<CreateObjectResult>;
17
- updateTask(phid: PHID<"TASK">, transactions: TaskTransaction[]): Promise<CreateObjectResult>;
18
- searchUser(options?: UserSearchOptions): Promise<SearchUserResult>;
19
- searchTransaction(options?: TransactionSearchOptions): Promise<SearchTransactionResult>;
12
+ searchProject(options?: ProjectSearchOptions): Promise<Project[]>;
13
+ updateProject(phid: PHID<"PROJ">, transactions: ProjectUpdateTransaction[]): Promise<CreateObjectResult>;
14
+ createProject(transactions: ProjectUpdateTransaction[]): Promise<CreateObjectResult>;
15
+ searchManiphestPriority(): Promise<ManiphestPriority[]>;
16
+ searchManiphest(options?: ManiphestSearchOptions): Promise<ManiphestTask[]>;
17
+ createManiphest(transactions: ManiphestUpdateTransaction[]): Promise<CreateObjectResult>;
18
+ updateManiphest(phid: PHID<"TASK">, transactions: ManiphestUpdateTransaction[]): Promise<CreateObjectResult>;
19
+ searchUser(options?: UserSearchOptions): Promise<User[]>;
20
+ searchTransaction(options?: TransactionSearchOptions): Promise<Transaction[]>;
21
+ searchManiphestStatus(): Promise<ManiphestStatus[]>;
20
22
  }
21
23
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAe,kBAAkB,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIvE,OAAO,KAAK,EAAsB,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAKrG,qBAAa,MAAM;IACH,OAAO,CAAC,GAAG;IAAU,OAAO,CAAC,KAAK;gBAA1B,GAAG,EAAE,MAAM,EAAU,KAAK,EAAE,MAAM;YAExC,IAAI;IAYZ,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA0C7E,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAapG,aAAa,CAAC,YAAY,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAYlF,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA2CpE,UAAU,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAaxE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAc5F,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqClE,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAgChG"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAe,kBAAkB,EAAE,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI3D,OAAO,KAAK,EAA2B,0BAA0B,EAA2F,MAAM,uBAAuB,CAAC;AAK1L,qBAAa,MAAM;IACH,OAAO,CAAC,GAAG;IAAU,OAAO,CAAC,KAAK;gBAA1B,GAAG,EAAE,MAAM,EAAU,KAAK,EAAE,MAAM;YAExC,IAAI;IAYZ,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA0CjE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAcxG,aAAa,CAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAapF,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAavD,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA2C3E,eAAe,CAAC,YAAY,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAcxF,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAe5G,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAqCxD,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAgC7E,qBAAqB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAY5D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.e2e.test.d.ts","sourceRoot":"","sources":["../src/client.e2e.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,103 @@
1
+ import { describe, test, expect } from "vitest";
2
+ import { Client } from "./client.js";
3
+ import * as dotenv from "dotenv";
4
+ import crypto from "node:crypto";
5
+ dotenv.config();
6
+ const uri = process.env.PHORGE_URI;
7
+ const token = process.env.PHORGE_TOKEN;
8
+ describe("Client E2E", () => {
9
+ if (!uri || !token) {
10
+ test.skip("PHORGE_URI and PHORGE_TOKEN must be set for E2E tests", () => { });
11
+ return;
12
+ }
13
+ const client = new Client(uri, token);
14
+ const hash = crypto.randomBytes(4).toString("hex");
15
+ const projectName = `Test Project ${hash}`;
16
+ const taskTitle = `Test Task ${hash}`;
17
+ let projectPHID;
18
+ let taskPHID;
19
+ test("should create a project", async () => {
20
+ const result = await client.createProject([
21
+ { type: "name", value: projectName },
22
+ { type: "description", value: "E2E Test Project" }
23
+ ]);
24
+ expect(result.phid).toBeDefined();
25
+ projectPHID = result.phid;
26
+ const projects = await client.searchProject({
27
+ constraints: { phids: [projectPHID] }
28
+ });
29
+ expect(projects.length).toBe(1);
30
+ expect(projects[0].fields.name).toBe(projectName);
31
+ });
32
+ test("should update a project", async () => {
33
+ const updatedName = `${projectName} Updated`;
34
+ await client.updateProject(projectPHID, [
35
+ { type: "name", value: updatedName }
36
+ ]);
37
+ const projects = await client.searchProject({
38
+ constraints: { phids: [projectPHID] }
39
+ });
40
+ expect(projects[0].fields.name).toBe(updatedName);
41
+ });
42
+ test("should create a task", async () => {
43
+ const result = await client.createManiphest([
44
+ { type: "title", value: taskTitle },
45
+ { type: "description", value: "E2E Test Task" },
46
+ { type: "projects.add", value: [projectPHID] }
47
+ ]);
48
+ expect(result.phid).toBeDefined();
49
+ taskPHID = result.phid;
50
+ const tasks = await client.searchManiphest({
51
+ constraints: { phids: [taskPHID] },
52
+ attachments: { projects: true }
53
+ });
54
+ expect(tasks.length).toBe(1);
55
+ expect(tasks[0].fields.name).toBe(taskTitle);
56
+ expect(tasks[0].attachments.projects.projectPHIDs).toContain(projectPHID);
57
+ });
58
+ test("should update a task", async () => {
59
+ const updatedTitle = `${taskTitle} Updated`;
60
+ await client.updateManiphest(taskPHID, [
61
+ { type: "title", value: updatedTitle }
62
+ ]);
63
+ const tasks = await client.searchManiphest({
64
+ constraints: { phids: [taskPHID] }
65
+ });
66
+ expect(tasks[0].fields.name).toBe(updatedTitle);
67
+ });
68
+ test("should search users", async () => {
69
+ const users = await client.searchUser({ limit: 5 });
70
+ expect(users.length).toBeGreaterThan(0);
71
+ });
72
+ test("should search transactions", async () => {
73
+ const transactions = await client.searchTransaction({
74
+ objectIdentifier: taskPHID,
75
+ limit: 5
76
+ });
77
+ expect(transactions.length).toBeGreaterThan(0);
78
+ });
79
+ test("should search maniphest priorities", async () => {
80
+ const priorities = await client.searchManiphestPriority();
81
+ expect(priorities.length).toBeGreaterThan(0);
82
+ expect(priorities[0]).toHaveProperty("name");
83
+ expect(priorities[0]).toHaveProperty("value");
84
+ });
85
+ test("should search maniphest statuses", async () => {
86
+ const statuses = await client.searchManiphestStatus();
87
+ expect(statuses.length).toBeGreaterThan(0);
88
+ expect(statuses[0]).toHaveProperty("name");
89
+ expect(statuses[0]).toHaveProperty("value");
90
+ });
91
+ test("cleanup: close task", async () => {
92
+ if (!taskPHID)
93
+ return;
94
+ await client.updateManiphest(taskPHID, [
95
+ { type: "status", value: "closed" }
96
+ ]);
97
+ const tasks = await client.searchManiphest({
98
+ constraints: { phids: [taskPHID] }
99
+ });
100
+ expect(tasks[0].fields.status.value).toBe("closed");
101
+ });
102
+ });
103
+ //# sourceMappingURL=client.e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.e2e.test.js","sourceRoot":"","sources":["../src/client.e2e.test.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,9 +1,9 @@
1
- import { TaskSearchOptions, SearchTaskResult } from "./models/maniphest.js";
1
+ import { ManiphestSearchOptions, ManiphestTask, ManiphestStatus, ManiphestPriority } from "./models/maniphest.js";
2
2
  import { PhorgeError, CreateObjectResult } from "./models/phorge.js";
3
- import { SearchProjectResult, ProjectSearchOptions, ProjectEditTransaction } from "./models/project.js";
4
- import { SearchTransactionResult, TransactionSearchOptions } from "./models/transaction.js";
5
- import { SearchUserResult, UserSearchOptions } from "./models/user.js";
6
- import { AttachmentsObjectToParams, ConstraintObjectToParams, EditTransactionObjectToParams } from "./utils.js";
3
+ import { Project, ProjectSearchOptions, ProjectUpdateTransaction } from "./models/project.js";
4
+ import { Transaction, TransactionSearchOptions } from "./models/transaction.js";
5
+ import { User, UserSearchOptions } from "./models/user.js";
6
+ import { AttachmentsObjectToParams, ConstraintObjectToParams, UpdateTransactionObjectToParams } from "./utils.js";
7
7
  export class Client {
8
8
  uri;
9
9
  token;
@@ -28,10 +28,10 @@ export class Client {
28
28
  params.append("queryKey", options.queryKey);
29
29
  }
30
30
  if (options.constraints !== undefined) {
31
- params = new URLSearchParams([...params, ...ConstraintObjectToParams(options.constraints)]);
31
+ ConstraintObjectToParams(options.constraints, params);
32
32
  }
33
33
  if (options.attachments !== undefined && options.attachments !== null) {
34
- params = new URLSearchParams([...params, ...AttachmentsObjectToParams(options.attachments)]);
34
+ AttachmentsObjectToParams(options.attachments, params);
35
35
  }
36
36
  if (options.order !== undefined) {
37
37
  params.append("order", options.order);
@@ -55,8 +55,9 @@ export class Client {
55
55
  return resp.result.data;
56
56
  }
57
57
  }
58
- async editProject(phid, transactions) {
59
- let params = EditTransactionObjectToParams(transactions);
58
+ async updateProject(phid, transactions) {
59
+ let params = new URLSearchParams();
60
+ UpdateTransactionObjectToParams(transactions, params);
60
61
  params.append("objectIdentifier", phid);
61
62
  params.append("api.token", this.token);
62
63
  const resp = await this.call("project.edit", params);
@@ -68,7 +69,8 @@ export class Client {
68
69
  }
69
70
  }
70
71
  async createProject(transactions) {
71
- let params = EditTransactionObjectToParams(transactions);
72
+ let params = new URLSearchParams();
73
+ UpdateTransactionObjectToParams(transactions, params);
72
74
  params.append("api.token", this.token);
73
75
  const resp = await this.call("project.edit", params);
74
76
  if (resp.error_code !== null) {
@@ -78,17 +80,28 @@ export class Client {
78
80
  return resp.result.object;
79
81
  }
80
82
  }
81
- async searchTask(options) {
83
+ async searchManiphestPriority() {
84
+ let params = new URLSearchParams();
85
+ params.append("api.token", this.token);
86
+ const resp = await this.call("maniphest.priority.search", params);
87
+ if (resp.error_code !== null) {
88
+ throw new PhorgeError(resp.error_code, resp.error_info);
89
+ }
90
+ else {
91
+ return resp.result.data;
92
+ }
93
+ }
94
+ async searchManiphest(options) {
82
95
  let params = new URLSearchParams();
83
96
  if (options !== undefined) {
84
97
  if (options.queryKey) {
85
98
  params.append("queryKey", options.queryKey);
86
99
  }
87
100
  if (options.constraints !== undefined) {
88
- params = new URLSearchParams([...params, ...ConstraintObjectToParams(options.constraints)]);
101
+ ConstraintObjectToParams(options.constraints, params);
89
102
  }
90
103
  if (options.attachments !== undefined) {
91
- params = new URLSearchParams([...params, ...AttachmentsObjectToParams(options.attachments)]);
104
+ AttachmentsObjectToParams(options.attachments, params);
92
105
  }
93
106
  if (options.order !== undefined) {
94
107
  params.append("order", options.order);
@@ -112,8 +125,9 @@ export class Client {
112
125
  return resp.result.data;
113
126
  }
114
127
  }
115
- async createTask(transactions) {
116
- let params = EditTransactionObjectToParams(transactions);
128
+ async createManiphest(transactions) {
129
+ let params = new URLSearchParams();
130
+ UpdateTransactionObjectToParams(transactions, params);
117
131
  params.append("api.token", this.token);
118
132
  const resp = await this.call("maniphest.edit", params);
119
133
  if (resp.error_code !== null) {
@@ -123,8 +137,9 @@ export class Client {
123
137
  return resp.result.object;
124
138
  }
125
139
  }
126
- async updateTask(phid, transactions) {
127
- let params = EditTransactionObjectToParams(transactions);
140
+ async updateManiphest(phid, transactions) {
141
+ let params = new URLSearchParams();
142
+ UpdateTransactionObjectToParams(transactions, params);
128
143
  params.append("objectIdentifier", phid);
129
144
  params.append("api.token", this.token);
130
145
  const resp = await this.call("maniphest.edit", params);
@@ -143,10 +158,10 @@ export class Client {
143
158
  params.append("queryKey", options.queryKey);
144
159
  }
145
160
  if (options.constraints !== undefined) {
146
- params = new URLSearchParams([...params, ...ConstraintObjectToParams(options.constraints)]);
161
+ ConstraintObjectToParams(options.constraints, params);
147
162
  }
148
163
  if (options.attachments) {
149
- params = new URLSearchParams([...params, ...AttachmentsObjectToParams(options.attachments)]);
164
+ AttachmentsObjectToParams(options.attachments, params);
150
165
  }
151
166
  if (options.order) {
152
167
  // TODO: Implement order type
@@ -167,7 +182,7 @@ export class Client {
167
182
  throw new PhorgeError(resp.error_code, resp.error_info);
168
183
  }
169
184
  else {
170
- return SearchUserResult.parse(resp.result.data);
185
+ return resp.result.data;
171
186
  }
172
187
  }
173
188
  async searchTransaction(options) {
@@ -181,7 +196,7 @@ export class Client {
181
196
  params.append("objectType", options.objectType);
182
197
  }
183
198
  if (options.constraints !== undefined) {
184
- params = new URLSearchParams([...params, ...ConstraintObjectToParams(options.constraints)]);
199
+ ConstraintObjectToParams(options.constraints, params);
185
200
  }
186
201
  if (options.before) {
187
202
  params.append("before", options.before.toString());
@@ -198,8 +213,18 @@ export class Client {
198
213
  throw new PhorgeError(resp.error_code, resp.error_info);
199
214
  }
200
215
  else {
201
- console.log(resp.result.data);
202
- return SearchTransactionResult.parse(resp.result.data);
216
+ return resp.result.data;
217
+ }
218
+ }
219
+ async searchManiphestStatus() {
220
+ let params = new URLSearchParams();
221
+ params.append("api.token", this.token);
222
+ const resp = await this.call("maniphest.status.search", params);
223
+ if (resp.error_code !== null) {
224
+ throw new PhorgeError(resp.error_code, resp.error_info);
225
+ }
226
+ else {
227
+ return resp.result.data;
203
228
  }
204
229
  }
205
230
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}