weave-typescript 0.13.0 → 0.15.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 (121) hide show
  1. package/dist/index.d.ts +9 -16
  2. package/dist/index.js +13 -21
  3. package/dist/weaveapi/project/v1/project.pb.d.ts +69 -5
  4. package/dist/weaveapi/project/v1/project.pb.js +787 -62
  5. package/dist/weaveapi/project/v1/service.pb.d.ts +110 -69
  6. package/dist/weaveapi/project/v1/service.pb.js +1056 -392
  7. package/dist/weaveapi/task/v1/service.pb.d.ts +172 -0
  8. package/dist/weaveapi/task/v1/service.pb.js +1436 -0
  9. package/dist/weaveapi/task/v1/task.pb.d.ts +85 -0
  10. package/dist/weaveapi/task/v1/task.pb.js +802 -0
  11. package/dist/weavesql/atcdb/event_sql.d.ts +10 -0
  12. package/dist/weavesql/atcdb/event_sql.js +11 -1
  13. package/dist/weavesql/atcdb/mailbox_sql.d.ts +2 -2
  14. package/dist/weavesql/atcdb/mailbox_sql.js +1 -1
  15. package/dist/weavesql/weavedb/project_sql.d.ts +164 -41
  16. package/dist/weavesql/weavedb/project_sql.js +398 -103
  17. package/dist/weavesql/weavedb/task_sql.d.ts +210 -0
  18. package/dist/weavesql/weavedb/task_sql.js +430 -0
  19. package/package.json +2 -2
  20. package/dist/weaveapi/auth/v1/service.pb.d.ts +0 -709
  21. package/dist/weaveapi/auth/v1/service.pb.js +0 -5058
  22. package/dist/weaveapi/auth/v1/session.pb.d.ts +0 -43
  23. package/dist/weaveapi/auth/v1/session.pb.js +0 -308
  24. package/dist/weaveapi/auth/v1/usage.pb.d.ts +0 -76
  25. package/dist/weaveapi/auth/v1/usage.pb.js +0 -849
  26. package/dist/weaveapi/auth/v1/user.pb.d.ts +0 -141
  27. package/dist/weaveapi/auth/v1/user.pb.js +0 -1625
  28. package/dist/weaveapi/data/v1/data.pb.d.ts +0 -54
  29. package/dist/weaveapi/data/v1/data.pb.js +0 -411
  30. package/dist/weaveapi/data/v1/service.pb.d.ts +0 -296
  31. package/dist/weaveapi/data/v1/service.pb.js +0 -2777
  32. package/dist/weaveapi/generate/v1/configuration.pb.d.ts +0 -122
  33. package/dist/weaveapi/generate/v1/configuration.pb.js +0 -877
  34. package/dist/weaveapi/generate/v1/generate.pb.d.ts +0 -48
  35. package/dist/weaveapi/generate/v1/generate.pb.js +0 -367
  36. package/dist/weaveapi/generate/v1/service.pb.d.ts +0 -173
  37. package/dist/weaveapi/generate/v1/service.pb.js +0 -1207
  38. package/dist/weaveapi/input/v1/input.pb.d.ts +0 -77
  39. package/dist/weaveapi/input/v1/input.pb.js +0 -632
  40. package/dist/weaveapi/input/v1/service.pb.d.ts +0 -390
  41. package/dist/weaveapi/input/v1/service.pb.js +0 -3610
  42. package/dist/weaveapi/integration/v1/integration.pb.d.ts +0 -67
  43. package/dist/weaveapi/integration/v1/integration.pb.js +0 -486
  44. package/dist/weaveapi/integration/v1/service.pb.d.ts +0 -318
  45. package/dist/weaveapi/integration/v1/service.pb.js +0 -2992
  46. package/dist/weaveapi/llmx/v1/architecture.pb.d.ts +0 -665
  47. package/dist/weaveapi/llmx/v1/architecture.pb.js +0 -3028
  48. package/dist/weaveapi/llmx/v1/capabilities.pb.d.ts +0 -709
  49. package/dist/weaveapi/llmx/v1/capabilities.pb.js +0 -3458
  50. package/dist/weaveapi/llmx/v1/model.pb.d.ts +0 -375
  51. package/dist/weaveapi/llmx/v1/model.pb.js +0 -1472
  52. package/dist/weaveapi/llmx/v1/pricing.pb.d.ts +0 -340
  53. package/dist/weaveapi/llmx/v1/pricing.pb.js +0 -974
  54. package/dist/weaveapi/llmx/v1/provider.pb.d.ts +0 -72
  55. package/dist/weaveapi/llmx/v1/provider.pb.js +0 -218
  56. package/dist/weaveapi/llmx/v1/service.pb.d.ts +0 -683
  57. package/dist/weaveapi/llmx/v1/service.pb.js +0 -5311
  58. package/dist/weaveapi/mcpregistry/v1/server.pb.d.ts +0 -54
  59. package/dist/weaveapi/mcpregistry/v1/server.pb.js +0 -436
  60. package/dist/weaveapi/mcpregistry/v1/service.pb.d.ts +0 -171
  61. package/dist/weaveapi/mcpregistry/v1/service.pb.js +0 -963
  62. package/dist/weaveapi/payment/v1/invoice.pb.d.ts +0 -92
  63. package/dist/weaveapi/payment/v1/invoice.pb.js +0 -998
  64. package/dist/weaveapi/payment/v1/service.pb.d.ts +0 -662
  65. package/dist/weaveapi/payment/v1/service.pb.js +0 -5395
  66. package/dist/weaveapi/payment/v1/subscription.pb.d.ts +0 -165
  67. package/dist/weaveapi/payment/v1/subscription.pb.js +0 -1930
  68. package/dist/weaveapi/report/v1/report.pb.d.ts +0 -81
  69. package/dist/weaveapi/report/v1/report.pb.js +0 -678
  70. package/dist/weaveapi/report/v1/service.pb.d.ts +0 -194
  71. package/dist/weaveapi/report/v1/service.pb.js +0 -1923
  72. package/dist/weaveapi/requirement/v1/requirement.pb.d.ts +0 -70
  73. package/dist/weaveapi/requirement/v1/requirement.pb.js +0 -570
  74. package/dist/weaveapi/requirement/v1/service.pb.d.ts +0 -390
  75. package/dist/weaveapi/requirement/v1/service.pb.js +0 -3636
  76. package/dist/weaveapi/run/v1/run.pb.d.ts +0 -117
  77. package/dist/weaveapi/run/v1/run.pb.js +0 -1155
  78. package/dist/weaveapi/run/v1/service.pb.d.ts +0 -229
  79. package/dist/weaveapi/run/v1/service.pb.js +0 -2426
  80. package/dist/weaveapi/script/v1/script.pb.d.ts +0 -102
  81. package/dist/weaveapi/script/v1/script.pb.js +0 -1025
  82. package/dist/weaveapi/script/v1/service.pb.d.ts +0 -502
  83. package/dist/weaveapi/script/v1/service.pb.js +0 -4871
  84. package/dist/weaveapi/storage/v1/auth.pb.d.ts +0 -27
  85. package/dist/weaveapi/storage/v1/auth.pb.js +0 -110
  86. package/dist/weaveapi/storage/v1/nosql_database.pb.d.ts +0 -91
  87. package/dist/weaveapi/storage/v1/nosql_database.pb.js +0 -1056
  88. package/dist/weaveapi/storage/v1/object_store.pb.d.ts +0 -49
  89. package/dist/weaveapi/storage/v1/object_store.pb.js +0 -441
  90. package/dist/weaveapi/storage/v1/service.pb.d.ts +0 -245
  91. package/dist/weaveapi/storage/v1/service.pb.js +0 -1339
  92. package/dist/weaveapi/storage/v1/sql_database.pb.d.ts +0 -98
  93. package/dist/weaveapi/storage/v1/sql_database.pb.js +0 -1184
  94. package/dist/weaveapi/storage/v1/storage.pb.d.ts +0 -35
  95. package/dist/weaveapi/storage/v1/storage.pb.js +0 -198
  96. package/dist/weaveapi/storage/v1/vcs.pb.d.ts +0 -75
  97. package/dist/weaveapi/storage/v1/vcs.pb.js +0 -864
  98. package/dist/weaveapi/suite/v1/service.pb.d.ts +0 -539
  99. package/dist/weaveapi/suite/v1/service.pb.js +0 -5279
  100. package/dist/weaveapi/suite/v1/suite.pb.d.ts +0 -92
  101. package/dist/weaveapi/suite/v1/suite.pb.js +0 -876
  102. package/dist/weaveapi/synthesize/v1/dataset.pb.d.ts +0 -68
  103. package/dist/weaveapi/synthesize/v1/dataset.pb.js +0 -460
  104. package/dist/weaveapi/synthesize/v1/inline_data.pb.d.ts +0 -45
  105. package/dist/weaveapi/synthesize/v1/inline_data.pb.js +0 -166
  106. package/dist/weaveapi/synthesize/v1/relationship.pb.d.ts +0 -58
  107. package/dist/weaveapi/synthesize/v1/relationship.pb.js +0 -253
  108. package/dist/weaveapi/synthesize/v1/service.pb.d.ts +0 -144
  109. package/dist/weaveapi/synthesize/v1/service.pb.js +0 -937
  110. package/dist/weaveapi/synthesize/v1/training.pb.d.ts +0 -58
  111. package/dist/weaveapi/synthesize/v1/training.pb.js +0 -386
  112. package/dist/weaveapi/testcase/v1/service.pb.d.ts +0 -498
  113. package/dist/weaveapi/testcase/v1/service.pb.js +0 -4728
  114. package/dist/weaveapi/testcase/v1/testcase.pb.d.ts +0 -91
  115. package/dist/weaveapi/testcase/v1/testcase.pb.js +0 -794
  116. package/dist/weaveapi/workflow/v1/service.pb.d.ts +0 -261
  117. package/dist/weaveapi/workflow/v1/service.pb.js +0 -2120
  118. package/dist/weaveapi/workflow/v1/workflow.pb.d.ts +0 -77
  119. package/dist/weaveapi/workflow/v1/workflow.pb.js +0 -555
  120. package/dist/weaveapi/workflowdata/v1/service.pb.d.ts +0 -295
  121. package/dist/weaveapi/workflowdata/v1/service.pb.js +0 -2612
