@critical-path/client 0.1.3 → 0.1.5
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.
- package/CHANGELOG.md +14 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
- package/src/index.ts +108 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @critical-path/client
|
|
2
2
|
|
|
3
|
+
## 0.1.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [4b92228]
|
|
8
|
+
- @critical-path/core@0.3.0
|
|
9
|
+
|
|
10
|
+
## 0.1.4
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [df22aad]
|
|
15
|
+
- @critical-path/core@0.2.1
|
|
16
|
+
|
|
3
17
|
## 0.1.3
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Project, Task, Activity, Comment, TimeEntry } from '@critical-path/core';
|
|
1
|
+
import type { Project, Task, TaskDependencyGraph, Team, TaskContainer, Iteration, Activity, Comment, TimeEntry } from '@critical-path/core';
|
|
2
2
|
export interface ClientOptions {
|
|
3
3
|
baseUrl: string;
|
|
4
4
|
headers?: Record<string, string>;
|
|
@@ -18,6 +18,20 @@ export declare class CriticalPathClient {
|
|
|
18
18
|
createTask(data: Omit<Task, 'id' | 'createdAt' | 'updatedAt'>): Promise<Task>;
|
|
19
19
|
updateTask(id: string, updates: Partial<Task>): Promise<Task>;
|
|
20
20
|
deleteTask(id: string): Promise<boolean>;
|
|
21
|
+
getTaskDependencies(taskId: string): Promise<TaskDependencyGraph>;
|
|
22
|
+
getTeams(): Promise<Team[]>;
|
|
23
|
+
getTeam(id: string): Promise<Team>;
|
|
24
|
+
createTeam(data: Omit<Team, 'id' | 'createdAt' | 'updatedAt'>): Promise<Team>;
|
|
25
|
+
updateTeam(id: string, updates: Partial<Team>): Promise<Team>;
|
|
26
|
+
deleteTeam(id: string): Promise<boolean>;
|
|
27
|
+
getContainers(projectId: string): Promise<TaskContainer[]>;
|
|
28
|
+
createContainer(data: Omit<TaskContainer, 'id' | 'createdAt' | 'updatedAt'>): Promise<TaskContainer>;
|
|
29
|
+
updateContainer(id: string, updates: Partial<TaskContainer>): Promise<TaskContainer>;
|
|
30
|
+
deleteContainer(id: string): Promise<boolean>;
|
|
31
|
+
getIterations(projectId: string): Promise<Iteration[]>;
|
|
32
|
+
createIteration(data: Omit<Iteration, 'id' | 'createdAt'>): Promise<Iteration>;
|
|
33
|
+
updateIteration(id: string, updates: Partial<Iteration>): Promise<Iteration>;
|
|
34
|
+
deleteIteration(id: string): Promise<boolean>;
|
|
21
35
|
getActivities(filter?: {
|
|
22
36
|
projectId?: string;
|
|
23
37
|
taskId?: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,mBAAmB,EACnB,IAAI,EACJ,aAAa,EACb,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACV,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,WAAW,CAAe;gBAEtB,OAAO,EAAE,aAAa;YAMpB,OAAO;IA0Bf,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAKjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAStF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAM7C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOxC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMjE,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAK3B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQxC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK1D,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAQpG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAQpF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKtD,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ9E,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ5E,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7C,aAAa,CAAC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUpF,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK/C,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IASnF,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;CAO5E"}
|
package/dist/index.js
CHANGED
|
@@ -77,6 +77,89 @@ export class CriticalPathClient {
|
|
|
77
77
|
});
|
|
78
78
|
return res.success;
|
|
79
79
|
}
|
|
80
|
+
async getTaskDependencies(taskId) {
|
|
81
|
+
const res = await this.request(`/tasks/${encodeURIComponent(taskId)}/dependencies`);
|
|
82
|
+
return res.graph;
|
|
83
|
+
}
|
|
84
|
+
// Teams
|
|
85
|
+
async getTeams() {
|
|
86
|
+
const res = await this.request('/teams');
|
|
87
|
+
return res.teams;
|
|
88
|
+
}
|
|
89
|
+
async getTeam(id) {
|
|
90
|
+
const res = await this.request(`/teams/${id}`);
|
|
91
|
+
return res.team;
|
|
92
|
+
}
|
|
93
|
+
async createTeam(data) {
|
|
94
|
+
const res = await this.request('/teams', {
|
|
95
|
+
method: 'POST',
|
|
96
|
+
body: JSON.stringify(data)
|
|
97
|
+
});
|
|
98
|
+
return res.team;
|
|
99
|
+
}
|
|
100
|
+
async updateTeam(id, updates) {
|
|
101
|
+
const res = await this.request(`/teams/${id}`, {
|
|
102
|
+
method: 'PATCH',
|
|
103
|
+
body: JSON.stringify(updates)
|
|
104
|
+
});
|
|
105
|
+
return res.team;
|
|
106
|
+
}
|
|
107
|
+
async deleteTeam(id) {
|
|
108
|
+
const res = await this.request(`/teams/${id}`, {
|
|
109
|
+
method: 'DELETE'
|
|
110
|
+
});
|
|
111
|
+
return res.success;
|
|
112
|
+
}
|
|
113
|
+
// Containers
|
|
114
|
+
async getContainers(projectId) {
|
|
115
|
+
const res = await this.request(`/containers?projectId=${encodeURIComponent(projectId)}`);
|
|
116
|
+
return res.containers;
|
|
117
|
+
}
|
|
118
|
+
async createContainer(data) {
|
|
119
|
+
const res = await this.request('/containers', {
|
|
120
|
+
method: 'POST',
|
|
121
|
+
body: JSON.stringify(data)
|
|
122
|
+
});
|
|
123
|
+
return res.container;
|
|
124
|
+
}
|
|
125
|
+
async updateContainer(id, updates) {
|
|
126
|
+
const res = await this.request(`/containers/${id}`, {
|
|
127
|
+
method: 'PATCH',
|
|
128
|
+
body: JSON.stringify(updates)
|
|
129
|
+
});
|
|
130
|
+
return res.container;
|
|
131
|
+
}
|
|
132
|
+
async deleteContainer(id) {
|
|
133
|
+
const res = await this.request(`/containers/${id}`, {
|
|
134
|
+
method: 'DELETE'
|
|
135
|
+
});
|
|
136
|
+
return res.success;
|
|
137
|
+
}
|
|
138
|
+
// Iterations
|
|
139
|
+
async getIterations(projectId) {
|
|
140
|
+
const res = await this.request(`/iterations?projectId=${encodeURIComponent(projectId)}`);
|
|
141
|
+
return res.iterations;
|
|
142
|
+
}
|
|
143
|
+
async createIteration(data) {
|
|
144
|
+
const res = await this.request('/iterations', {
|
|
145
|
+
method: 'POST',
|
|
146
|
+
body: JSON.stringify(data)
|
|
147
|
+
});
|
|
148
|
+
return res.iteration;
|
|
149
|
+
}
|
|
150
|
+
async updateIteration(id, updates) {
|
|
151
|
+
const res = await this.request(`/iterations/${id}`, {
|
|
152
|
+
method: 'PATCH',
|
|
153
|
+
body: JSON.stringify(updates)
|
|
154
|
+
});
|
|
155
|
+
return res.iteration;
|
|
156
|
+
}
|
|
157
|
+
async deleteIteration(id) {
|
|
158
|
+
const res = await this.request(`/iterations/${id}`, {
|
|
159
|
+
method: 'DELETE'
|
|
160
|
+
});
|
|
161
|
+
return res.success;
|
|
162
|
+
}
|
|
80
163
|
// Activity Stream
|
|
81
164
|
async getActivities(filter) {
|
|
82
165
|
const params = new URLSearchParams();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@critical-path/client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Type-safe JavaScript/TypeScript client SDK for consuming Critical Path API endpoints",
|
|
5
5
|
"author": "Jack James",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/Pixerate/critical-path.git"
|
|
10
|
+
},
|
|
7
11
|
"type": "module",
|
|
8
12
|
"main": "./dist/index.js",
|
|
9
13
|
"types": "./dist/index.d.ts",
|
|
@@ -14,7 +18,7 @@
|
|
|
14
18
|
}
|
|
15
19
|
},
|
|
16
20
|
"dependencies": {
|
|
17
|
-
"@critical-path/core": "0.
|
|
21
|
+
"@critical-path/core": "0.3.0"
|
|
18
22
|
},
|
|
19
23
|
"devDependencies": {
|
|
20
24
|
"@types/node": "^24.0.0",
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
Project,
|
|
3
|
+
Task,
|
|
4
|
+
TaskDependencyGraph,
|
|
5
|
+
Team,
|
|
6
|
+
TaskContainer,
|
|
7
|
+
Iteration,
|
|
8
|
+
Activity,
|
|
9
|
+
Comment,
|
|
10
|
+
TimeEntry
|
|
11
|
+
} from '@critical-path/core';
|
|
2
12
|
|
|
3
13
|
export interface ClientOptions {
|
|
4
14
|
baseUrl: string; // e.g. "http://localhost:3000/api/critical-path"
|
|
@@ -96,6 +106,103 @@ export class CriticalPathClient {
|
|
|
96
106
|
return res.success;
|
|
97
107
|
}
|
|
98
108
|
|
|
109
|
+
async getTaskDependencies(taskId: string): Promise<TaskDependencyGraph> {
|
|
110
|
+
const res = await this.request<{ graph: TaskDependencyGraph }>(`/tasks/${encodeURIComponent(taskId)}/dependencies`);
|
|
111
|
+
return res.graph;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Teams
|
|
115
|
+
async getTeams(): Promise<Team[]> {
|
|
116
|
+
const res = await this.request<{ teams: Team[] }>('/teams');
|
|
117
|
+
return res.teams;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async getTeam(id: string): Promise<Team> {
|
|
121
|
+
const res = await this.request<{ team: Team }>(`/teams/${id}`);
|
|
122
|
+
return res.team;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
async createTeam(data: Omit<Team, 'id' | 'createdAt' | 'updatedAt'>): Promise<Team> {
|
|
126
|
+
const res = await this.request<{ team: Team }>('/teams', {
|
|
127
|
+
method: 'POST',
|
|
128
|
+
body: JSON.stringify(data)
|
|
129
|
+
});
|
|
130
|
+
return res.team;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
async updateTeam(id: string, updates: Partial<Team>): Promise<Team> {
|
|
134
|
+
const res = await this.request<{ team: Team }>(`/teams/${id}`, {
|
|
135
|
+
method: 'PATCH',
|
|
136
|
+
body: JSON.stringify(updates)
|
|
137
|
+
});
|
|
138
|
+
return res.team;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
async deleteTeam(id: string): Promise<boolean> {
|
|
142
|
+
const res = await this.request<{ success: boolean }>(`/teams/${id}`, {
|
|
143
|
+
method: 'DELETE'
|
|
144
|
+
});
|
|
145
|
+
return res.success;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Containers
|
|
149
|
+
async getContainers(projectId: string): Promise<TaskContainer[]> {
|
|
150
|
+
const res = await this.request<{ containers: TaskContainer[] }>(`/containers?projectId=${encodeURIComponent(projectId)}`);
|
|
151
|
+
return res.containers;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async createContainer(data: Omit<TaskContainer, 'id' | 'createdAt' | 'updatedAt'>): Promise<TaskContainer> {
|
|
155
|
+
const res = await this.request<{ container: TaskContainer }>('/containers', {
|
|
156
|
+
method: 'POST',
|
|
157
|
+
body: JSON.stringify(data)
|
|
158
|
+
});
|
|
159
|
+
return res.container;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
async updateContainer(id: string, updates: Partial<TaskContainer>): Promise<TaskContainer> {
|
|
163
|
+
const res = await this.request<{ container: TaskContainer }>(`/containers/${id}`, {
|
|
164
|
+
method: 'PATCH',
|
|
165
|
+
body: JSON.stringify(updates)
|
|
166
|
+
});
|
|
167
|
+
return res.container;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
async deleteContainer(id: string): Promise<boolean> {
|
|
171
|
+
const res = await this.request<{ success: boolean }>(`/containers/${id}`, {
|
|
172
|
+
method: 'DELETE'
|
|
173
|
+
});
|
|
174
|
+
return res.success;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Iterations
|
|
178
|
+
async getIterations(projectId: string): Promise<Iteration[]> {
|
|
179
|
+
const res = await this.request<{ iterations: Iteration[] }>(`/iterations?projectId=${encodeURIComponent(projectId)}`);
|
|
180
|
+
return res.iterations;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
async createIteration(data: Omit<Iteration, 'id' | 'createdAt'>): Promise<Iteration> {
|
|
184
|
+
const res = await this.request<{ iteration: Iteration }>('/iterations', {
|
|
185
|
+
method: 'POST',
|
|
186
|
+
body: JSON.stringify(data)
|
|
187
|
+
});
|
|
188
|
+
return res.iteration;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
async updateIteration(id: string, updates: Partial<Iteration>): Promise<Iteration> {
|
|
192
|
+
const res = await this.request<{ iteration: Iteration }>(`/iterations/${id}`, {
|
|
193
|
+
method: 'PATCH',
|
|
194
|
+
body: JSON.stringify(updates)
|
|
195
|
+
});
|
|
196
|
+
return res.iteration;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
async deleteIteration(id: string): Promise<boolean> {
|
|
200
|
+
const res = await this.request<{ success: boolean }>(`/iterations/${id}`, {
|
|
201
|
+
method: 'DELETE'
|
|
202
|
+
});
|
|
203
|
+
return res.success;
|
|
204
|
+
}
|
|
205
|
+
|
|
99
206
|
// Activity Stream
|
|
100
207
|
async getActivities(filter?: { projectId?: string; taskId?: string }): Promise<Activity[]> {
|
|
101
208
|
const params = new URLSearchParams();
|