@superdurable/connector-asana 0.0.0-stage → 0.1.1

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/dist/mock.d.ts ADDED
@@ -0,0 +1,153 @@
1
+ import { MockQuery, MockMutation, Case } from '@superdurable/connectors-sdk/connectormock';
2
+ import { Failure } from '@superdurable/connectors-sdk';
3
+ import { O as Operations, C as Connection, L as ListTasksInput, d as ListTasksOutput, G as GetTaskInput, T as Task, b as CreateTaskInput, c as CreateTaskOutput, U as UpdateTaskInput, e as UpdateTaskOutput, A as AddCommentInput, a as AddCommentOutput, n as CustomFieldValue, o as CustomFieldValueInput, E as EnumOptionReference, P as ProjectReference, S as SectionReference, x as TaskMembership, z as TaskReference, I as UserReference, W as WorkspaceReference } from './connection-Bu8DfK5s.js';
4
+ import 'zod';
5
+
6
+ /** Go zero value for ListTasksInput in scripted cases. */
7
+ declare const emptyListTasksInput: ListTasksInput;
8
+ /** Go zero value for UserReference in scripted cases. */
9
+ declare const emptyUserReference: UserReference;
10
+ /** Go zero value for ProjectReference in scripted cases. */
11
+ declare const emptyProjectReference: ProjectReference;
12
+ /** Go zero value for SectionReference in scripted cases. */
13
+ declare const emptySectionReference: SectionReference;
14
+ /** Go zero value for TaskMembership in scripted cases. */
15
+ declare const emptyTaskMembership: TaskMembership;
16
+ /** Go zero value for TaskReference in scripted cases. */
17
+ declare const emptyTaskReference: TaskReference;
18
+ /** Go zero value for WorkspaceReference in scripted cases. */
19
+ declare const emptyWorkspaceReference: WorkspaceReference;
20
+ /** Go zero value for EnumOptionReference in scripted cases. */
21
+ declare const emptyEnumOptionReference: EnumOptionReference;
22
+ /** Go zero value for CustomFieldValue in scripted cases. */
23
+ declare const emptyCustomFieldValue: CustomFieldValue;
24
+ /** Go zero value for Task in scripted cases. */
25
+ declare const emptyTask: Task;
26
+ /** Go zero value for ListTasksOutput in scripted cases. */
27
+ declare const emptyListTasksOutput: ListTasksOutput;
28
+ /** Go zero value for GetTaskInput in scripted cases. */
29
+ declare const emptyGetTaskInput: GetTaskInput;
30
+ /** Go zero value for CustomFieldValueInput in scripted cases. */
31
+ declare const emptyCustomFieldValueInput: CustomFieldValueInput;
32
+ /** Go zero value for CreateTaskInput in scripted cases. */
33
+ declare const emptyCreateTaskInput: CreateTaskInput;
34
+ /** Go zero value for CreateTaskOutput in scripted cases. */
35
+ declare const emptyCreateTaskOutput: CreateTaskOutput;
36
+ /** Go zero value for UpdateTaskInput in scripted cases. */
37
+ declare const emptyUpdateTaskInput: UpdateTaskInput;
38
+ /** Go zero value for UpdateTaskOutput in scripted cases. */
39
+ declare const emptyUpdateTaskOutput: UpdateTaskOutput;
40
+ /** Go zero value for AddCommentInput in scripted cases. */
41
+ declare const emptyAddCommentInput: AddCommentInput;
42
+ /** Go zero value for AddCommentOutput in scripted cases. */
43
+ declare const emptyAddCommentOutput: AddCommentOutput;
44
+ /** Script the listed branch. */
45
+ declare function listTasksListed(value: ListTasksOutput, failure?: Failure): Case<ListTasksOutput>;
46
+ /** Script the notFound branch. */
47
+ declare function listTasksNotFound(value: ListTasksOutput, failure?: Failure): Case<ListTasksOutput>;
48
+ /** Script the providerRejected branch. */
49
+ declare function listTasksProviderRejected(value: ListTasksOutput, failure?: Failure): Case<ListTasksOutput>;
50
+ /** Script the invalidResponse branch. */
51
+ declare function listTasksInvalidResponse(value: ListTasksOutput, failure?: Failure): Case<ListTasksOutput>;
52
+ /** Script the defect branch. */
53
+ declare function listTasksDefect(value: ListTasksOutput, failure?: Failure): Case<ListTasksOutput>;
54
+ /** Script a safe retry of listTasks. */
55
+ declare function listTasksRetry(failure: Failure, retryAfterMs?: number): Case<ListTasksOutput>;
56
+ /** Manifest scenario listedDefaultAnswer for listTasks. */
57
+ declare function listTasksListedDefaultAnswer(): Case<ListTasksOutput>;
58
+ /** Default listTasks scenario. */
59
+ declare function listTasksDefault(): Case<ListTasksOutput>;
60
+ /** Manifest scenario notFoundFailure for listTasks. */
61
+ declare function listTasksNotFoundFailure(): Case<ListTasksOutput>;
62
+ /** Manifest scenario providerRejectedFailure for listTasks. */
63
+ declare function listTasksProviderRejectedFailure(): Case<ListTasksOutput>;
64
+ /** Script the found branch. */
65
+ declare function getTaskFound(value: Task, failure?: Failure): Case<Task>;
66
+ /** Script the notFound branch. */
67
+ declare function getTaskNotFound(value: Task, failure?: Failure): Case<Task>;
68
+ /** Script the providerRejected branch. */
69
+ declare function getTaskProviderRejected(value: Task, failure?: Failure): Case<Task>;
70
+ /** Script the invalidResponse branch. */
71
+ declare function getTaskInvalidResponse(value: Task, failure?: Failure): Case<Task>;
72
+ /** Script the defect branch. */
73
+ declare function getTaskDefect(value: Task, failure?: Failure): Case<Task>;
74
+ /** Script a safe retry of getTask. */
75
+ declare function getTaskRetry(failure: Failure, retryAfterMs?: number): Case<Task>;
76
+ /** Manifest scenario foundDefaultAnswer for getTask. */
77
+ declare function getTaskFoundDefaultAnswer(): Case<Task>;
78
+ /** Default getTask scenario. */
79
+ declare function getTaskDefault(): Case<Task>;
80
+ /** Manifest scenario notFoundFailure for getTask. */
81
+ declare function getTaskNotFoundFailure(): Case<Task>;
82
+ /** Manifest scenario providerRejectedFailure for getTask. */
83
+ declare function getTaskProviderRejectedFailure(): Case<Task>;
84
+ /** Script the created branch. */
85
+ declare function createTaskCreated(value: CreateTaskOutput, failure?: Failure): Case<CreateTaskOutput>;
86
+ /** Script the providerRejected branch. */
87
+ declare function createTaskProviderRejected(value: CreateTaskOutput, failure?: Failure): Case<CreateTaskOutput>;
88
+ /** Script the defect branch. */
89
+ declare function createTaskDefect(value: CreateTaskOutput, failure?: Failure): Case<CreateTaskOutput>;
90
+ /** Script a safe retry of createTask. */
91
+ declare function createTaskRetry(failure: Failure, retryAfterMs?: number): Case<CreateTaskOutput>;
92
+ /** Script an uncertain createTask attempt. */
93
+ declare function createTaskUncertain(value: CreateTaskOutput, failure: Failure): Case<CreateTaskOutput>;
94
+ /** Manifest scenario createdDefaultAnswer for createTask. */
95
+ declare function createTaskCreatedDefaultAnswer(): Case<CreateTaskOutput>;
96
+ /** Default createTask scenario. */
97
+ declare function createTaskDefault(): Case<CreateTaskOutput>;
98
+ /** Manifest scenario providerRejectedFailure for createTask. */
99
+ declare function createTaskProviderRejectedFailure(): Case<CreateTaskOutput>;
100
+ /** Script the updated branch. */
101
+ declare function updateTaskUpdated(value: UpdateTaskOutput, failure?: Failure): Case<UpdateTaskOutput>;
102
+ /** Script the notFound branch. */
103
+ declare function updateTaskNotFound(value: UpdateTaskOutput, failure?: Failure): Case<UpdateTaskOutput>;
104
+ /** Script the providerRejected branch. */
105
+ declare function updateTaskProviderRejected(value: UpdateTaskOutput, failure?: Failure): Case<UpdateTaskOutput>;
106
+ /** Script the invalidResponse branch. */
107
+ declare function updateTaskInvalidResponse(value: UpdateTaskOutput, failure?: Failure): Case<UpdateTaskOutput>;
108
+ /** Script the defect branch. */
109
+ declare function updateTaskDefect(value: UpdateTaskOutput, failure?: Failure): Case<UpdateTaskOutput>;
110
+ /** Script a safe retry of updateTask. */
111
+ declare function updateTaskRetry(failure: Failure, retryAfterMs?: number): Case<UpdateTaskOutput>;
112
+ /** Manifest scenario updatedDefaultAnswer for updateTask. */
113
+ declare function updateTaskUpdatedDefaultAnswer(): Case<UpdateTaskOutput>;
114
+ /** Default updateTask scenario. */
115
+ declare function updateTaskDefault(): Case<UpdateTaskOutput>;
116
+ /** Manifest scenario notFoundFailure for updateTask. */
117
+ declare function updateTaskNotFoundFailure(): Case<UpdateTaskOutput>;
118
+ /** Manifest scenario providerRejectedFailure for updateTask. */
119
+ declare function updateTaskProviderRejectedFailure(): Case<UpdateTaskOutput>;
120
+ /** Script the added branch. */
121
+ declare function addCommentAdded(value: AddCommentOutput, failure?: Failure): Case<AddCommentOutput>;
122
+ /** Script the notFound branch. */
123
+ declare function addCommentNotFound(value: AddCommentOutput, failure?: Failure): Case<AddCommentOutput>;
124
+ /** Script the providerRejected branch. */
125
+ declare function addCommentProviderRejected(value: AddCommentOutput, failure?: Failure): Case<AddCommentOutput>;
126
+ /** Script the defect branch. */
127
+ declare function addCommentDefect(value: AddCommentOutput, failure?: Failure): Case<AddCommentOutput>;
128
+ /** Script a safe retry of addComment. */
129
+ declare function addCommentRetry(failure: Failure, retryAfterMs?: number): Case<AddCommentOutput>;
130
+ /** Script an uncertain addComment attempt. */
131
+ declare function addCommentUncertain(value: AddCommentOutput, failure: Failure): Case<AddCommentOutput>;
132
+ /** Manifest scenario addedDefaultAnswer for addComment. */
133
+ declare function addCommentAddedDefaultAnswer(): Case<AddCommentOutput>;
134
+ /** Default addComment scenario. */
135
+ declare function addCommentDefault(): Case<AddCommentOutput>;
136
+ /** Manifest scenario notFoundFailure for addComment. */
137
+ declare function addCommentNotFoundFailure(): Case<AddCommentOutput>;
138
+ /** Manifest scenario providerRejectedFailure for addComment. */
139
+ declare function addCommentProviderRejectedFailure(): Case<AddCommentOutput>;
140
+ /** Scripted operations and manifest defaults for this connector. */
141
+ declare class GeneratedMock implements Operations {
142
+ #private;
143
+ constructor(connectionName: string);
144
+ connection(): Connection;
145
+ listTasks(): MockQuery<ListTasksInput, ListTasksOutput>;
146
+ getTask(): MockQuery<GetTaskInput, Task>;
147
+ createTask(): MockMutation<CreateTaskInput, CreateTaskOutput>;
148
+ updateTask(): MockMutation<UpdateTaskInput, UpdateTaskOutput>;
149
+ addComment(): MockMutation<AddCommentInput, AddCommentOutput>;
150
+ assertNoFailures(): void;
151
+ }
152
+
153
+ export { GeneratedMock, addCommentAdded, addCommentAddedDefaultAnswer, addCommentDefault, addCommentDefect, addCommentNotFound, addCommentNotFoundFailure, addCommentProviderRejected, addCommentProviderRejectedFailure, addCommentRetry, addCommentUncertain, createTaskCreated, createTaskCreatedDefaultAnswer, createTaskDefault, createTaskDefect, createTaskProviderRejected, createTaskProviderRejectedFailure, createTaskRetry, createTaskUncertain, emptyAddCommentInput, emptyAddCommentOutput, emptyCreateTaskInput, emptyCreateTaskOutput, emptyCustomFieldValue, emptyCustomFieldValueInput, emptyEnumOptionReference, emptyGetTaskInput, emptyListTasksInput, emptyListTasksOutput, emptyProjectReference, emptySectionReference, emptyTask, emptyTaskMembership, emptyTaskReference, emptyUpdateTaskInput, emptyUpdateTaskOutput, emptyUserReference, emptyWorkspaceReference, getTaskDefault, getTaskDefect, getTaskFound, getTaskFoundDefaultAnswer, getTaskInvalidResponse, getTaskNotFound, getTaskNotFoundFailure, getTaskProviderRejected, getTaskProviderRejectedFailure, getTaskRetry, listTasksDefault, listTasksDefect, listTasksInvalidResponse, listTasksListed, listTasksListedDefaultAnswer, listTasksNotFound, listTasksNotFoundFailure, listTasksProviderRejected, listTasksProviderRejectedFailure, listTasksRetry, updateTaskDefault, updateTaskDefect, updateTaskInvalidResponse, updateTaskNotFound, updateTaskNotFoundFailure, updateTaskProviderRejected, updateTaskProviderRejectedFailure, updateTaskRetry, updateTaskUpdated, updateTaskUpdatedDefaultAnswer };
package/dist/mock.js ADDED
@@ -0,0 +1,361 @@
1
+ import {
2
+ AddCommentDefinition,
3
+ AddCommentInputSchema,
4
+ AddCommentOutputSchema,
5
+ ConnectorID,
6
+ CreateTaskDefinition,
7
+ CreateTaskInputSchema,
8
+ CreateTaskOutputSchema,
9
+ CustomFieldValueInputSchema,
10
+ CustomFieldValueSchema,
11
+ EnumOptionReferenceSchema,
12
+ GetTaskDefinition,
13
+ GetTaskInputSchema,
14
+ ListTasksDefinition,
15
+ ListTasksInputSchema,
16
+ ListTasksOutputSchema,
17
+ ProjectReferenceSchema,
18
+ ProviderID,
19
+ SectionReferenceSchema,
20
+ TaskMembershipSchema,
21
+ TaskReferenceSchema,
22
+ TaskSchema,
23
+ UpdateTaskDefinition,
24
+ UpdateTaskInputSchema,
25
+ UpdateTaskOutputSchema,
26
+ UserReferenceSchema,
27
+ WorkspaceReferenceSchema,
28
+ newConnectionWithOperations
29
+ } from "./chunk-JITMOBYX.js";
30
+
31
+ // src/generated/mock.ts
32
+ import { branchCase, retryCase, uncertainCase, newMutation, newQuery } from "@superdurable/connectors-sdk/connectormock";
33
+ var emptyListTasksInput = ListTasksInputSchema.parse({});
34
+ var emptyUserReference = UserReferenceSchema.parse({
35
+ "id": ""
36
+ });
37
+ var emptyProjectReference = ProjectReferenceSchema.parse({
38
+ "id": ""
39
+ });
40
+ var emptySectionReference = SectionReferenceSchema.parse({
41
+ "id": ""
42
+ });
43
+ var emptyTaskMembership = TaskMembershipSchema.parse({
44
+ "project": emptyProjectReference
45
+ });
46
+ var emptyTaskReference = TaskReferenceSchema.parse({
47
+ "id": ""
48
+ });
49
+ var emptyWorkspaceReference = WorkspaceReferenceSchema.parse({
50
+ "id": ""
51
+ });
52
+ var emptyEnumOptionReference = EnumOptionReferenceSchema.parse({
53
+ "id": ""
54
+ });
55
+ var emptyCustomFieldValue = CustomFieldValueSchema.parse({
56
+ "id": ""
57
+ });
58
+ var emptyTask = TaskSchema.parse({
59
+ "id": "",
60
+ "name": "",
61
+ "isCompleted": false,
62
+ "createdAt": "0001-01-01T00:00:00Z",
63
+ "modifiedAt": "0001-01-01T00:00:00Z"
64
+ });
65
+ var emptyListTasksOutput = ListTasksOutputSchema.parse({
66
+ "tasks": []
67
+ });
68
+ var emptyGetTaskInput = GetTaskInputSchema.parse({
69
+ "taskId": ""
70
+ });
71
+ var emptyCustomFieldValueInput = CustomFieldValueInputSchema.parse({
72
+ "customFieldId": ""
73
+ });
74
+ var emptyCreateTaskInput = CreateTaskInputSchema.parse({
75
+ "name": ""
76
+ });
77
+ var emptyCreateTaskOutput = CreateTaskOutputSchema.parse({
78
+ "name": ""
79
+ });
80
+ var emptyUpdateTaskInput = UpdateTaskInputSchema.parse({
81
+ "taskId": ""
82
+ });
83
+ var emptyUpdateTaskOutput = UpdateTaskOutputSchema.parse({
84
+ "taskId": ""
85
+ });
86
+ var emptyAddCommentInput = AddCommentInputSchema.parse({
87
+ "taskId": "",
88
+ "text": ""
89
+ });
90
+ var emptyAddCommentOutput = AddCommentOutputSchema.parse({
91
+ "taskId": ""
92
+ });
93
+ function listTasksListed(value, failure) {
94
+ return branchCase("listed", value, failure);
95
+ }
96
+ function listTasksNotFound(value, failure) {
97
+ return branchCase("notFound", value, failure);
98
+ }
99
+ function listTasksProviderRejected(value, failure) {
100
+ return branchCase("providerRejected", value, failure);
101
+ }
102
+ function listTasksInvalidResponse(value, failure) {
103
+ return branchCase("invalidResponse", value, failure);
104
+ }
105
+ function listTasksDefect(value, failure) {
106
+ return branchCase("defect", value, failure);
107
+ }
108
+ function listTasksRetry(failure, retryAfterMs = 0) {
109
+ return retryCase(failure, retryAfterMs);
110
+ }
111
+ function listTasksListedDefaultAnswer() {
112
+ const value = ListTasksOutputSchema.parse({ "tasks": [{ "createdAt": "2026-09-30T16:00:00Z", "id": "1204000000000001", "isCompleted": false, "memberships": [{ "project": { "id": "1201000000000001", "name": "Facilities" }, "section": { "id": "1201000000000101", "name": "Approved" } }], "modifiedAt": "2026-09-30T16:00:00Z", "name": "Inspect door sensors" }] });
113
+ return branchCase("listed", value);
114
+ }
115
+ function listTasksDefault() {
116
+ return listTasksListedDefaultAnswer();
117
+ }
118
+ function listTasksNotFoundFailure() {
119
+ const value = emptyListTasksOutput;
120
+ return branchCase("notFound", value, { kind: "NOT_FOUND", provider: ConnectorID, operation: "listTasks", message: "The project or section does not exist or the connection cannot see it." });
121
+ }
122
+ function listTasksProviderRejectedFailure() {
123
+ const value = emptyListTasksOutput;
124
+ return branchCase("providerRejected", value, { kind: "PROVIDER_REJECTION", provider: ConnectorID, operation: "listTasks", message: "Asana conclusively rejected the list, such as an expired offset token, missing permission, or a result set too large to page." });
125
+ }
126
+ function getTaskFound(value, failure) {
127
+ return branchCase("found", value, failure);
128
+ }
129
+ function getTaskNotFound(value, failure) {
130
+ return branchCase("notFound", value, failure);
131
+ }
132
+ function getTaskProviderRejected(value, failure) {
133
+ return branchCase("providerRejected", value, failure);
134
+ }
135
+ function getTaskInvalidResponse(value, failure) {
136
+ return branchCase("invalidResponse", value, failure);
137
+ }
138
+ function getTaskDefect(value, failure) {
139
+ return branchCase("defect", value, failure);
140
+ }
141
+ function getTaskRetry(failure, retryAfterMs = 0) {
142
+ return retryCase(failure, retryAfterMs);
143
+ }
144
+ function getTaskFoundDefaultAnswer() {
145
+ const value = TaskSchema.parse({ "createdAt": "2026-09-30T16:15:00Z", "dueOn": "2026-10-15", "id": "1204000000000002", "isCompleted": false, "memberships": [{ "project": { "id": "1201000000000001", "name": "Facilities" }, "section": { "id": "1201000000000101", "name": "Approved" } }], "modifiedAt": "2026-09-30T16:15:00Z", "name": "[REQ-1042] Replace badge reader", "notes": "Door 4 is offline.", "workspace": { "id": "1200000000000001", "name": "Operations" } });
146
+ return branchCase("found", value);
147
+ }
148
+ function getTaskDefault() {
149
+ return getTaskFoundDefaultAnswer();
150
+ }
151
+ function getTaskNotFoundFailure() {
152
+ const value = emptyTask;
153
+ return branchCase("notFound", value, { kind: "NOT_FOUND", provider: ConnectorID, operation: "getTask", message: "The task does not exist or the connection cannot see it." });
154
+ }
155
+ function getTaskProviderRejectedFailure() {
156
+ const value = emptyTask;
157
+ return branchCase("providerRejected", value, { kind: "PROVIDER_REJECTION", provider: ConnectorID, operation: "getTask", message: "Asana conclusively rejected the task read." });
158
+ }
159
+ function createTaskCreated(value, failure) {
160
+ return branchCase("created", value, failure);
161
+ }
162
+ function createTaskProviderRejected(value, failure) {
163
+ return branchCase("providerRejected", value, failure);
164
+ }
165
+ function createTaskDefect(value, failure) {
166
+ return branchCase("defect", value, failure);
167
+ }
168
+ function createTaskRetry(failure, retryAfterMs = 0) {
169
+ return retryCase(failure, retryAfterMs);
170
+ }
171
+ function createTaskUncertain(value, failure) {
172
+ return uncertainCase(value, failure);
173
+ }
174
+ function createTaskCreatedDefaultAnswer() {
175
+ const value = CreateTaskOutputSchema.parse({ "createdAt": "2026-09-30T16:15:00Z", "name": "[REQ-1042] Replace badge reader", "permalinkUrl": "https://app.asana.com/0/1201000000000001/1204000000000002", "projectId": "1201000000000001", "sectionId": "1201000000000101", "taskId": "1204000000000002" });
176
+ return branchCase("created", value);
177
+ }
178
+ function createTaskDefault() {
179
+ return createTaskCreatedDefaultAnswer();
180
+ }
181
+ function createTaskProviderRejectedFailure() {
182
+ const value = emptyCreateTaskOutput;
183
+ return branchCase("providerRejected", value, { kind: "PROVIDER_REJECTION", provider: ConnectorID, operation: "createTask", message: "Asana conclusively rejected the task, such as an unknown project, section, assignee, or custom field value, or missing permission; nothing was created." });
184
+ }
185
+ function updateTaskUpdated(value, failure) {
186
+ return branchCase("updated", value, failure);
187
+ }
188
+ function updateTaskNotFound(value, failure) {
189
+ return branchCase("notFound", value, failure);
190
+ }
191
+ function updateTaskProviderRejected(value, failure) {
192
+ return branchCase("providerRejected", value, failure);
193
+ }
194
+ function updateTaskInvalidResponse(value, failure) {
195
+ return branchCase("invalidResponse", value, failure);
196
+ }
197
+ function updateTaskDefect(value, failure) {
198
+ return branchCase("defect", value, failure);
199
+ }
200
+ function updateTaskRetry(failure, retryAfterMs = 0) {
201
+ return retryCase(failure, retryAfterMs);
202
+ }
203
+ function updateTaskUpdatedDefaultAnswer() {
204
+ const value = UpdateTaskOutputSchema.parse({ "isMovedToSection": true, "task": { "assignee": { "id": "1203000000000001", "name": "Ada Lovelace" }, "createdAt": "2026-09-30T16:15:00Z", "dueOn": "2026-10-15", "id": "1204000000000002", "isCompleted": false, "memberships": [{ "project": { "id": "1201000000000001", "name": "Facilities" }, "section": { "id": "1201000000000101", "name": "Approved" } }], "modifiedAt": "2026-09-30T16:17:00Z", "name": "[REQ-1042] Replace badge reader", "notes": "Door 4 is offline.", "workspace": { "id": "1200000000000001", "name": "Operations" } }, "taskId": "1204000000000002" });
205
+ return branchCase("updated", value);
206
+ }
207
+ function updateTaskDefault() {
208
+ return updateTaskUpdatedDefaultAnswer();
209
+ }
210
+ function updateTaskNotFoundFailure() {
211
+ const value = emptyUpdateTaskOutput;
212
+ return branchCase("notFound", value, { kind: "NOT_FOUND", provider: ConnectorID, operation: "updateTask", message: "The task or section does not exist or the connection cannot see it." });
213
+ }
214
+ function updateTaskProviderRejectedFailure() {
215
+ const value = emptyUpdateTaskOutput;
216
+ return branchCase("providerRejected", value, { kind: "PROVIDER_REJECTION", provider: ConnectorID, operation: "updateTask", message: "Asana conclusively rejected a change, such as an unknown assignee, a section of a project the task is not in, or missing permission." });
217
+ }
218
+ function addCommentAdded(value, failure) {
219
+ return branchCase("added", value, failure);
220
+ }
221
+ function addCommentNotFound(value, failure) {
222
+ return branchCase("notFound", value, failure);
223
+ }
224
+ function addCommentProviderRejected(value, failure) {
225
+ return branchCase("providerRejected", value, failure);
226
+ }
227
+ function addCommentDefect(value, failure) {
228
+ return branchCase("defect", value, failure);
229
+ }
230
+ function addCommentRetry(failure, retryAfterMs = 0) {
231
+ return retryCase(failure, retryAfterMs);
232
+ }
233
+ function addCommentUncertain(value, failure) {
234
+ return uncertainCase(value, failure);
235
+ }
236
+ function addCommentAddedDefaultAnswer() {
237
+ const value = AddCommentOutputSchema.parse({ "author": { "id": "1203000000000001", "name": "Ada Lovelace" }, "commentId": "1205000000000001", "createdAt": "2026-09-30T16:20:00Z", "taskId": "1204000000000002" });
238
+ return branchCase("added", value);
239
+ }
240
+ function addCommentDefault() {
241
+ return addCommentAddedDefaultAnswer();
242
+ }
243
+ function addCommentNotFoundFailure() {
244
+ const value = emptyAddCommentOutput;
245
+ return branchCase("notFound", value, { kind: "NOT_FOUND", provider: ConnectorID, operation: "addComment", message: "The task does not exist or the connection cannot see it; nothing was added." });
246
+ }
247
+ function addCommentProviderRejectedFailure() {
248
+ const value = emptyAddCommentOutput;
249
+ return branchCase("providerRejected", value, { kind: "PROVIDER_REJECTION", provider: ConnectorID, operation: "addComment", message: "Asana conclusively rejected the comment, such as missing permission or invalid text; nothing was added." });
250
+ }
251
+ var GeneratedMock = class {
252
+ #listTasks;
253
+ #getTask;
254
+ #createTask;
255
+ #updateTask;
256
+ #addComment;
257
+ #connection;
258
+ constructor(connectionName) {
259
+ this.#listTasks = newQuery(ListTasksDefinition).default(listTasksDefault());
260
+ this.#getTask = newQuery(GetTaskDefinition).default(getTaskDefault());
261
+ this.#createTask = newMutation(CreateTaskDefinition).default(createTaskDefault());
262
+ this.#updateTask = newMutation(UpdateTaskDefinition).default(updateTaskDefault());
263
+ this.#addComment = newMutation(AddCommentDefinition).default(addCommentDefault());
264
+ this.#connection = newConnectionWithOperations(this, { provider: ProviderID, name: connectionName });
265
+ }
266
+ connection() {
267
+ return this.#connection;
268
+ }
269
+ listTasks() {
270
+ return this.#listTasks;
271
+ }
272
+ getTask() {
273
+ return this.#getTask;
274
+ }
275
+ createTask() {
276
+ return this.#createTask;
277
+ }
278
+ updateTask() {
279
+ return this.#updateTask;
280
+ }
281
+ addComment() {
282
+ return this.#addComment;
283
+ }
284
+ assertNoFailures() {
285
+ this.#listTasks.assertNoFailures();
286
+ this.#getTask.assertNoFailures();
287
+ this.#createTask.assertNoFailures();
288
+ this.#updateTask.assertNoFailures();
289
+ this.#addComment.assertNoFailures();
290
+ }
291
+ };
292
+ export {
293
+ GeneratedMock,
294
+ addCommentAdded,
295
+ addCommentAddedDefaultAnswer,
296
+ addCommentDefault,
297
+ addCommentDefect,
298
+ addCommentNotFound,
299
+ addCommentNotFoundFailure,
300
+ addCommentProviderRejected,
301
+ addCommentProviderRejectedFailure,
302
+ addCommentRetry,
303
+ addCommentUncertain,
304
+ createTaskCreated,
305
+ createTaskCreatedDefaultAnswer,
306
+ createTaskDefault,
307
+ createTaskDefect,
308
+ createTaskProviderRejected,
309
+ createTaskProviderRejectedFailure,
310
+ createTaskRetry,
311
+ createTaskUncertain,
312
+ emptyAddCommentInput,
313
+ emptyAddCommentOutput,
314
+ emptyCreateTaskInput,
315
+ emptyCreateTaskOutput,
316
+ emptyCustomFieldValue,
317
+ emptyCustomFieldValueInput,
318
+ emptyEnumOptionReference,
319
+ emptyGetTaskInput,
320
+ emptyListTasksInput,
321
+ emptyListTasksOutput,
322
+ emptyProjectReference,
323
+ emptySectionReference,
324
+ emptyTask,
325
+ emptyTaskMembership,
326
+ emptyTaskReference,
327
+ emptyUpdateTaskInput,
328
+ emptyUpdateTaskOutput,
329
+ emptyUserReference,
330
+ emptyWorkspaceReference,
331
+ getTaskDefault,
332
+ getTaskDefect,
333
+ getTaskFound,
334
+ getTaskFoundDefaultAnswer,
335
+ getTaskInvalidResponse,
336
+ getTaskNotFound,
337
+ getTaskNotFoundFailure,
338
+ getTaskProviderRejected,
339
+ getTaskProviderRejectedFailure,
340
+ getTaskRetry,
341
+ listTasksDefault,
342
+ listTasksDefect,
343
+ listTasksInvalidResponse,
344
+ listTasksListed,
345
+ listTasksListedDefaultAnswer,
346
+ listTasksNotFound,
347
+ listTasksNotFoundFailure,
348
+ listTasksProviderRejected,
349
+ listTasksProviderRejectedFailure,
350
+ listTasksRetry,
351
+ updateTaskDefault,
352
+ updateTaskDefect,
353
+ updateTaskInvalidResponse,
354
+ updateTaskNotFound,
355
+ updateTaskNotFoundFailure,
356
+ updateTaskProviderRejected,
357
+ updateTaskProviderRejectedFailure,
358
+ updateTaskRetry,
359
+ updateTaskUpdated,
360
+ updateTaskUpdatedDefaultAnswer
361
+ };
package/package.json CHANGED
@@ -1,6 +1,60 @@
1
1
  {
2
2
  "name": "@superdurable/connector-asana",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.1",
4
+ "description": "Asana task and comment operations for Dex",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/superdurable/dex-connectors-library.git",
8
+ "directory": "connectors/asana/typescript"
9
+ },
10
+ "type": "module",
11
+ "publishConfig": {
12
+ "access": "public",
13
+ "registry": "https://registry.npmjs.org"
14
+ },
15
+ "engines": {
16
+ "node": "^22.0.0 || ^24.0.0"
17
+ },
18
+ "module": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js"
24
+ },
25
+ "./mock": {
26
+ "types": "./dist/mock.d.ts",
27
+ "import": "./dist/mock.js"
28
+ }
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "dex-connector.json",
33
+ "README.md"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsup src/index.ts src/mock.ts --format esm --dts --clean",
37
+ "typecheck": "tsc --noEmit",
38
+ "lint": "eslint src test examples",
39
+ "test": "npm run build && vitest run --exclude \"test/integration/**\"",
40
+ "test:integration": "npm run build && vitest run test/integration/*.integration.test.ts",
41
+ "example:approved-request-task": "npm run build && tsx examples/approved-request-task/main.ts",
42
+ "check": "npm test && npm run typecheck && npm run lint"
43
+ },
44
+ "dependencies": {
45
+ "@superdurable/connectors-sdk": "0.1.0",
46
+ "@superdurable/dex": ">=1.28.0",
47
+ "zod": "^4.1.0"
48
+ },
49
+ "devDependencies": {
50
+ "@eslint/js": "^9.0.0",
51
+ "@types/node": "^22.0.0",
52
+ "eslint": "^9.0.0",
53
+ "tsup": "^8.0.0",
54
+ "tsx": "^4.23.15",
55
+ "typescript": "^5.9.0",
56
+ "typescript-eslint": "^8.0.0",
57
+ "vitest": "^3.0.0",
58
+ "yaml": "^2.9.1"
59
+ }
60
+ }