@@ -1,35 +1,75 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteProjectQuery = exports.archiveProjectQuery = exports.updateProjectQuery = exports.listProjectsByOrganizationQuery = exports.getProjectBySlugQuery = exports.getProjectQuery = exports.createProjectQuery = void 0;
3
+ exports.createProjectActivityQuery = exports.listProjectActivityQuery = exports.listProjectPermissionsQuery = exports.updateProjectLifecycleByIDQuery = exports.updateProjectBySlugQuery = exports.listProjectsQuery = exports.getProjectBySlugQuery = exports.getProjectByIDQuery = exports.createProjectQuery = void 0;
4
4
  exports.createProject = createProject;
5
- exports.getProject = getProject;
5
+ exports.getProjectByID = getProjectByID;
6
6
  exports.getProjectBySlug = getProjectBySlug;
7
- exports.listProjectsByOrganization = listProjectsByOrganization;
8
- exports.updateProject = updateProject;
9
- exports.archiveProject = archiveProject;
10
- exports.deleteProject = deleteProject;
7
+ exports.listProjects = listProjects;
8
+ exports.updateProjectBySlug = updateProjectBySlug;
9
+ exports.updateProjectLifecycleByID = updateProjectLifecycleByID;
10
+ exports.listProjectPermissions = listProjectPermissions;
11
+ exports.listProjectActivity = listProjectActivity;
12
+ exports.createProjectActivity = createProjectActivity;
11
13
  exports.createProjectQuery = `-- name: CreateProject :one
12
- INSERT INTO weave_v1.project (
14
+ INSERT INTO weave.projects (
13
15
  id,
14
16
  organization_id,
15
- name,
16
17
  slug,
18
+ name,
19
+ summary,
17
20
  description,
18
- status
19
- )
20
- VALUES (
21
+ status,
22
+ owner_user_id,
23
+ creator_user_id,
24
+ workspace_id,
25
+ git_repository,
26
+ start_date,
27
+ target_date,
28
+ source_system,
29
+ source_id,
30
+ source_metadata
31
+ ) VALUES (
21
32
  $1,
22
33
  $2,
23
34
  $3,
24
35
  $4,
25
36
  $5,
26
- $6
37
+ $6,
38
+ $7,
39
+ $8,
40
+ $9,
41
+ $10,
42
+ $11,
43
+ $12,
44
+ $13,
45
+ $14,
46
+ $15,
47
+ $16
27
48
  )
28
- RETURNING id, organization_id, name, slug, description, status, created_at, updated_at, archived_at`;
49
+ RETURNING
50
+ id,
51
+ organization_id,
52
+ slug,
53
+ name,
54
+ summary,
55
+ description,
56
+ status,
57
+ owner_user_id,
58
+ creator_user_id,
59
+ workspace_id,
60
+ git_repository,
61
+ start_date,
62
+ target_date,
63
+ source_system,
64
+ source_id,
65
+ source_metadata,
66
+ created_at,
67
+ updated_at,
68
+ first_task_started_at`;
29
69
  async function createProject(client, args) {
30
70
  const result = await client.query({
31
71
  text: exports.createProjectQuery,
32
- values: [args.id, args.organizationId, args.name, args.slug, args.description, args.status],
72
+ values: [args.id, args.organizationId, args.slug, args.name, args.summary, args.description, args.status, args.ownerUserId, args.creatorUserId, args.workspaceId, args.gitRepository, args.startDate, args.targetDate, args.sourceSystem, args.sourceId, args.sourceMetadata],
33
73
  rowMode: "array"
34
74
  });
35
75
  if (result.rows.length !== 1) {
@@ -39,23 +79,53 @@ async function createProject(client, args) {
39
79
  return {
40
80
  id: row[0],
41
81
  organizationId: row[1],
42
- name: row[2],
43
- slug: row[3],
44
- description: row[4],
45
- status: row[5],
46
- createdAt: row[6],
47
- updatedAt: row[7],
48
- archivedAt: row[8]
82
+ slug: row[2],
83
+ name: row[3],
84
+ summary: row[4],
85
+ description: row[5],
86
+ status: row[6],
87
+ ownerUserId: row[7],
88
+ creatorUserId: row[8],
89
+ workspaceId: row[9],
90
+ gitRepository: row[10],
91
+ startDate: row[11],
92
+ targetDate: row[12],
93
+ sourceSystem: row[13],
94
+ sourceId: row[14],
95
+ sourceMetadata: row[15],
96
+ createdAt: row[16],
97
+ updatedAt: row[17],
98
+ firstTaskStartedAt: row[18]
49
99
  };
50
100
  }
51
- exports.getProjectQuery = `-- name: GetProject :one
52
- SELECT id, organization_id, name, slug, description, status, created_at, updated_at, archived_at
53
- FROM weave_v1.project
54
- WHERE id = $1`;
55
- async function getProject(client, args) {
101
+ exports.getProjectByIDQuery = `-- name: GetProjectByID :one
102
+ SELECT
103
+ id,
104
+ organization_id,
105
+ slug,
106
+ name,
107
+ summary,
108
+ description,
109
+ status,
110
+ owner_user_id,
111
+ creator_user_id,
112
+ workspace_id,
113
+ git_repository,
114
+ start_date,
115
+ target_date,
116
+ source_system,
117
+ source_id,
118
+ source_metadata,
119
+ created_at,
120
+ updated_at,
121
+ first_task_started_at
122
+ FROM weave.projects
123
+ WHERE organization_id = $1
124
+ AND id = $2`;
125
+ async function getProjectByID(client, args) {
56
126
  const result = await client.query({
57
- text: exports.getProjectQuery,
58
- values: [args.id],
127
+ text: exports.getProjectByIDQuery,
128
+ values: [args.organizationId, args.id],
59
129
  rowMode: "array"
60
130
  });
61
131
  if (result.rows.length !== 1) {
@@ -65,24 +135,53 @@ async function getProject(client, args) {
65
135
  return {
66
136
  id: row[0],
67
137
  organizationId: row[1],
68
- name: row[2],
69
- slug: row[3],
70
- description: row[4],
71
- status: row[5],
72
- createdAt: row[6],
73
- updatedAt: row[7],
74
- archivedAt: row[8]
138
+ slug: row[2],
139
+ name: row[3],
140
+ summary: row[4],
141
+ description: row[5],
142
+ status: row[6],
143
+ ownerUserId: row[7],
144
+ creatorUserId: row[8],
145
+ workspaceId: row[9],
146
+ gitRepository: row[10],
147
+ startDate: row[11],
148
+ targetDate: row[12],
149
+ sourceSystem: row[13],
150
+ sourceId: row[14],
151
+ sourceMetadata: row[15],
152
+ createdAt: row[16],
153
+ updatedAt: row[17],
154
+ firstTaskStartedAt: row[18]
75
155
  };
76
156
  }
77
157
  exports.getProjectBySlugQuery = `-- name: GetProjectBySlug :one
78
- SELECT id, organization_id, name, slug, description, status, created_at, updated_at, archived_at
79
- FROM weave_v1.project
158
+ SELECT
159
+ id,
160
+ organization_id,
161
+ slug,
162
+ name,
163
+ summary,
164
+ description,
165
+ status,
166
+ owner_user_id,
167
+ creator_user_id,
168
+ workspace_id,
169
+ git_repository,
170
+ start_date,
171
+ target_date,
172
+ source_system,
173
+ source_id,
174
+ source_metadata,
175
+ created_at,
176
+ updated_at,
177
+ first_task_started_at
178
+ FROM weave.projects
80
179
  WHERE organization_id = $1
81
180
  AND slug = $2`;
82
181
  async function getProjectBySlug(client, args) {
83
182
  const result = await client.query({
84
183
  text: exports.getProjectBySlugQuery,
85
- values: [args.organizationId, args.slug],
184
+ values: [args.organizationId, args.projectSlug],
86
185
  rowMode: "array"
87
186
  });
88
187
  if (result.rows.length !== 1) {
@@ -92,56 +191,120 @@ async function getProjectBySlug(client, args) {
92
191
  return {
93
192
  id: row[0],
94
193
  organizationId: row[1],
95
- name: row[2],
96
- slug: row[3],
97
- description: row[4],
98
- status: row[5],
99
- createdAt: row[6],
100
- updatedAt: row[7],
101
- archivedAt: row[8]
194
+ slug: row[2],
195
+ name: row[3],
196
+ summary: row[4],
197
+ description: row[5],
198
+ status: row[6],
199
+ ownerUserId: row[7],
200
+ creatorUserId: row[8],
201
+ workspaceId: row[9],
202
+ gitRepository: row[10],
203
+ startDate: row[11],
204
+ targetDate: row[12],
205
+ sourceSystem: row[13],
206
+ sourceId: row[14],
207
+ sourceMetadata: row[15],
208
+ createdAt: row[16],
209
+ updatedAt: row[17],
210
+ firstTaskStartedAt: row[18]
102
211
  };
103
212
  }
104
- exports.listProjectsByOrganizationQuery = `-- name: ListProjectsByOrganization :many
105
- SELECT id, organization_id, name, slug, description, status, created_at, updated_at, archived_at
106
- FROM weave_v1.project
213
+ exports.listProjectsQuery = `-- name: ListProjects :many
214
+ SELECT
215
+ id,
216
+ organization_id,
217
+ slug,
218
+ name,
219
+ summary,
220
+ description,
221
+ status,
222
+ owner_user_id,
223
+ creator_user_id,
224
+ workspace_id,
225
+ git_repository,
226
+ start_date,
227
+ target_date,
228
+ source_system,
229
+ source_id,
230
+ source_metadata,
231
+ created_at,
232
+ updated_at,
233
+ first_task_started_at
234
+ FROM weave.projects
107
235
  WHERE organization_id = $1
108
- AND ($2::BOOLEAN OR archived_at IS NULL)
109
- ORDER BY created_at DESC
110
- LIMIT $4
111
- OFFSET $3`;
112
- async function listProjectsByOrganization(client, args) {
236
+ ORDER BY updated_at DESC, created_at DESC`;
237
+ async function listProjects(client, args) {
113
238
  const result = await client.query({
114
- text: exports.listProjectsByOrganizationQuery,
115
- values: [args.organizationId, args.includeArchived, args.pageOffset, args.pageSize],
239
+ text: exports.listProjectsQuery,
240
+ values: [args.organizationId],
116
241
  rowMode: "array"
117
242
  });
118
243
  return result.rows.map(row => {
119
244
  return {
120
245
  id: row[0],
121
246
  organizationId: row[1],
122
- name: row[2],
123
- slug: row[3],
124
- description: row[4],
125
- status: row[5],
126
- createdAt: row[6],
127
- updatedAt: row[7],
128
- archivedAt: row[8]
247
+ slug: row[2],
248
+ name: row[3],
249
+ summary: row[4],
250
+ description: row[5],
251
+ status: row[6],
252
+ ownerUserId: row[7],
253
+ creatorUserId: row[8],
254
+ workspaceId: row[9],
255
+ gitRepository: row[10],
256
+ startDate: row[11],
257
+ targetDate: row[12],
258
+ sourceSystem: row[13],
259
+ sourceId: row[14],
260
+ sourceMetadata: row[15],
261
+ createdAt: row[16],
262
+ updatedAt: row[17],
263
+ firstTaskStartedAt: row[18]
129
264
  };
130
265
  });
131
266
  }
132
- exports.updateProjectQuery = `-- name: UpdateProject :one
133
- UPDATE weave_v1.project
134
- SET name = $1,
135
- slug = $2,
267
+ exports.updateProjectBySlugQuery = `-- name: UpdateProjectBySlug :one
268
+ UPDATE weave.projects
269
+ SET
270
+ name = $1,
271
+ summary = $2,
136
272
  description = $3,
137
273
  status = $4,
138
- updated_at = NOW()
139
- WHERE id = $5
140
- RETURNING id, organization_id, name, slug, description, status, created_at, updated_at, archived_at`;
141
- async function updateProject(client, args) {
274
+ workspace_id = $5,
275
+ git_repository = $6,
276
+ start_date = $7,
277
+ target_date = $8,
278
+ source_system = $9,
279
+ source_id = $10,
280
+ source_metadata = $11,
281
+ updated_at = now()
282
+ WHERE organization_id = $12
283
+ AND slug = $13
284
+ RETURNING
285
+ id,
286
+ organization_id,
287
+ slug,
288
+ name,
289
+ summary,
290
+ description,
291
+ status,
292
+ owner_user_id,
293
+ creator_user_id,
294
+ workspace_id,
295
+ git_repository,
296
+ start_date,
297
+ target_date,
298
+ source_system,
299
+ source_id,
300
+ source_metadata,
301
+ created_at,
302
+ updated_at,
303
+ first_task_started_at`;
304
+ async function updateProjectBySlug(client, args) {
142
305
  const result = await client.query({
143
- text: exports.updateProjectQuery,
144
- values: [args.name, args.slug, args.description, args.status, args.id],
306
+ text: exports.updateProjectBySlugQuery,
307
+ values: [args.name, args.summary, args.description, args.status, args.workspaceId, args.gitRepository, args.startDate, args.targetDate, args.sourceSystem, args.sourceId, args.sourceMetadata, args.organizationId, args.projectSlug],
145
308
  rowMode: "array"
146
309
  });
147
310
  if (result.rows.length !== 1) {
@@ -151,26 +314,57 @@ async function updateProject(client, args) {
151
314
  return {
152
315
  id: row[0],
153
316
  organizationId: row[1],
154
- name: row[2],
155
- slug: row[3],
156
- description: row[4],
157
- status: row[5],
158
- createdAt: row[6],
159
- updatedAt: row[7],
160
- archivedAt: row[8]
317
+ slug: row[2],
318
+ name: row[3],
319
+ summary: row[4],
320
+ description: row[5],
321
+ status: row[6],
322
+ ownerUserId: row[7],
323
+ creatorUserId: row[8],
324
+ workspaceId: row[9],
325
+ gitRepository: row[10],
326
+ startDate: row[11],
327
+ targetDate: row[12],
328
+ sourceSystem: row[13],
329
+ sourceId: row[14],
330
+ sourceMetadata: row[15],
331
+ createdAt: row[16],
332
+ updatedAt: row[17],
333
+ firstTaskStartedAt: row[18]
161
334
  };
162
335
  }
163
- exports.archiveProjectQuery = `-- name: ArchiveProject :one
164
- UPDATE weave_v1.project
165
- SET status = 'archived',
166
- archived_at = NOW(),
167
- updated_at = NOW()
168
- WHERE id = $1
169
- RETURNING id, organization_id, name, slug, description, status, created_at, updated_at, archived_at`;
170
- async function archiveProject(client, args) {
336
+ exports.updateProjectLifecycleByIDQuery = `-- name: UpdateProjectLifecycleByID :one
337
+ UPDATE weave.projects
338
+ SET
339
+ status = $1,
340
+ first_task_started_at = COALESCE(first_task_started_at, $2),
341
+ updated_at = now()
342
+ WHERE organization_id = $3
343
+ AND id = $4
344
+ RETURNING
345
+ id,
346
+ organization_id,
347
+ slug,
348
+ name,
349
+ summary,
350
+ description,
351
+ status,
352
+ owner_user_id,
353
+ creator_user_id,
354
+ workspace_id,
355
+ git_repository,
356
+ start_date,
357
+ target_date,
358
+ source_system,
359
+ source_id,
360
+ source_metadata,
361
+ created_at,
362
+ updated_at,
363
+ first_task_started_at`;
364
+ async function updateProjectLifecycleByID(client, args) {
171
365
  const result = await client.query({
172
- text: exports.archiveProjectQuery,
173
- values: [args.id],
366
+ text: exports.updateProjectLifecycleByIDQuery,
367
+ values: [args.status, args.firstTaskStartedAt, args.organizationId, args.projectId],
174
368
  rowMode: "array"
175
369
  });
176
370
  if (result.rows.length !== 1) {
@@ -180,23 +374,124 @@ async function archiveProject(client, args) {
180
374
  return {
181
375
  id: row[0],
182
376
  organizationId: row[1],
183
- name: row[2],
184
- slug: row[3],
185
- description: row[4],
186
- status: row[5],
187
- createdAt: row[6],
188
- updatedAt: row[7],
189
- archivedAt: row[8]
377
+ slug: row[2],
378
+ name: row[3],
379
+ summary: row[4],
380
+ description: row[5],
381
+ status: row[6],
382
+ ownerUserId: row[7],
383
+ creatorUserId: row[8],
384
+ workspaceId: row[9],
385
+ gitRepository: row[10],
386
+ startDate: row[11],
387
+ targetDate: row[12],
388
+ sourceSystem: row[13],
389
+ sourceId: row[14],
390
+ sourceMetadata: row[15],
391
+ createdAt: row[16],
392
+ updatedAt: row[17],
393
+ firstTaskStartedAt: row[18]
190
394
  };
191
395
  }
192
- exports.deleteProjectQuery = `-- name: DeleteProject :exec
193
- DELETE
194
- FROM weave_v1.project
195
- WHERE id = $1`;
196
- async function deleteProject(client, args) {
396
+ exports.listProjectPermissionsQuery = `-- name: ListProjectPermissions :many
397
+ SELECT
398
+ id,
399
+ project_id,
400
+ principal_kind,
401
+ principal_id,
402
+ principal_slug,
403
+ principal_display_name,
404
+ permission_level,
405
+ created_at
406
+ FROM weave.project_shares
407
+ WHERE organization_id = $1
408
+ AND project_id = $2
409
+ ORDER BY principal_kind ASC, principal_display_name ASC`;
410
+ async function listProjectPermissions(client, args) {
411
+ const result = await client.query({
412
+ text: exports.listProjectPermissionsQuery,
413
+ values: [args.organizationId, args.projectId],
414
+ rowMode: "array"
415
+ });
416
+ return result.rows.map(row => {
417
+ return {
418
+ id: row[0],
419
+ projectId: row[1],
420
+ principalKind: row[2],
421
+ principalId: row[3],
422
+ principalSlug: row[4],
423
+ principalDisplayName: row[5],
424
+ permissionLevel: row[6],
425
+ createdAt: row[7]
426
+ };
427
+ });
428
+ }
429
+ exports.listProjectActivityQuery = `-- name: ListProjectActivity :many
430
+ SELECT
431
+ id,
432
+ project_id,
433
+ task_id,
434
+ event_type,
435
+ actor_id,
436
+ actor_slug,
437
+ actor_label,
438
+ description,
439
+ metadata,
440
+ created_at
441
+ FROM weave.project_activity
442
+ WHERE organization_id = $1
443
+ AND project_id = $2
444
+ ORDER BY created_at DESC
445
+ LIMIT $3`;
446
+ async function listProjectActivity(client, args) {
447
+ const result = await client.query({
448
+ text: exports.listProjectActivityQuery,
449
+ values: [args.organizationId, args.projectId, args.pageLimit],
450
+ rowMode: "array"
451
+ });
452
+ return result.rows.map(row => {
453
+ return {
454
+ id: row[0],
455
+ projectId: row[1],
456
+ taskId: row[2],
457
+ eventType: row[3],
458
+ actorId: row[4],
459
+ actorSlug: row[5],
460
+ actorLabel: row[6],
461
+ description: row[7],
462
+ metadata: row[8],
463
+ createdAt: row[9]
464
+ };
465
+ });
466
+ }
467
+ exports.createProjectActivityQuery = `-- name: CreateProjectActivity :exec
468
+ INSERT INTO weave.project_activity (
469
+ id,
470
+ organization_id,
471
+ project_id,
472
+ task_id,
473
+ event_type,
474
+ actor_id,
475
+ actor_slug,
476
+ actor_label,
477
+ description,
478
+ metadata
479
+ ) VALUES (
480
+ $1,
481
+ $2,
482
+ $3,
483
+ $4,
484
+ $5,
485
+ $6,
486
+ $7,
487
+ $8,
488
+ $9,
489
+ $10
490
+ )`;
491
+ async function createProjectActivity(client, args) {
197
492
  await client.query({
198
- text: exports.deleteProjectQuery,
199
- values: [args.id],
493
+ text: exports.createProjectActivityQuery,
494
+ values: [args.id, args.organizationId, args.projectId, args.taskId, args.eventType, args.actorId, args.actorSlug, args.actorLabel, args.description, args.metadata],
200
495
  rowMode: "array"
201
496
  });
202
497
  }