asana 1.0.2 → 2.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.
- package/.babelrc +33 -0
- package/.github/workflows/publish.yaml +72 -0
- package/.swagger-codegen/VERSION +1 -0
- package/.swagger-codegen-ignore +21 -1
- package/README.md +885 -296
- package/codegen/swagger/README.md +74 -0
- package/codegen/swagger/pom.xml +129 -0
- package/codegen/swagger/src/main/java/com/asana/codegen/ExampleUtility.java +27 -0
- package/codegen/swagger/src/main/java/com/asana/codegen/JavascriptClientCodegenGenerator.java +79 -0
- package/codegen/swagger/src/main/java/com/asana/codegen/ReadMe.java +164 -0
- package/codegen/swagger/src/main/resources/META-INF/services/io.swagger.codegen.v3.CodegenConfig +1 -0
- package/codegen/templates/ApiClient.mustache +618 -0
- package/codegen/templates/README.mustache +439 -0
- package/codegen/templates/api_doc.mustache +51 -0
- package/codegen/templates/code_sample.mustache +47 -0
- package/codegen/templates/code_samples.mustache +11 -0
- package/dist/ApiClient.js +607 -0
- package/dist/api/AttachmentsApi.js +217 -0
- package/dist/api/AuditLogAPIApi.js +105 -0
- package/dist/api/BatchAPIApi.js +90 -0
- package/dist/api/CustomFieldSettingsApi.js +139 -0
- package/dist/api/CustomFieldsApi.js +376 -0
- package/dist/api/EventsApi.js +93 -0
- package/dist/api/GoalRelationshipsApi.js +271 -0
- package/dist/api/GoalsApi.js +486 -0
- package/dist/api/JobsApi.js +91 -0
- package/dist/api/MembershipsApi.js +161 -0
- package/dist/api/OrganizationExportsApi.js +130 -0
- package/dist/api/PortfolioMembershipsApi.js +181 -0
- package/dist/api/PortfoliosApi.js +560 -0
- package/dist/api/ProjectBriefsApi.js +219 -0
- package/dist/api/ProjectMembershipsApi.js +138 -0
- package/dist/api/ProjectStatusesApi.js +218 -0
- package/dist/api/ProjectTemplatesApi.js +256 -0
- package/dist/api/ProjectsApi.js +881 -0
- package/dist/api/RulesApi.js +92 -0
- package/dist/api/SectionsApi.js +334 -0
- package/dist/api/StatusUpdatesApi.js +216 -0
- package/dist/api/StoriesApi.js +264 -0
- package/dist/api/TagsApi.js +380 -0
- package/dist/api/TasksApi.js +1277 -0
- package/dist/api/TeamMembershipsApi.js +229 -0
- package/dist/api/TeamsApi.js +360 -0
- package/dist/api/TimePeriodsApi.js +139 -0
- package/dist/api/TimeTrackingEntriesApi.js +264 -0
- package/dist/api/TypeaheadApi.js +103 -0
- package/dist/api/UserTaskListsApi.js +137 -0
- package/dist/api/UsersApi.js +274 -0
- package/dist/api/WebhooksApi.js +258 -0
- package/dist/api/WorkspaceMembershipsApi.js +182 -0
- package/dist/api/WorkspacesApi.js +264 -0
- package/dist/index.js +3141 -0
- package/dist/model/AddCustomFieldSettingRequest.js +89 -0
- package/dist/model/AddFollowersRequest.js +68 -0
- package/dist/model/AddMembersRequest.js +68 -0
- package/dist/model/AllOfProjectResponseOwner.js +61 -0
- package/dist/model/AllOfProjectTemplateBaseOwner.js +61 -0
- package/dist/model/AllOfProjectTemplateResponseOwner.js +61 -0
- package/dist/model/AllOfStoryResponseNewDateValue.js +60 -0
- package/dist/model/AllOfStoryResponseOldDateValue.js +60 -0
- package/dist/model/AllOfUserTaskListBaseOwner.js +61 -0
- package/dist/model/AllOfUserTaskListBaseWorkspace.js +61 -0
- package/dist/model/AllOfUserTaskListCompactOwner.js +61 -0
- package/dist/model/AllOfUserTaskListCompactWorkspace.js +61 -0
- package/dist/model/AllOfUserTaskListRequestOwner.js +61 -0
- package/dist/model/AllOfUserTaskListRequestWorkspace.js +61 -0
- package/dist/model/AllOfUserTaskListResponseOwner.js +61 -0
- package/dist/model/AllOfUserTaskListResponseWorkspace.js +61 -0
- package/dist/model/AllOfWorkspaceMembershipResponseUserTaskListOwner.js +61 -0
- package/dist/model/AllOfWorkspaceMembershipResponseUserTaskListWorkspace.js +61 -0
- package/dist/model/AsanaNamedResource.js +81 -0
- package/dist/model/AsanaNamedResourceArray.js +75 -0
- package/dist/model/AsanaResource.js +74 -0
- package/dist/model/AttachmentBase.js +88 -0
- package/dist/model/AttachmentCompact.js +88 -0
- package/dist/model/AttachmentRequest.js +145 -0
- package/dist/model/AttachmentResponse.js +143 -0
- package/dist/model/AttachmentResponseArray.js +75 -0
- package/dist/model/AttachmentResponseData.js +68 -0
- package/dist/model/AttachmentResponseParent.js +88 -0
- package/dist/model/AuditLogEvent.js +116 -0
- package/dist/model/AuditLogEventActor.js +120 -0
- package/dist/model/AuditLogEventArray.js +75 -0
- package/dist/model/AuditLogEventContext.js +164 -0
- package/dist/model/AuditLogEventDetails.js +61 -0
- package/dist/model/AuditLogEventResource.js +95 -0
- package/dist/model/BatchBody.js +66 -0
- package/dist/model/BatchRequest.js +67 -0
- package/dist/model/BatchRequestAction.js +129 -0
- package/dist/model/BatchRequestActions.js +129 -0
- package/dist/model/BatchRequestOptions.js +81 -0
- package/dist/model/BatchResponse.js +81 -0
- package/dist/model/BatchResponseArray.js +75 -0
- package/dist/model/CreateMembershipRequest.js +80 -0
- package/dist/model/CreateTimeTrackingEntryRequest.js +73 -0
- package/dist/model/CustomFieldBase.js +1047 -0
- package/dist/model/CustomFieldBaseDateValue.js +74 -0
- package/dist/model/CustomFieldBaseEnumOptions.js +95 -0
- package/dist/model/CustomFieldBaseEnumValue.js +95 -0
- package/dist/model/CustomFieldCompact.js +233 -0
- package/dist/model/CustomFieldGidEnumOptionsBody.js +66 -0
- package/dist/model/CustomFieldRequest.js +1070 -0
- package/dist/model/CustomFieldResponse.js +1069 -0
- package/dist/model/CustomFieldResponseArray.js +75 -0
- package/dist/model/CustomFieldResponseCreatedBy.js +81 -0
- package/dist/model/CustomFieldResponseData.js +68 -0
- package/dist/model/CustomFieldResponsePeopleValue.js +81 -0
- package/dist/model/CustomFieldSettingBase.js +74 -0
- package/dist/model/CustomFieldSettingCompact.js +74 -0
- package/dist/model/CustomFieldSettingResponse.js +102 -0
- package/dist/model/CustomFieldSettingResponseArray.js +75 -0
- package/dist/model/CustomFieldSettingResponseCustomField.js +1069 -0
- package/dist/model/CustomFieldSettingResponseData.js +68 -0
- package/dist/model/CustomFieldSettingResponseParent.js +81 -0
- package/dist/model/CustomFieldSettingResponseProject.js +81 -0
- package/dist/model/CustomFieldsBody.js +66 -0
- package/dist/model/CustomFieldsCustomFieldGidBody.js +66 -0
- package/dist/model/DateVariableCompact.js +80 -0
- package/dist/model/DateVariableRequest.js +73 -0
- package/dist/model/EmptyResponse.js +61 -0
- package/dist/model/EmptyResponseData.js +68 -0
- package/dist/model/EnumOption.js +95 -0
- package/dist/model/EnumOptionBase.js +95 -0
- package/dist/model/EnumOptionData.js +68 -0
- package/dist/model/EnumOptionInsertRequest.js +82 -0
- package/dist/model/EnumOptionRequest.js +109 -0
- package/dist/model/EnumOptionsEnumOptionGidBody.js +66 -0
- package/dist/model/EnumOptionsInsertBody.js +66 -0
- package/dist/model/Error.js +80 -0
- package/dist/model/ErrorResponse.js +67 -0
- package/dist/model/ErrorResponseErrors.js +80 -0
- package/dist/model/EventResponse.js +109 -0
- package/dist/model/EventResponseArray.js +75 -0
- package/dist/model/EventResponseChange.js +95 -0
- package/dist/model/EventResponseParent.js +81 -0
- package/dist/model/EventResponseResource.js +81 -0
- package/dist/model/EventResponseUser.js +81 -0
- package/dist/model/GoalAddSubgoalRequest.js +82 -0
- package/dist/model/GoalAddSupportingRelationshipRequest.js +89 -0
- package/dist/model/GoalAddSupportingWorkRequest.js +68 -0
- package/dist/model/GoalBase.js +123 -0
- package/dist/model/GoalCompact.js +88 -0
- package/dist/model/GoalGidAddFollowersBody.js +66 -0
- package/dist/model/GoalGidAddSupportingRelationshipBody.js +66 -0
- package/dist/model/GoalGidRemoveFollowersBody.js +66 -0
- package/dist/model/GoalGidRemoveSupportingRelationshipBody.js +66 -0
- package/dist/model/GoalGidSetMetricBody.js +66 -0
- package/dist/model/GoalGidSetMetricCurrentValueBody.js +66 -0
- package/dist/model/GoalMembershipBase.js +102 -0
- package/dist/model/GoalMembershipBaseGoal.js +88 -0
- package/dist/model/GoalMembershipCompact.js +102 -0
- package/dist/model/GoalMembershipResponse.js +102 -0
- package/dist/model/GoalMetricBase.js +203 -0
- package/dist/model/GoalMetricCurrentValueRequest.js +81 -0
- package/dist/model/GoalMetricRequest.js +203 -0
- package/dist/model/GoalRelationshipBase.js +119 -0
- package/dist/model/GoalRelationshipBaseSupportedGoal.js +88 -0
- package/dist/model/GoalRelationshipBaseSupportingResource.js +81 -0
- package/dist/model/GoalRelationshipCompact.js +112 -0
- package/dist/model/GoalRelationshipRequest.js +119 -0
- package/dist/model/GoalRelationshipResponse.js +119 -0
- package/dist/model/GoalRelationshipResponseArray.js +75 -0
- package/dist/model/GoalRelationshipResponseData.js +68 -0
- package/dist/model/GoalRelationshipsGoalRelationshipGidBody.js +66 -0
- package/dist/model/GoalRemoveSubgoalRequest.js +68 -0
- package/dist/model/GoalRemoveSupportingRelationshipRequest.js +68 -0
- package/dist/model/GoalRequest.js +157 -0
- package/dist/model/GoalRequestBase.js +151 -0
- package/dist/model/GoalResponse.js +195 -0
- package/dist/model/GoalResponseArray.js +75 -0
- package/dist/model/GoalResponseCurrentStatusUpdate.js +110 -0
- package/dist/model/GoalResponseData.js +68 -0
- package/dist/model/GoalResponseLikes.js +74 -0
- package/dist/model/GoalResponseMetric.js +210 -0
- package/dist/model/GoalResponseTeam.js +81 -0
- package/dist/model/GoalResponseTimePeriod.js +144 -0
- package/dist/model/GoalResponseWorkspace.js +81 -0
- package/dist/model/GoalUpdateRequest.js +158 -0
- package/dist/model/GoalsBody.js +66 -0
- package/dist/model/GoalsGoalGidBody.js +66 -0
- package/dist/model/InlineResponse412.js +73 -0
- package/dist/model/InlineResponse412Errors.js +66 -0
- package/dist/model/JobBase.js +136 -0
- package/dist/model/JobBaseNewProject.js +81 -0
- package/dist/model/JobBaseNewProjectTemplate.js +81 -0
- package/dist/model/JobBaseNewTask.js +115 -0
- package/dist/model/JobCompact.js +136 -0
- package/dist/model/JobResponse.js +136 -0
- package/dist/model/JobResponseData.js +68 -0
- package/dist/model/Like.js +74 -0
- package/dist/model/MemberCompact.js +81 -0
- package/dist/model/MembershipRequest.js +66 -0
- package/dist/model/MembershipResponse.js +60 -0
- package/dist/model/MembershipResponseArray.js +75 -0
- package/dist/model/MembershipResponseData.js +68 -0
- package/dist/model/MembershipsBody.js +66 -0
- package/dist/model/ModifyDependenciesRequest.js +66 -0
- package/dist/model/ModifyDependentsRequest.js +67 -0
- package/dist/model/NextPage.js +81 -0
- package/dist/model/OrganizationExportBase.js +129 -0
- package/dist/model/OrganizationExportCompact.js +129 -0
- package/dist/model/OrganizationExportRequest.js +67 -0
- package/dist/model/OrganizationExportResponse.js +129 -0
- package/dist/model/OrganizationExportResponseData.js +68 -0
- package/dist/model/OrganizationExportsBody.js +66 -0
- package/dist/model/PortfolioAddItemRequest.js +82 -0
- package/dist/model/PortfolioBase.js +185 -0
- package/dist/model/PortfolioCompact.js +81 -0
- package/dist/model/PortfolioGidAddCustomFieldSettingBody.js +66 -0
- package/dist/model/PortfolioGidAddItemBody.js +66 -0
- package/dist/model/PortfolioGidAddMembersBody.js +66 -0
- package/dist/model/PortfolioGidRemoveCustomFieldSettingBody.js +66 -0
- package/dist/model/PortfolioGidRemoveItemBody.js +66 -0
- package/dist/model/PortfolioGidRemoveMembersBody.js +66 -0
- package/dist/model/PortfolioMembershipBase.js +88 -0
- package/dist/model/PortfolioMembershipBasePortfolio.js +81 -0
- package/dist/model/PortfolioMembershipCompact.js +88 -0
- package/dist/model/PortfolioMembershipResponse.js +88 -0
- package/dist/model/PortfolioMembershipResponseArray.js +75 -0
- package/dist/model/PortfolioMembershipResponseData.js +68 -0
- package/dist/model/PortfolioRemoveItemRequest.js +68 -0
- package/dist/model/PortfolioRequest.js +206 -0
- package/dist/model/PortfolioResponse.js +277 -0
- package/dist/model/PortfolioResponseArray.js +75 -0
- package/dist/model/PortfolioResponseCurrentStatusUpdate.js +110 -0
- package/dist/model/PortfolioResponseCustomFieldSettings.js +102 -0
- package/dist/model/PortfolioResponseCustomFields.js +233 -0
- package/dist/model/PortfolioResponseData.js +68 -0
- package/dist/model/PortfolioResponseWorkspace.js +81 -0
- package/dist/model/PortfoliosBody.js +66 -0
- package/dist/model/PortfoliosPortfolioGidBody.js +66 -0
- package/dist/model/Preview.js +116 -0
- package/dist/model/ProjectBase.js +329 -0
- package/dist/model/ProjectBaseCurrentStatus.js +160 -0
- package/dist/model/ProjectBaseCurrentStatusUpdate.js +110 -0
- package/dist/model/ProjectBaseWorkspace.js +81 -0
- package/dist/model/ProjectBriefBase.js +88 -0
- package/dist/model/ProjectBriefCompact.js +74 -0
- package/dist/model/ProjectBriefRequest.js +95 -0
- package/dist/model/ProjectBriefResponse.js +109 -0
- package/dist/model/ProjectBriefResponseData.js +68 -0
- package/dist/model/ProjectBriefResponseProject.js +81 -0
- package/dist/model/ProjectBriefsProjectBriefGidBody.js +66 -0
- package/dist/model/ProjectCompact.js +81 -0
- package/dist/model/ProjectDuplicateRequest.js +89 -0
- package/dist/model/ProjectDuplicateRequestScheduleDates.js +83 -0
- package/dist/model/ProjectGidAddCustomFieldSettingBody.js +66 -0
- package/dist/model/ProjectGidAddFollowersBody.js +66 -0
- package/dist/model/ProjectGidAddMembersBody.js +66 -0
- package/dist/model/ProjectGidDuplicateBody.js +66 -0
- package/dist/model/ProjectGidProjectBriefsBody.js +66 -0
- package/dist/model/ProjectGidProjectStatusesBody.js +66 -0
- package/dist/model/ProjectGidRemoveCustomFieldSettingBody.js +66 -0
- package/dist/model/ProjectGidRemoveFollowersBody.js +66 -0
- package/dist/model/ProjectGidRemoveMembersBody.js +66 -0
- package/dist/model/ProjectGidSaveAsTemplateBody.js +66 -0
- package/dist/model/ProjectGidSectionsBody.js +66 -0
- package/dist/model/ProjectMembershipBase.js +81 -0
- package/dist/model/ProjectMembershipCompact.js +81 -0
- package/dist/model/ProjectMembershipResponse.js +153 -0
- package/dist/model/ProjectMembershipResponseArray.js +75 -0
- package/dist/model/ProjectMembershipResponseData.js +68 -0
- package/dist/model/ProjectMembershipResponseMember.js +81 -0
- package/dist/model/ProjectRequest.js +359 -0
- package/dist/model/ProjectResponse.js +574 -0
- package/dist/model/ProjectResponseArray.js +75 -0
- package/dist/model/ProjectResponseCompletedBy.js +81 -0
- package/dist/model/ProjectResponseCreatedFromTemplate.js +81 -0
- package/dist/model/ProjectResponseData.js +68 -0
- package/dist/model/ProjectResponseProjectBrief.js +74 -0
- package/dist/model/ProjectResponseTeam.js +81 -0
- package/dist/model/ProjectSaveAsTemplateRequest.js +91 -0
- package/dist/model/ProjectSectionInsertRequest.js +82 -0
- package/dist/model/ProjectStatusBase.js +133 -0
- package/dist/model/ProjectStatusCompact.js +81 -0
- package/dist/model/ProjectStatusRequest.js +133 -0
- package/dist/model/ProjectStatusResponse.js +160 -0
- package/dist/model/ProjectStatusResponseArray.js +75 -0
- package/dist/model/ProjectStatusResponseData.js +68 -0
- package/dist/model/ProjectTemplateBase.js +241 -0
- package/dist/model/ProjectTemplateBaseRequestedDates.js +80 -0
- package/dist/model/ProjectTemplateBaseRequestedRoles.js +81 -0
- package/dist/model/ProjectTemplateBaseTeam.js +81 -0
- package/dist/model/ProjectTemplateCompact.js +81 -0
- package/dist/model/ProjectTemplateGidInstantiateProjectBody.js +66 -0
- package/dist/model/ProjectTemplateInstantiateProjectRequest.js +105 -0
- package/dist/model/ProjectTemplateInstantiateProjectRequestRequestedDates.js +73 -0
- package/dist/model/ProjectTemplateInstantiateProjectRequestRequestedRoles.js +73 -0
- package/dist/model/ProjectTemplateResponse.js +241 -0
- package/dist/model/ProjectTemplateResponseArray.js +75 -0
- package/dist/model/ProjectTemplateResponseData.js +68 -0
- package/dist/model/ProjectsBody.js +66 -0
- package/dist/model/ProjectsProjectGidBody.js +66 -0
- package/dist/model/RemoveCustomFieldSettingRequest.js +68 -0
- package/dist/model/RemoveFollowersRequest.js +68 -0
- package/dist/model/RemoveMembersRequest.js +68 -0
- package/dist/model/RequestedRoleRequest.js +73 -0
- package/dist/model/RuleTriggerGidRunBody.js +66 -0
- package/dist/model/RuleTriggerRequest.js +79 -0
- package/dist/model/RuleTriggerResponse.js +66 -0
- package/dist/model/RuleTriggerResponseData.js +68 -0
- package/dist/model/SectionBase.js +81 -0
- package/dist/model/SectionCompact.js +81 -0
- package/dist/model/SectionGidAddTaskBody.js +66 -0
- package/dist/model/SectionRequest.js +82 -0
- package/dist/model/SectionResponse.js +102 -0
- package/dist/model/SectionResponseArray.js +75 -0
- package/dist/model/SectionResponseData.js +68 -0
- package/dist/model/SectionTaskInsertRequest.js +82 -0
- package/dist/model/SectionsInsertBody.js +66 -0
- package/dist/model/SectionsSectionGidBody.js +66 -0
- package/dist/model/StatusUpdateBase.js +187 -0
- package/dist/model/StatusUpdateCompact.js +110 -0
- package/dist/model/StatusUpdateRequest.js +196 -0
- package/dist/model/StatusUpdateResponse.js +264 -0
- package/dist/model/StatusUpdateResponseArray.js +75 -0
- package/dist/model/StatusUpdateResponseData.js +68 -0
- package/dist/model/StatusUpdateResponseParent.js +81 -0
- package/dist/model/StatusUpdatesBody.js +66 -0
- package/dist/model/StoriesStoryGidBody.js +66 -0
- package/dist/model/StoryBase.js +183 -0
- package/dist/model/StoryCompact.js +102 -0
- package/dist/model/StoryRequest.js +183 -0
- package/dist/model/StoryResponse.js +540 -0
- package/dist/model/StoryResponseArray.js +75 -0
- package/dist/model/StoryResponseAssignee.js +81 -0
- package/dist/model/StoryResponseCustomField.js +233 -0
- package/dist/model/StoryResponseData.js +68 -0
- package/dist/model/StoryResponseDates.js +81 -0
- package/dist/model/StoryResponseOldDates.js +81 -0
- package/dist/model/StoryResponseOldEnumValue.js +95 -0
- package/dist/model/StoryResponseOldSection.js +81 -0
- package/dist/model/StoryResponsePreviews.js +116 -0
- package/dist/model/StoryResponseProject.js +81 -0
- package/dist/model/StoryResponseStory.js +102 -0
- package/dist/model/StoryResponseTag.js +81 -0
- package/dist/model/StoryResponseTarget.js +115 -0
- package/dist/model/StoryResponseTask.js +115 -0
- package/dist/model/TagBase.js +197 -0
- package/dist/model/TagCompact.js +81 -0
- package/dist/model/TagRequest.js +211 -0
- package/dist/model/TagResponse.js +226 -0
- package/dist/model/TagResponseArray.js +75 -0
- package/dist/model/TagResponseData.js +68 -0
- package/dist/model/TagsBody.js +66 -0
- package/dist/model/TaskAddFollowersRequest.js +68 -0
- package/dist/model/TaskAddProjectRequest.js +89 -0
- package/dist/model/TaskAddTagRequest.js +68 -0
- package/dist/model/TaskBase.js +359 -0
- package/dist/model/TaskBaseCompletedBy.js +81 -0
- package/dist/model/TaskBaseDependencies.js +74 -0
- package/dist/model/TaskBaseExternal.js +72 -0
- package/dist/model/TaskBaseMemberships.js +73 -0
- package/dist/model/TaskBaseSection.js +81 -0
- package/dist/model/TaskCompact.js +115 -0
- package/dist/model/TaskCountResponse.js +102 -0
- package/dist/model/TaskCountResponseData.js +68 -0
- package/dist/model/TaskDuplicateRequest.js +73 -0
- package/dist/model/TaskGidAddDependenciesBody.js +66 -0
- package/dist/model/TaskGidAddDependentsBody.js +66 -0
- package/dist/model/TaskGidAddFollowersBody.js +66 -0
- package/dist/model/TaskGidAddProjectBody.js +66 -0
- package/dist/model/TaskGidAddTagBody.js +66 -0
- package/dist/model/TaskGidDuplicateBody.js +66 -0
- package/dist/model/TaskGidRemoveDependenciesBody.js +66 -0
- package/dist/model/TaskGidRemoveDependentsBody.js +66 -0
- package/dist/model/TaskGidRemoveFollowersBody.js +66 -0
- package/dist/model/TaskGidRemoveProjectBody.js +66 -0
- package/dist/model/TaskGidRemoveTagBody.js +66 -0
- package/dist/model/TaskGidSetParentBody.js +66 -0
- package/dist/model/TaskGidStoriesBody.js +66 -0
- package/dist/model/TaskGidSubtasksBody.js +66 -0
- package/dist/model/TaskGidTimeTrackingEntriesBody.js +66 -0
- package/dist/model/TaskRemoveFollowersRequest.js +68 -0
- package/dist/model/TaskRemoveProjectRequest.js +68 -0
- package/dist/model/TaskRemoveTagRequest.js +68 -0
- package/dist/model/TaskRequest.js +417 -0
- package/dist/model/TaskResponse.js +426 -0
- package/dist/model/TaskResponseArray.js +75 -0
- package/dist/model/TaskResponseAssigneeSection.js +81 -0
- package/dist/model/TaskResponseCustomFields.js +1069 -0
- package/dist/model/TaskResponseData.js +68 -0
- package/dist/model/TaskResponseParent.js +115 -0
- package/dist/model/TaskResponseTags.js +81 -0
- package/dist/model/TaskResponseWorkspace.js +81 -0
- package/dist/model/TaskSetParentRequest.js +82 -0
- package/dist/model/TasksBody.js +66 -0
- package/dist/model/TasksTaskGidBody.js +66 -0
- package/dist/model/TeamAddUserRequest.js +67 -0
- package/dist/model/TeamBase.js +81 -0
- package/dist/model/TeamCompact.js +81 -0
- package/dist/model/TeamGidAddUserBody.js +66 -0
- package/dist/model/TeamGidProjectsBody.js +66 -0
- package/dist/model/TeamGidRemoveUserBody.js +66 -0
- package/dist/model/TeamMembershipBase.js +109 -0
- package/dist/model/TeamMembershipCompact.js +109 -0
- package/dist/model/TeamMembershipResponse.js +109 -0
- package/dist/model/TeamMembershipResponseArray.js +75 -0
- package/dist/model/TeamMembershipResponseData.js +68 -0
- package/dist/model/TeamRemoveUserRequest.js +67 -0
- package/dist/model/TeamRequest.js +275 -0
- package/dist/model/TeamResponse.js +282 -0
- package/dist/model/TeamResponseArray.js +75 -0
- package/dist/model/TeamResponseData.js +68 -0
- package/dist/model/TeamResponseOrganization.js +81 -0
- package/dist/model/TeamsBody.js +66 -0
- package/dist/model/TeamsTeamGidBody.js +66 -0
- package/dist/model/TemplateRole.js +81 -0
- package/dist/model/TimePeriodBase.js +151 -0
- package/dist/model/TimePeriodCompact.js +144 -0
- package/dist/model/TimePeriodResponse.js +151 -0
- package/dist/model/TimePeriodResponseArray.js +75 -0
- package/dist/model/TimePeriodResponseData.js +68 -0
- package/dist/model/TimeTrackingEntriesTimeTrackingEntryGidBody.js +66 -0
- package/dist/model/TimeTrackingEntryBase.js +109 -0
- package/dist/model/TimeTrackingEntryBaseData.js +68 -0
- package/dist/model/TimeTrackingEntryCompact.js +95 -0
- package/dist/model/TimeTrackingEntryCompactArray.js +75 -0
- package/dist/model/UpdateTimeTrackingEntryRequest.js +73 -0
- package/dist/model/UserBase.js +81 -0
- package/dist/model/UserBaseResponse.js +95 -0
- package/dist/model/UserBaseResponseData.js +68 -0
- package/dist/model/UserBaseResponsePhoto.js +96 -0
- package/dist/model/UserCompact.js +81 -0
- package/dist/model/UserRequest.js +81 -0
- package/dist/model/UserResponse.js +103 -0
- package/dist/model/UserResponseArray.js +75 -0
- package/dist/model/UserResponseData.js +68 -0
- package/dist/model/UserTaskListBase.js +95 -0
- package/dist/model/UserTaskListCompact.js +95 -0
- package/dist/model/UserTaskListRequest.js +95 -0
- package/dist/model/UserTaskListResponse.js +95 -0
- package/dist/model/UserTaskListResponseData.js +68 -0
- package/dist/model/WebhookCompact.js +95 -0
- package/dist/model/WebhookCompactResource.js +81 -0
- package/dist/model/WebhookFilter.js +88 -0
- package/dist/model/WebhookRequest.js +85 -0
- package/dist/model/WebhookRequestFilters.js +88 -0
- package/dist/model/WebhookResponse.js +131 -0
- package/dist/model/WebhookResponseArray.js +75 -0
- package/dist/model/WebhookResponseData.js +68 -0
- package/dist/model/WebhookUpdateRequest.js +67 -0
- package/dist/model/WebhooksBody.js +66 -0
- package/dist/model/WebhooksWebhookGidBody.js +66 -0
- package/dist/model/WorkspaceAddUserRequest.js +67 -0
- package/dist/model/WorkspaceBase.js +81 -0
- package/dist/model/WorkspaceCompact.js +81 -0
- package/dist/model/WorkspaceGidAddUserBody.js +66 -0
- package/dist/model/WorkspaceGidProjectsBody.js +66 -0
- package/dist/model/WorkspaceGidRemoveUserBody.js +66 -0
- package/dist/model/WorkspaceGidTagsBody.js +66 -0
- package/dist/model/WorkspaceMembershipBase.js +88 -0
- package/dist/model/WorkspaceMembershipCompact.js +88 -0
- package/dist/model/WorkspaceMembershipRequest.js +88 -0
- package/dist/model/WorkspaceMembershipResponse.js +130 -0
- package/dist/model/WorkspaceMembershipResponseArray.js +75 -0
- package/dist/model/WorkspaceMembershipResponseData.js +68 -0
- package/dist/model/WorkspaceMembershipResponseUserTaskList.js +95 -0
- package/dist/model/WorkspaceMembershipResponseVacationDates.js +74 -0
- package/dist/model/WorkspaceRemoveUserRequest.js +67 -0
- package/dist/model/WorkspaceRequest.js +81 -0
- package/dist/model/WorkspaceResponse.js +95 -0
- package/dist/model/WorkspaceResponseArray.js +75 -0
- package/dist/model/WorkspaceResponseData.js +68 -0
- package/dist/model/WorkspacesWorkspaceGidBody.js +66 -0
- package/mocha.opts +1 -0
- package/package.json +33 -44
- package/src/ApiClient.js +600 -0
- package/src/api/AttachmentsApi.js +238 -0
- package/src/api/AuditLogAPIApi.js +95 -0
- package/src/api/BatchAPIApi.js +89 -0
- package/src/api/CustomFieldSettingsApi.js +141 -0
- package/src/api/CustomFieldsApi.js +439 -0
- package/src/api/EventsApi.js +90 -0
- package/src/api/GoalRelationshipsApi.js +305 -0
- package/src/api/GoalsApi.js +563 -0
- package/src/api/JobsApi.js +88 -0
- package/src/api/MembershipsApi.js +181 -0
- package/src/api/OrganizationExportsApi.js +138 -0
- package/src/api/PortfolioMembershipsApi.js +190 -0
- package/src/api/PortfoliosApi.js +669 -0
- package/src/api/ProjectBriefsApi.js +246 -0
- package/src/api/ProjectMembershipsApi.js +141 -0
- package/src/api/ProjectStatusesApi.js +243 -0
- package/src/api/ProjectTemplatesApi.js +288 -0
- package/src/api/ProjectsApi.js +1040 -0
- package/src/api/RulesApi.js +92 -0
- package/src/api/SectionsApi.js +390 -0
- package/src/api/StatusUpdatesApi.js +241 -0
- package/src/api/StoriesApi.js +298 -0
- package/src/api/TagsApi.js +440 -0
- package/src/api/TasksApi.js +1454 -0
- package/src/api/TeamMembershipsApi.js +245 -0
- package/src/api/TeamsApi.js +411 -0
- package/src/api/TimePeriodsApi.js +142 -0
- package/src/api/TimeTrackingEntriesApi.js +298 -0
- package/src/api/TypeaheadApi.js +96 -0
- package/src/api/UserTaskListsApi.js +142 -0
- package/src/api/UsersApi.js +299 -0
- package/src/api/WebhooksApi.js +294 -0
- package/src/api/WorkspaceMembershipsApi.js +192 -0
- package/src/api/WorkspacesApi.js +300 -0
- package/src/index.js +3183 -0
- package/src/model/AddCustomFieldSettingRequest.js +79 -0
- package/src/model/AddFollowersRequest.js +55 -0
- package/src/model/AddMembersRequest.js +55 -0
- package/src/model/AllOfProjectResponseOwner.js +45 -0
- package/src/model/AllOfProjectTemplateBaseOwner.js +45 -0
- package/src/model/AllOfProjectTemplateResponseOwner.js +45 -0
- package/src/model/AllOfStoryResponseNewDateValue.js +44 -0
- package/src/model/AllOfStoryResponseOldDateValue.js +44 -0
- package/src/model/AllOfUserTaskListBaseOwner.js +45 -0
- package/src/model/AllOfUserTaskListBaseWorkspace.js +45 -0
- package/src/model/AllOfUserTaskListCompactOwner.js +45 -0
- package/src/model/AllOfUserTaskListCompactWorkspace.js +45 -0
- package/src/model/AllOfUserTaskListRequestOwner.js +45 -0
- package/src/model/AllOfUserTaskListRequestWorkspace.js +45 -0
- package/src/model/AllOfUserTaskListResponseOwner.js +45 -0
- package/src/model/AllOfUserTaskListResponseWorkspace.js +45 -0
- package/src/model/AllOfWorkspaceMembershipResponseUserTaskListOwner.js +45 -0
- package/src/model/AllOfWorkspaceMembershipResponseUserTaskListWorkspace.js +45 -0
- package/src/model/AsanaNamedResource.js +70 -0
- package/src/model/AsanaNamedResourceArray.js +63 -0
- package/src/model/AsanaResource.js +62 -0
- package/src/model/AttachmentBase.js +78 -0
- package/src/model/AttachmentCompact.js +78 -0
- package/src/model/AttachmentRequest.js +143 -0
- package/src/model/AttachmentResponse.js +141 -0
- package/src/model/AttachmentResponseArray.js +63 -0
- package/src/model/AttachmentResponseData.js +55 -0
- package/src/model/AttachmentResponseParent.js +78 -0
- package/src/model/AuditLogEvent.js +110 -0
- package/src/model/AuditLogEventActor.js +114 -0
- package/src/model/AuditLogEventArray.js +63 -0
- package/src/model/AuditLogEventContext.js +164 -0
- package/src/model/AuditLogEventDetails.js +45 -0
- package/src/model/AuditLogEventResource.js +86 -0
- package/src/model/BatchBody.js +53 -0
- package/src/model/BatchRequest.js +54 -0
- package/src/model/BatchRequestAction.js +124 -0
- package/src/model/BatchRequestActions.js +124 -0
- package/src/model/BatchRequestOptions.js +70 -0
- package/src/model/BatchResponse.js +70 -0
- package/src/model/BatchResponseArray.js +63 -0
- package/src/model/CreateMembershipRequest.js +69 -0
- package/src/model/CreateTimeTrackingEntryRequest.js +61 -0
- package/src/model/CustomFieldBase.js +1209 -0
- package/src/model/CustomFieldBaseDateValue.js +62 -0
- package/src/model/CustomFieldBaseEnumOptions.js +86 -0
- package/src/model/CustomFieldBaseEnumValue.js +86 -0
- package/src/model/CustomFieldCompact.js +243 -0
- package/src/model/CustomFieldGidEnumOptionsBody.js +53 -0
- package/src/model/CustomFieldRequest.js +1235 -0
- package/src/model/CustomFieldResponse.js +1234 -0
- package/src/model/CustomFieldResponseArray.js +63 -0
- package/src/model/CustomFieldResponseCreatedBy.js +70 -0
- package/src/model/CustomFieldResponseData.js +55 -0
- package/src/model/CustomFieldResponsePeopleValue.js +70 -0
- package/src/model/CustomFieldSettingBase.js +62 -0
- package/src/model/CustomFieldSettingCompact.js +62 -0
- package/src/model/CustomFieldSettingResponse.js +94 -0
- package/src/model/CustomFieldSettingResponseArray.js +63 -0
- package/src/model/CustomFieldSettingResponseCustomField.js +1234 -0
- package/src/model/CustomFieldSettingResponseData.js +55 -0
- package/src/model/CustomFieldSettingResponseParent.js +70 -0
- package/src/model/CustomFieldSettingResponseProject.js +70 -0
- package/src/model/CustomFieldsBody.js +53 -0
- package/src/model/CustomFieldsCustomFieldGidBody.js +53 -0
- package/src/model/DateVariableCompact.js +69 -0
- package/src/model/DateVariableRequest.js +61 -0
- package/src/model/EmptyResponse.js +45 -0
- package/src/model/EmptyResponseData.js +55 -0
- package/src/model/EnumOption.js +86 -0
- package/src/model/EnumOptionBase.js +86 -0
- package/src/model/EnumOptionData.js +55 -0
- package/src/model/EnumOptionInsertRequest.js +71 -0
- package/src/model/EnumOptionRequest.js +102 -0
- package/src/model/EnumOptionsEnumOptionGidBody.js +53 -0
- package/src/model/EnumOptionsInsertBody.js +53 -0
- package/src/model/Error.js +69 -0
- package/src/model/ErrorResponse.js +54 -0
- package/src/model/ErrorResponseErrors.js +69 -0
- package/src/model/EventResponse.js +102 -0
- package/src/model/EventResponseArray.js +63 -0
- package/src/model/EventResponseChange.js +86 -0
- package/src/model/EventResponseParent.js +70 -0
- package/src/model/EventResponseResource.js +70 -0
- package/src/model/EventResponseUser.js +70 -0
- package/src/model/GoalAddSubgoalRequest.js +71 -0
- package/src/model/GoalAddSupportingRelationshipRequest.js +79 -0
- package/src/model/GoalAddSupportingWorkRequest.js +55 -0
- package/src/model/GoalBase.js +118 -0
- package/src/model/GoalCompact.js +78 -0
- package/src/model/GoalGidAddFollowersBody.js +53 -0
- package/src/model/GoalGidAddSupportingRelationshipBody.js +53 -0
- package/src/model/GoalGidRemoveFollowersBody.js +53 -0
- package/src/model/GoalGidRemoveSupportingRelationshipBody.js +53 -0
- package/src/model/GoalGidSetMetricBody.js +53 -0
- package/src/model/GoalGidSetMetricCurrentValueBody.js +53 -0
- package/src/model/GoalMembershipBase.js +94 -0
- package/src/model/GoalMembershipBaseGoal.js +78 -0
- package/src/model/GoalMembershipCompact.js +94 -0
- package/src/model/GoalMembershipResponse.js +94 -0
- package/src/model/GoalMetricBase.js +206 -0
- package/src/model/GoalMetricCurrentValueRequest.js +70 -0
- package/src/model/GoalMetricRequest.js +206 -0
- package/src/model/GoalRelationshipBase.js +112 -0
- package/src/model/GoalRelationshipBaseSupportedGoal.js +78 -0
- package/src/model/GoalRelationshipBaseSupportingResource.js +70 -0
- package/src/model/GoalRelationshipCompact.js +104 -0
- package/src/model/GoalRelationshipRequest.js +112 -0
- package/src/model/GoalRelationshipResponse.js +112 -0
- package/src/model/GoalRelationshipResponseArray.js +63 -0
- package/src/model/GoalRelationshipResponseData.js +55 -0
- package/src/model/GoalRelationshipsGoalRelationshipGidBody.js +53 -0
- package/src/model/GoalRemoveSubgoalRequest.js +55 -0
- package/src/model/GoalRemoveSupportingRelationshipRequest.js +55 -0
- package/src/model/GoalRequest.js +157 -0
- package/src/model/GoalRequestBase.js +150 -0
- package/src/model/GoalResponse.js +200 -0
- package/src/model/GoalResponseArray.js +63 -0
- package/src/model/GoalResponseCurrentStatusUpdate.js +102 -0
- package/src/model/GoalResponseData.js +55 -0
- package/src/model/GoalResponseLikes.js +62 -0
- package/src/model/GoalResponseMetric.js +214 -0
- package/src/model/GoalResponseTeam.js +70 -0
- package/src/model/GoalResponseTimePeriod.js +142 -0
- package/src/model/GoalResponseWorkspace.js +70 -0
- package/src/model/GoalUpdateRequest.js +158 -0
- package/src/model/GoalsBody.js +53 -0
- package/src/model/GoalsGoalGidBody.js +53 -0
- package/src/model/InlineResponse412.js +61 -0
- package/src/model/InlineResponse412Errors.js +53 -0
- package/src/model/JobBase.js +132 -0
- package/src/model/JobBaseNewProject.js +70 -0
- package/src/model/JobBaseNewProjectTemplate.js +70 -0
- package/src/model/JobBaseNewTask.js +108 -0
- package/src/model/JobCompact.js +132 -0
- package/src/model/JobResponse.js +132 -0
- package/src/model/JobResponseData.js +55 -0
- package/src/model/Like.js +62 -0
- package/src/model/MemberCompact.js +70 -0
- package/src/model/MembershipRequest.js +53 -0
- package/src/model/MembershipResponse.js +44 -0
- package/src/model/MembershipResponseArray.js +63 -0
- package/src/model/MembershipResponseData.js +55 -0
- package/src/model/MembershipsBody.js +53 -0
- package/src/model/ModifyDependenciesRequest.js +53 -0
- package/src/model/ModifyDependentsRequest.js +54 -0
- package/src/model/NextPage.js +70 -0
- package/src/model/OrganizationExportBase.js +124 -0
- package/src/model/OrganizationExportCompact.js +124 -0
- package/src/model/OrganizationExportRequest.js +54 -0
- package/src/model/OrganizationExportResponse.js +124 -0
- package/src/model/OrganizationExportResponseData.js +55 -0
- package/src/model/OrganizationExportsBody.js +53 -0
- package/src/model/PortfolioAddItemRequest.js +71 -0
- package/src/model/PortfolioBase.js +192 -0
- package/src/model/PortfolioCompact.js +70 -0
- package/src/model/PortfolioGidAddCustomFieldSettingBody.js +53 -0
- package/src/model/PortfolioGidAddItemBody.js +53 -0
- package/src/model/PortfolioGidAddMembersBody.js +53 -0
- package/src/model/PortfolioGidRemoveCustomFieldSettingBody.js +53 -0
- package/src/model/PortfolioGidRemoveItemBody.js +53 -0
- package/src/model/PortfolioGidRemoveMembersBody.js +53 -0
- package/src/model/PortfolioMembershipBase.js +78 -0
- package/src/model/PortfolioMembershipBasePortfolio.js +70 -0
- package/src/model/PortfolioMembershipCompact.js +78 -0
- package/src/model/PortfolioMembershipResponse.js +78 -0
- package/src/model/PortfolioMembershipResponseArray.js +63 -0
- package/src/model/PortfolioMembershipResponseData.js +55 -0
- package/src/model/PortfolioRemoveItemRequest.js +55 -0
- package/src/model/PortfolioRequest.js +216 -0
- package/src/model/PortfolioResponse.js +297 -0
- package/src/model/PortfolioResponseArray.js +63 -0
- package/src/model/PortfolioResponseCurrentStatusUpdate.js +102 -0
- package/src/model/PortfolioResponseCustomFieldSettings.js +94 -0
- package/src/model/PortfolioResponseCustomFields.js +243 -0
- package/src/model/PortfolioResponseData.js +55 -0
- package/src/model/PortfolioResponseWorkspace.js +70 -0
- package/src/model/PortfoliosBody.js +53 -0
- package/src/model/PortfoliosPortfolioGidBody.js +53 -0
- package/src/model/Preview.js +110 -0
- package/src/model/ProjectBase.js +356 -0
- package/src/model/ProjectBaseCurrentStatus.js +159 -0
- package/src/model/ProjectBaseCurrentStatusUpdate.js +102 -0
- package/src/model/ProjectBaseWorkspace.js +70 -0
- package/src/model/ProjectBriefBase.js +78 -0
- package/src/model/ProjectBriefCompact.js +62 -0
- package/src/model/ProjectBriefRequest.js +86 -0
- package/src/model/ProjectBriefResponse.js +102 -0
- package/src/model/ProjectBriefResponseData.js +55 -0
- package/src/model/ProjectBriefResponseProject.js +70 -0
- package/src/model/ProjectBriefsProjectBriefGidBody.js +53 -0
- package/src/model/ProjectCompact.js +70 -0
- package/src/model/ProjectDuplicateRequest.js +79 -0
- package/src/model/ProjectDuplicateRequestScheduleDates.js +72 -0
- package/src/model/ProjectGidAddCustomFieldSettingBody.js +53 -0
- package/src/model/ProjectGidAddFollowersBody.js +53 -0
- package/src/model/ProjectGidAddMembersBody.js +53 -0
- package/src/model/ProjectGidDuplicateBody.js +53 -0
- package/src/model/ProjectGidProjectBriefsBody.js +53 -0
- package/src/model/ProjectGidProjectStatusesBody.js +53 -0
- package/src/model/ProjectGidRemoveCustomFieldSettingBody.js +53 -0
- package/src/model/ProjectGidRemoveFollowersBody.js +53 -0
- package/src/model/ProjectGidRemoveMembersBody.js +53 -0
- package/src/model/ProjectGidSaveAsTemplateBody.js +53 -0
- package/src/model/ProjectGidSectionsBody.js +53 -0
- package/src/model/ProjectMembershipBase.js +70 -0
- package/src/model/ProjectMembershipCompact.js +70 -0
- package/src/model/ProjectMembershipResponse.js +150 -0
- package/src/model/ProjectMembershipResponseArray.js +63 -0
- package/src/model/ProjectMembershipResponseData.js +55 -0
- package/src/model/ProjectMembershipResponseMember.js +70 -0
- package/src/model/ProjectRequest.js +388 -0
- package/src/model/ProjectResponse.js +643 -0
- package/src/model/ProjectResponseArray.js +63 -0
- package/src/model/ProjectResponseCompletedBy.js +70 -0
- package/src/model/ProjectResponseCreatedFromTemplate.js +70 -0
- package/src/model/ProjectResponseData.js +55 -0
- package/src/model/ProjectResponseProjectBrief.js +62 -0
- package/src/model/ProjectResponseTeam.js +70 -0
- package/src/model/ProjectSaveAsTemplateRequest.js +81 -0
- package/src/model/ProjectSectionInsertRequest.js +71 -0
- package/src/model/ProjectStatusBase.js +128 -0
- package/src/model/ProjectStatusCompact.js +70 -0
- package/src/model/ProjectStatusRequest.js +128 -0
- package/src/model/ProjectStatusResponse.js +159 -0
- package/src/model/ProjectStatusResponseArray.js +63 -0
- package/src/model/ProjectStatusResponseData.js +55 -0
- package/src/model/ProjectTemplateBase.js +256 -0
- package/src/model/ProjectTemplateBaseRequestedDates.js +69 -0
- package/src/model/ProjectTemplateBaseRequestedRoles.js +70 -0
- package/src/model/ProjectTemplateBaseTeam.js +70 -0
- package/src/model/ProjectTemplateCompact.js +70 -0
- package/src/model/ProjectTemplateGidInstantiateProjectBody.js +53 -0
- package/src/model/ProjectTemplateInstantiateProjectRequest.js +97 -0
- package/src/model/ProjectTemplateInstantiateProjectRequestRequestedDates.js +61 -0
- package/src/model/ProjectTemplateInstantiateProjectRequestRequestedRoles.js +61 -0
- package/src/model/ProjectTemplateResponse.js +256 -0
- package/src/model/ProjectTemplateResponseArray.js +63 -0
- package/src/model/ProjectTemplateResponseData.js +55 -0
- package/src/model/ProjectsBody.js +53 -0
- package/src/model/ProjectsProjectGidBody.js +53 -0
- package/src/model/RemoveCustomFieldSettingRequest.js +55 -0
- package/src/model/RemoveFollowersRequest.js +55 -0
- package/src/model/RemoveMembersRequest.js +55 -0
- package/src/model/RequestedRoleRequest.js +61 -0
- package/src/model/RuleTriggerGidRunBody.js +53 -0
- package/src/model/RuleTriggerRequest.js +65 -0
- package/src/model/RuleTriggerResponse.js +53 -0
- package/src/model/RuleTriggerResponseData.js +55 -0
- package/src/model/SectionBase.js +70 -0
- package/src/model/SectionCompact.js +70 -0
- package/src/model/SectionGidAddTaskBody.js +53 -0
- package/src/model/SectionRequest.js +71 -0
- package/src/model/SectionResponse.js +94 -0
- package/src/model/SectionResponseArray.js +63 -0
- package/src/model/SectionResponseData.js +55 -0
- package/src/model/SectionTaskInsertRequest.js +71 -0
- package/src/model/SectionsInsertBody.js +53 -0
- package/src/model/SectionsSectionGidBody.js +53 -0
- package/src/model/StatusUpdateBase.js +190 -0
- package/src/model/StatusUpdateCompact.js +102 -0
- package/src/model/StatusUpdateRequest.js +200 -0
- package/src/model/StatusUpdateResponse.js +278 -0
- package/src/model/StatusUpdateResponseArray.js +63 -0
- package/src/model/StatusUpdateResponseData.js +55 -0
- package/src/model/StatusUpdateResponseParent.js +70 -0
- package/src/model/StatusUpdatesBody.js +53 -0
- package/src/model/StoriesStoryGidBody.js +53 -0
- package/src/model/StoryBase.js +188 -0
- package/src/model/StoryCompact.js +94 -0
- package/src/model/StoryRequest.js +188 -0
- package/src/model/StoryResponse.js +595 -0
- package/src/model/StoryResponseArray.js +63 -0
- package/src/model/StoryResponseAssignee.js +70 -0
- package/src/model/StoryResponseCustomField.js +243 -0
- package/src/model/StoryResponseData.js +55 -0
- package/src/model/StoryResponseDates.js +70 -0
- package/src/model/StoryResponseOldDates.js +70 -0
- package/src/model/StoryResponseOldEnumValue.js +86 -0
- package/src/model/StoryResponseOldSection.js +70 -0
- package/src/model/StoryResponsePreviews.js +110 -0
- package/src/model/StoryResponseProject.js +70 -0
- package/src/model/StoryResponseStory.js +94 -0
- package/src/model/StoryResponseTag.js +70 -0
- package/src/model/StoryResponseTarget.js +108 -0
- package/src/model/StoryResponseTask.js +108 -0
- package/src/model/TagBase.js +206 -0
- package/src/model/TagCompact.js +70 -0
- package/src/model/TagRequest.js +222 -0
- package/src/model/TagResponse.js +239 -0
- package/src/model/TagResponseArray.js +63 -0
- package/src/model/TagResponseData.js +55 -0
- package/src/model/TagsBody.js +53 -0
- package/src/model/TaskAddFollowersRequest.js +55 -0
- package/src/model/TaskAddProjectRequest.js +79 -0
- package/src/model/TaskAddTagRequest.js +55 -0
- package/src/model/TaskBase.js +385 -0
- package/src/model/TaskBaseCompletedBy.js +70 -0
- package/src/model/TaskBaseDependencies.js +62 -0
- package/src/model/TaskBaseExternal.js +60 -0
- package/src/model/TaskBaseMemberships.js +61 -0
- package/src/model/TaskBaseSection.js +70 -0
- package/src/model/TaskCompact.js +108 -0
- package/src/model/TaskCountResponse.js +94 -0
- package/src/model/TaskCountResponseData.js +55 -0
- package/src/model/TaskDuplicateRequest.js +61 -0
- package/src/model/TaskGidAddDependenciesBody.js +53 -0
- package/src/model/TaskGidAddDependentsBody.js +53 -0
- package/src/model/TaskGidAddFollowersBody.js +53 -0
- package/src/model/TaskGidAddProjectBody.js +53 -0
- package/src/model/TaskGidAddTagBody.js +53 -0
- package/src/model/TaskGidDuplicateBody.js +53 -0
- package/src/model/TaskGidRemoveDependenciesBody.js +53 -0
- package/src/model/TaskGidRemoveDependentsBody.js +53 -0
- package/src/model/TaskGidRemoveFollowersBody.js +53 -0
- package/src/model/TaskGidRemoveProjectBody.js +53 -0
- package/src/model/TaskGidRemoveTagBody.js +53 -0
- package/src/model/TaskGidSetParentBody.js +53 -0
- package/src/model/TaskGidStoriesBody.js +53 -0
- package/src/model/TaskGidSubtasksBody.js +53 -0
- package/src/model/TaskGidTimeTrackingEntriesBody.js +53 -0
- package/src/model/TaskRemoveFollowersRequest.js +55 -0
- package/src/model/TaskRemoveProjectRequest.js +55 -0
- package/src/model/TaskRemoveTagRequest.js +55 -0
- package/src/model/TaskRequest.js +449 -0
- package/src/model/TaskResponse.js +461 -0
- package/src/model/TaskResponseArray.js +63 -0
- package/src/model/TaskResponseAssigneeSection.js +70 -0
- package/src/model/TaskResponseCustomFields.js +1234 -0
- package/src/model/TaskResponseData.js +55 -0
- package/src/model/TaskResponseParent.js +108 -0
- package/src/model/TaskResponseTags.js +70 -0
- package/src/model/TaskResponseWorkspace.js +70 -0
- package/src/model/TaskSetParentRequest.js +71 -0
- package/src/model/TasksBody.js +53 -0
- package/src/model/TasksTaskGidBody.js +53 -0
- package/src/model/TeamAddUserRequest.js +54 -0
- package/src/model/TeamBase.js +70 -0
- package/src/model/TeamCompact.js +70 -0
- package/src/model/TeamGidAddUserBody.js +53 -0
- package/src/model/TeamGidProjectsBody.js +53 -0
- package/src/model/TeamGidRemoveUserBody.js +53 -0
- package/src/model/TeamMembershipBase.js +102 -0
- package/src/model/TeamMembershipCompact.js +102 -0
- package/src/model/TeamMembershipResponse.js +102 -0
- package/src/model/TeamMembershipResponseArray.js +63 -0
- package/src/model/TeamMembershipResponseData.js +55 -0
- package/src/model/TeamRemoveUserRequest.js +54 -0
- package/src/model/TeamRequest.js +282 -0
- package/src/model/TeamResponse.js +290 -0
- package/src/model/TeamResponseArray.js +63 -0
- package/src/model/TeamResponseData.js +55 -0
- package/src/model/TeamResponseOrganization.js +70 -0
- package/src/model/TeamsBody.js +53 -0
- package/src/model/TeamsTeamGidBody.js +53 -0
- package/src/model/TemplateRole.js +70 -0
- package/src/model/TimePeriodBase.js +150 -0
- package/src/model/TimePeriodCompact.js +142 -0
- package/src/model/TimePeriodResponse.js +150 -0
- package/src/model/TimePeriodResponseArray.js +63 -0
- package/src/model/TimePeriodResponseData.js +55 -0
- package/src/model/TimeTrackingEntriesTimeTrackingEntryGidBody.js +53 -0
- package/src/model/TimeTrackingEntryBase.js +102 -0
- package/src/model/TimeTrackingEntryBaseData.js +55 -0
- package/src/model/TimeTrackingEntryCompact.js +86 -0
- package/src/model/TimeTrackingEntryCompactArray.js +63 -0
- package/src/model/UpdateTimeTrackingEntryRequest.js +61 -0
- package/src/model/UserBase.js +70 -0
- package/src/model/UserBaseResponse.js +86 -0
- package/src/model/UserBaseResponseData.js +55 -0
- package/src/model/UserBaseResponsePhoto.js +88 -0
- package/src/model/UserCompact.js +70 -0
- package/src/model/UserRequest.js +70 -0
- package/src/model/UserResponse.js +95 -0
- package/src/model/UserResponseArray.js +63 -0
- package/src/model/UserResponseData.js +55 -0
- package/src/model/UserTaskListBase.js +86 -0
- package/src/model/UserTaskListCompact.js +86 -0
- package/src/model/UserTaskListRequest.js +86 -0
- package/src/model/UserTaskListResponse.js +86 -0
- package/src/model/UserTaskListResponseData.js +55 -0
- package/src/model/WebhookCompact.js +86 -0
- package/src/model/WebhookCompactResource.js +70 -0
- package/src/model/WebhookFilter.js +78 -0
- package/src/model/WebhookRequest.js +74 -0
- package/src/model/WebhookRequestFilters.js +78 -0
- package/src/model/WebhookResponse.js +127 -0
- package/src/model/WebhookResponseArray.js +63 -0
- package/src/model/WebhookResponseData.js +55 -0
- package/src/model/WebhookUpdateRequest.js +54 -0
- package/src/model/WebhooksBody.js +53 -0
- package/src/model/WebhooksWebhookGidBody.js +53 -0
- package/src/model/WorkspaceAddUserRequest.js +54 -0
- package/src/model/WorkspaceBase.js +70 -0
- package/src/model/WorkspaceCompact.js +70 -0
- package/src/model/WorkspaceGidAddUserBody.js +53 -0
- package/src/model/WorkspaceGidProjectsBody.js +53 -0
- package/src/model/WorkspaceGidRemoveUserBody.js +53 -0
- package/src/model/WorkspaceGidTagsBody.js +53 -0
- package/src/model/WorkspaceMembershipBase.js +78 -0
- package/src/model/WorkspaceMembershipCompact.js +78 -0
- package/src/model/WorkspaceMembershipRequest.js +78 -0
- package/src/model/WorkspaceMembershipResponse.js +126 -0
- package/src/model/WorkspaceMembershipResponseArray.js +63 -0
- package/src/model/WorkspaceMembershipResponseData.js +55 -0
- package/src/model/WorkspaceMembershipResponseUserTaskList.js +86 -0
- package/src/model/WorkspaceMembershipResponseVacationDates.js +62 -0
- package/src/model/WorkspaceRemoveUserRequest.js +54 -0
- package/src/model/WorkspaceRequest.js +70 -0
- package/src/model/WorkspaceResponse.js +86 -0
- package/src/model/WorkspaceResponseArray.js +63 -0
- package/src/model/WorkspaceResponseData.js +55 -0
- package/src/model/WorkspacesWorkspaceGidBody.js +53 -0
- package/.github/workflows/build.yml +0 -27
- package/.github/workflows/publish-to-github-releases.yml +0 -26
- package/.github/workflows/publish-to-npmjs.yml +0 -21
- package/VERSION +0 -1
- package/bower.json +0 -29
- package/gulpfile.js +0 -205
- package/index.js +0 -7
- package/lib/auth/app.js +0 -136
- package/lib/auth/authenticator.js +0 -41
- package/lib/auth/auto_detect.js +0 -36
- package/lib/auth/base_browser_flow.js +0 -97
- package/lib/auth/basic_authenticator.js +0 -33
- package/lib/auth/chrome_extension_flow.js +0 -94
- package/lib/auth/index.js +0 -9
- package/lib/auth/native_flow.js +0 -106
- package/lib/auth/oauth_authenticator.js +0 -125
- package/lib/auth/oauth_error.js +0 -24
- package/lib/auth/oauth_util.js +0 -52
- package/lib/auth/popup_flow.js +0 -135
- package/lib/auth/redirect_flow.js +0 -54
- package/lib/client.js +0 -250
- package/lib/default_environment.js +0 -21
- package/lib/dispatcher.js +0 -438
- package/lib/errors/error.js +0 -12
- package/lib/errors/forbidden.js +0 -12
- package/lib/errors/index.js +0 -7
- package/lib/errors/invalid_request.js +0 -12
- package/lib/errors/no_authorization.js +0 -12
- package/lib/errors/not_found.js +0 -12
- package/lib/errors/premium_only.js +0 -12
- package/lib/errors/rate_limit_enforced.js +0 -17
- package/lib/errors/server_error.js +0 -12
- package/lib/resources/attachments.js +0 -43
- package/lib/resources/audit_log_api.js +0 -6
- package/lib/resources/batch_api.js +0 -3
- package/lib/resources/custom_field_settings.js +0 -41
- package/lib/resources/custom_fields.js +0 -195
- package/lib/resources/events.js +0 -41
- package/lib/resources/gen/attachments.js +0 -78
- package/lib/resources/gen/audit_log_api.js +0 -45
- package/lib/resources/gen/batch_api.js +0 -35
- package/lib/resources/gen/custom_field_settings.js +0 -63
- package/lib/resources/gen/custom_fields.js +0 -167
- package/lib/resources/gen/events.js +0 -39
- package/lib/resources/gen/goals.js +0 -321
- package/lib/resources/gen/jobs.js +0 -39
- package/lib/resources/gen/organization_exports.js +0 -55
- package/lib/resources/gen/portfolio_memberships.js +0 -85
- package/lib/resources/gen/portfolios.js +0 -243
- package/lib/resources/gen/project_briefs.js +0 -93
- package/lib/resources/gen/project_memberships.js +0 -62
- package/lib/resources/gen/project_statuses.js +0 -97
- package/lib/resources/gen/project_templates.js +0 -101
- package/lib/resources/gen/projects.js +0 -384
- package/lib/resources/gen/sections.js +0 -151
- package/lib/resources/gen/status_updates.js +0 -95
- package/lib/resources/gen/stories.js +0 -117
- package/lib/resources/gen/tags.js +0 -176
- package/lib/resources/gen/tasks.js +0 -579
- package/lib/resources/gen/team_memberships.js +0 -107
- package/lib/resources/gen/teams.js +0 -138
- package/lib/resources/gen/time_periods.js +0 -62
- package/lib/resources/gen/typeahead.js +0 -43
- package/lib/resources/gen/user_task_lists.js +0 -60
- package/lib/resources/gen/users.js +0 -125
- package/lib/resources/gen/webhooks.js +0 -113
- package/lib/resources/gen/workspace_memberships.js +0 -84
- package/lib/resources/gen/workspaces.js +0 -113
- package/lib/resources/index.js +0 -26
- package/lib/resources/jobs.js +0 -23
- package/lib/resources/organization_exports.js +0 -41
- package/lib/resources/portfolio_memberships.js +0 -61
- package/lib/resources/portfolios.js +0 -263
- package/lib/resources/project_memberships.js +0 -51
- package/lib/resources/project_statuses.js +0 -83
- package/lib/resources/projects.js +0 -359
- package/lib/resources/resource.js +0 -118
- package/lib/resources/sections.js +0 -158
- package/lib/resources/stories.js +0 -99
- package/lib/resources/tags.js +0 -167
- package/lib/resources/tasks.js +0 -702
- package/lib/resources/teams.js +0 -122
- package/lib/resources/typeahead.js +0 -3
- package/lib/resources/user_task_lists.js +0 -78
- package/lib/resources/users.js +0 -98
- package/lib/resources/webhooks.js +0 -100
- package/lib/resources/workspace_memberships.js +0 -3
- package/lib/resources/workspaces.js +0 -135
- package/lib/util/buffered_readable.js +0 -59
- package/lib/util/collection.js +0 -133
- package/lib/util/event_stream.js +0 -71
- package/lib/util/resource_stream.js +0 -80
- package/samples/attachments_sample.yaml +0 -45
- package/samples/audit_log_api_sample.yaml +0 -12
- package/samples/batch_api_sample.yaml +0 -12
- package/samples/custom_field_settings_sample.yaml +0 -23
- package/samples/custom_fields_sample.yaml +0 -89
- package/samples/events_sample.yaml +0 -12
- package/samples/goals_sample.yaml +0 -177
- package/samples/jobs_sample.yaml +0 -12
- package/samples/organization_exports_sample.yaml +0 -23
- package/samples/portfolio_memberships_sample.yaml +0 -34
- package/samples/portfolios_sample.yaml +0 -133
- package/samples/project_briefs_sample.yaml +0 -45
- package/samples/project_memberships_sample.yaml +0 -23
- package/samples/project_statuses_sample.yaml +0 -45
- package/samples/project_templates_sample.yaml +0 -45
- package/samples/projects_sample.yaml +0 -210
- package/samples/sections_sample.yaml +0 -78
- package/samples/status_updates_sample.yaml +0 -45
- package/samples/stories_sample.yaml +0 -56
- package/samples/tags_sample.yaml +0 -89
- package/samples/tasks_sample.yaml +0 -287
- package/samples/team_memberships_sample.yaml +0 -45
- package/samples/teams_sample.yaml +0 -67
- package/samples/time_periods_sample.yaml +0 -23
- package/samples/typeahead_sample.yaml +0 -12
- package/samples/user_task_lists_sample.yaml +0 -23
- package/samples/users_sample.yaml +0 -56
- package/samples/webhooks_sample.yaml +0 -56
- package/samples/workspace_memberships_sample.yaml +0 -34
- package/samples/workspaces_sample.yaml +0 -56
- package/swagger_templates/api.mustache +0 -60
- package/swagger_templates/api_doc.mustache +0 -13
- package/swagger_templates/node-config.json +0 -7
package/lib/client.js
DELETED
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
var Dispatcher = require('./dispatcher');
|
|
2
|
-
var resources = require('./resources');
|
|
3
|
-
var BasicAuthenticator = require('./auth/basic_authenticator');
|
|
4
|
-
var OauthAuthenticator = require('./auth/oauth_authenticator');
|
|
5
|
-
var App = require('./auth/app');
|
|
6
|
-
var autoDetect = require('./auth/auto_detect');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Constructs a Client with instances of all the resources using the dispatcher.
|
|
10
|
-
* It also keeps a reference to the dispatcher so that way the end user can have
|
|
11
|
-
* access to it.
|
|
12
|
-
* @class
|
|
13
|
-
* @classdesc A wrapper for the Asana API which is authenticated for one user
|
|
14
|
-
* @param {Dispatcher} dispatcher The request dispatcher to use
|
|
15
|
-
* @param {Object} options Options to configure the client
|
|
16
|
-
* @param {String} [clientId] ID of the client, required for Oauth
|
|
17
|
-
* @param {String} [clientSecret] Secret key, for some Oauth flows
|
|
18
|
-
* @param {String} [redirectUri] Default redirect URI for this client
|
|
19
|
-
* @param {String} [asanaBaseUrl] Base URL for Asana, for debugging
|
|
20
|
-
*/
|
|
21
|
-
function Client(dispatcher, options) {
|
|
22
|
-
options = options || {};
|
|
23
|
-
/**
|
|
24
|
-
* The internal dispatcher. This is mostly used by the resources but provided
|
|
25
|
-
* for custom requests to the API or API features that have not yet been added
|
|
26
|
-
* to the client.
|
|
27
|
-
* @type {Dispatcher}
|
|
28
|
-
*/
|
|
29
|
-
this.dispatcher = dispatcher;
|
|
30
|
-
/**
|
|
31
|
-
* An instance of the Attachments resource.
|
|
32
|
-
* @type {Attachments}
|
|
33
|
-
*/
|
|
34
|
-
this.attachments = new resources.Attachments(this.dispatcher);
|
|
35
|
-
/**
|
|
36
|
-
* An instance of the AuditLogAPI resource.
|
|
37
|
-
* @type {AuditLogAPI}
|
|
38
|
-
*/
|
|
39
|
-
this.auditLogAPI = new resources.AuditLogAPI(this.dispatcher);
|
|
40
|
-
/**
|
|
41
|
-
* An instance of the BatchAPI resource.
|
|
42
|
-
* @type {BatchAPI}
|
|
43
|
-
*/
|
|
44
|
-
this.batchAPI = new resources.BatchAPI(this.dispatcher);
|
|
45
|
-
/**
|
|
46
|
-
* An instance of the CustomFieldSettings resource.
|
|
47
|
-
* @type {CustomFieldSettings}
|
|
48
|
-
*/
|
|
49
|
-
this.customFieldSettings = new resources.CustomFieldSettings(this.dispatcher);
|
|
50
|
-
/**
|
|
51
|
-
* An instance of the CustomFields resource.
|
|
52
|
-
* @type {CustomFields}
|
|
53
|
-
*/
|
|
54
|
-
this.customFields = new resources.CustomFields(this.dispatcher);
|
|
55
|
-
/**
|
|
56
|
-
* An instance of the Events resource.
|
|
57
|
-
* @type {Events}
|
|
58
|
-
*/
|
|
59
|
-
this.events = new resources.Events(this.dispatcher);
|
|
60
|
-
/**
|
|
61
|
-
* An instance of the Jobs resource.
|
|
62
|
-
* @type {Jobs}
|
|
63
|
-
*/
|
|
64
|
-
this.jobs = new resources.Jobs(this.dispatcher);
|
|
65
|
-
/**
|
|
66
|
-
* An instance of the OrganizationExports resource.
|
|
67
|
-
* @type {Events}
|
|
68
|
-
*/
|
|
69
|
-
this.organizationExports = new resources.OrganizationExports(this.dispatcher);
|
|
70
|
-
/**
|
|
71
|
-
* An instance of the Portfolios resource.
|
|
72
|
-
* @type {Portfolios}
|
|
73
|
-
*/
|
|
74
|
-
this.portfolios = new resources.Portfolios(this.dispatcher);
|
|
75
|
-
/**
|
|
76
|
-
* An instance of the PortfolioMemberships resource.
|
|
77
|
-
* @type {PortfolioMemberships}
|
|
78
|
-
*/
|
|
79
|
-
this.portfolioMemberships =
|
|
80
|
-
new resources.PortfolioMemberships(this.dispatcher);
|
|
81
|
-
/**
|
|
82
|
-
* An instance of the Projects resource.
|
|
83
|
-
* @type {Projects}
|
|
84
|
-
*/
|
|
85
|
-
this.projects = new resources.Projects(this.dispatcher);
|
|
86
|
-
/**
|
|
87
|
-
* An instance of the ProjectMemberships resource.
|
|
88
|
-
* @type {ProjectMemberships}
|
|
89
|
-
*/
|
|
90
|
-
this.projectMemberships = new resources.ProjectMemberships(this.dispatcher);
|
|
91
|
-
/**
|
|
92
|
-
* An instance of the ProjectStatuses resource.
|
|
93
|
-
* @type {ProjectStatuses}
|
|
94
|
-
*/
|
|
95
|
-
this.projectStatuses = new resources.ProjectStatuses(this.dispatcher);
|
|
96
|
-
/**
|
|
97
|
-
* An instance of the Sections resource.
|
|
98
|
-
* @type {Sections}
|
|
99
|
-
*/
|
|
100
|
-
this.sections = new resources.Sections(this.dispatcher);
|
|
101
|
-
/**
|
|
102
|
-
* An instance of the Stories resource.
|
|
103
|
-
* @type {Stories}
|
|
104
|
-
*/
|
|
105
|
-
this.stories = new resources.Stories(this.dispatcher);
|
|
106
|
-
/**
|
|
107
|
-
* An instance of the Tags resource.
|
|
108
|
-
* @type {Tags}
|
|
109
|
-
*/
|
|
110
|
-
this.tags = new resources.Tags(this.dispatcher);
|
|
111
|
-
/**
|
|
112
|
-
* An instance of the Tasks resource.
|
|
113
|
-
* @type {Tasks}
|
|
114
|
-
*/
|
|
115
|
-
this.tasks = new resources.Tasks(this.dispatcher);
|
|
116
|
-
/**
|
|
117
|
-
* An instance of the Teams resource.
|
|
118
|
-
* @type {Teams}
|
|
119
|
-
*/
|
|
120
|
-
this.teams = new resources.Teams(this.dispatcher);
|
|
121
|
-
/**
|
|
122
|
-
* An instance of the Typeahead resource.
|
|
123
|
-
* @type {Teams}
|
|
124
|
-
*/
|
|
125
|
-
this.typeahead = new resources.Typeahead(this.dispatcher);
|
|
126
|
-
/**
|
|
127
|
-
* An instance of the Users resource.
|
|
128
|
-
* @type {Users}
|
|
129
|
-
*/
|
|
130
|
-
this.users = new resources.Users(this.dispatcher);
|
|
131
|
-
/**
|
|
132
|
-
* An instance of the UserTaskLists resource.
|
|
133
|
-
* @type {UserTaskLists}
|
|
134
|
-
*/
|
|
135
|
-
this.userTaskLists = new resources.UserTaskLists(this.dispatcher);
|
|
136
|
-
/**
|
|
137
|
-
* An instance of the Workspaces resource.
|
|
138
|
-
* @type {Workspaces}
|
|
139
|
-
*/
|
|
140
|
-
this.workspaces = new resources.Workspaces(this.dispatcher);
|
|
141
|
-
/**
|
|
142
|
-
* An instance of the WorkspaceMemberships resource.
|
|
143
|
-
* @type {Workspaces}
|
|
144
|
-
*/
|
|
145
|
-
this.workspaceMemberships =
|
|
146
|
-
new resources.WorkspaceMemberships(this.dispatcher);
|
|
147
|
-
/**
|
|
148
|
-
* An instance of the Webhooks resource.
|
|
149
|
-
* @type {Webhooks}
|
|
150
|
-
*/
|
|
151
|
-
this.webhooks = new resources.Webhooks(this.dispatcher);
|
|
152
|
-
|
|
153
|
-
// Store off Oauth info.
|
|
154
|
-
this.app = new App(options);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Ensures the client is authorized to make requests. Kicks off the
|
|
159
|
-
* configured Oauth flow, if any.
|
|
160
|
-
*
|
|
161
|
-
* @returns {Promise<Client>} A promise that resolves to this client when
|
|
162
|
-
* authorization is complete.
|
|
163
|
-
*/
|
|
164
|
-
Client.prototype.authorize = function() {
|
|
165
|
-
var me = this;
|
|
166
|
-
return me.dispatcher.authorize().then(function() {
|
|
167
|
-
return me;
|
|
168
|
-
});
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* DEPRECATED: this only exists for backwards compatibility and
|
|
173
|
-
* will be removed in a future version of the client library.
|
|
174
|
-
* Configure the Client to use a user's PAT and then authenticate
|
|
175
|
-
* through HTTP Basic Authentication.
|
|
176
|
-
* @param {String} accessToken The Asana PAT of the user
|
|
177
|
-
* @return {Client} this
|
|
178
|
-
*/
|
|
179
|
-
Client.prototype.useBasicAuth = function(accessToken) {
|
|
180
|
-
this.dispatcher.setAuthenticator(new BasicAuthenticator(accessToken));
|
|
181
|
-
return this;
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Configure the client to authenticate using a Personal Access Token.
|
|
186
|
-
* @param {String} accessToken The Personal Access Token to use for
|
|
187
|
-
* authenticating requests.
|
|
188
|
-
* @return {Client} this
|
|
189
|
-
*/
|
|
190
|
-
Client.prototype.useAccessToken = function(accessToken) {
|
|
191
|
-
var authenticator = new OauthAuthenticator({
|
|
192
|
-
credentials: accessToken
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
this.dispatcher.setAuthenticator(authenticator);
|
|
196
|
-
return this;
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Configure the client to authenticate via Oauth. Credentials can be
|
|
201
|
-
* supplied, or they can be obtained by running an Oauth flow.
|
|
202
|
-
* @param {Object} options Options for Oauth. Includes any options for
|
|
203
|
-
* the selected flow.
|
|
204
|
-
* @option {Function} [flowType] Type of OauthFlow to use to obtain user
|
|
205
|
-
* authorization. Defaults to autodetect based on environment.
|
|
206
|
-
* @option {Object} [credentials] Credentials to use; no flow required to
|
|
207
|
-
* obtain authorization. This object should at a minimum contain an
|
|
208
|
-
* `access_token` string field.
|
|
209
|
-
* @option {Function} [refreshCredentialsCallback] An optional callback
|
|
210
|
-
* function to execute once the authenticator auto refreshes
|
|
211
|
-
* access credentials.
|
|
212
|
-
* For Example:
|
|
213
|
-
* function(credentials){
|
|
214
|
-
* console.log("Your new credentials are:"+credentials)
|
|
215
|
-
* }
|
|
216
|
-
* @return {Client} this
|
|
217
|
-
*/
|
|
218
|
-
Client.prototype.useOauth = function(options) {
|
|
219
|
-
options = options || {};
|
|
220
|
-
options.app = this.app;
|
|
221
|
-
|
|
222
|
-
var FlowType = options.flowType || autoDetect();
|
|
223
|
-
// If there are no credentials, then we can't proceed without a flow.
|
|
224
|
-
if (!options.credentials && FlowType === null) {
|
|
225
|
-
throw new Error('Could not autodetect Oauth flow type');
|
|
226
|
-
}
|
|
227
|
-
var flow = new FlowType(options);
|
|
228
|
-
var authenticator = new OauthAuthenticator({
|
|
229
|
-
app: this.app,
|
|
230
|
-
credentials: options.credentials,
|
|
231
|
-
flow: flow,
|
|
232
|
-
refreshCredentialsCallback: options.refreshCredentialsCallback || null
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
this.dispatcher.setAuthenticator(authenticator);
|
|
236
|
-
return this;
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Creates a new client.
|
|
241
|
-
* @param {Object} options Options for specifying the client, see constructor.
|
|
242
|
-
*/
|
|
243
|
-
Client.create = function(options) {
|
|
244
|
-
options = options || {};
|
|
245
|
-
return new Client(
|
|
246
|
-
new Dispatcher(options),
|
|
247
|
-
options);
|
|
248
|
-
};
|
|
249
|
-
|
|
250
|
-
module.exports = Client;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/* jshint browser: true */
|
|
2
|
-
/* global chrome */
|
|
3
|
-
|
|
4
|
-
function defaultEnvironment() {
|
|
5
|
-
var env = {};
|
|
6
|
-
if (typeof(window) !== 'undefined') {
|
|
7
|
-
// Browser
|
|
8
|
-
env.window = window;
|
|
9
|
-
}
|
|
10
|
-
if (typeof(chrome) !== 'undefined') {
|
|
11
|
-
// Chrome Extension
|
|
12
|
-
env.chrome = chrome;
|
|
13
|
-
}
|
|
14
|
-
if (typeof(process) !== 'undefined') {
|
|
15
|
-
// NodeJS script
|
|
16
|
-
env.process = process;
|
|
17
|
-
}
|
|
18
|
-
return env;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
module.exports = defaultEnvironment;
|
package/lib/dispatcher.js
DELETED
|
@@ -1,438 +0,0 @@
|
|
|
1
|
-
var errors = require('./errors');
|
|
2
|
-
var Bluebird = require('bluebird');
|
|
3
|
-
var request = require('request');
|
|
4
|
-
var _ = require('lodash');
|
|
5
|
-
var querystring = require('querystring');
|
|
6
|
-
|
|
7
|
-
var VERSION = require('../package.json').version;
|
|
8
|
-
|
|
9
|
-
var STATUS_MAP = Object.keys(errors).reduce(function(map, key) {
|
|
10
|
-
var error = new errors[key](null);
|
|
11
|
-
if (error.status) {
|
|
12
|
-
map[error.status] = errors[key];
|
|
13
|
-
}
|
|
14
|
-
return map;
|
|
15
|
-
}, {});
|
|
16
|
-
|
|
17
|
-
// TODO: Provide same set of options for each request as for configuration,
|
|
18
|
-
// so the config at construction time is just the "defaults"
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Creates a dispatcher which will act as a basic wrapper for making HTTP
|
|
22
|
-
* requests to the API, and handle authentication.
|
|
23
|
-
* @class
|
|
24
|
-
* @classdesc A HTTP wrapper for the Asana API
|
|
25
|
-
* @param {Object} options for default behavior of the Dispatcher
|
|
26
|
-
* @option {Authenticator} [authenticator] Object to use for authentication.
|
|
27
|
-
* Can also be set later with `setAuthenticator`.
|
|
28
|
-
* @option {String} [retryOnRateLimit] Automatically handle `RateLimitEnforced`
|
|
29
|
-
* errors by sleeping and retrying after the waiting period.
|
|
30
|
-
* @option {Function} [handleUnauthorized] Automatically handle
|
|
31
|
-
* `NoAuthorization` with the callback. If the callback returns `true`
|
|
32
|
-
* (or a promise resolving to `true), will retry the request.
|
|
33
|
-
* @option {String} [asanaBaseUrl] Base URL for Asana, for debugging
|
|
34
|
-
* @option {Number} [requestTimeout] Timeout (in milliseconds) to wait for the
|
|
35
|
-
* request to finish.
|
|
36
|
-
*/
|
|
37
|
-
function Dispatcher(options) {
|
|
38
|
-
options = options || {};
|
|
39
|
-
/**
|
|
40
|
-
* The object to use to handle authentication.
|
|
41
|
-
* @type {Authenticator}
|
|
42
|
-
*/
|
|
43
|
-
this.authenticator = options.authenticator || null;
|
|
44
|
-
/**
|
|
45
|
-
* The base URL for Asana
|
|
46
|
-
* @type {String}
|
|
47
|
-
*/
|
|
48
|
-
this.asanaBaseUrl = options.asanaBaseUrl || 'https://app.asana.com/';
|
|
49
|
-
/**
|
|
50
|
-
* Whether requests should be automatically retried if rate limited.
|
|
51
|
-
* @type {Boolean}
|
|
52
|
-
*/
|
|
53
|
-
this.retryOnRateLimit = options.retryOnRateLimit || false;
|
|
54
|
-
/**
|
|
55
|
-
* What headers should be included by default in all requests, if any.
|
|
56
|
-
* Can be overridden by individual requests.
|
|
57
|
-
* @type {Object}
|
|
58
|
-
*/
|
|
59
|
-
this.defaultHeaders = options.defaultHeaders || {};
|
|
60
|
-
/**
|
|
61
|
-
* Handler for unauthorized requests which may seek reauthorization.
|
|
62
|
-
* Default behavior is available if configured with an Oauth authenticator
|
|
63
|
-
* that has a refresh token, and will refresh the current access token.
|
|
64
|
-
* @type {Function}
|
|
65
|
-
*/
|
|
66
|
-
this.handleUnauthorized = (options.handleUnauthorized !== undefined) ?
|
|
67
|
-
options.handleUnauthorized : Dispatcher.maybeReauthorize;
|
|
68
|
-
/**
|
|
69
|
-
* Version info gathered from the system, to send with the request.
|
|
70
|
-
* @type {Object}
|
|
71
|
-
*/
|
|
72
|
-
this._cachedVersionInfo = null;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* The amount of time in milliseconds to wait for a request to finish.
|
|
76
|
-
* @type {Number}
|
|
77
|
-
*/
|
|
78
|
-
this.requestTimeout = options.requestTimeout || null;
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* What proxy should be used by default in all requests, if any.
|
|
82
|
-
* Can be overridden by individual requests.
|
|
83
|
-
* @type {String}
|
|
84
|
-
*/
|
|
85
|
-
this.defaultProxy = options.defaultProxy || null;
|
|
86
|
-
/**
|
|
87
|
-
* Whether the dispatcher logs the AsanaChange header or not.
|
|
88
|
-
* @type {boolean}
|
|
89
|
-
*/
|
|
90
|
-
this.logAsanaChangeWarnings = options.logAsanaChangeWarnings !== false;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* The relative API path for the current version of the Asana API.
|
|
95
|
-
* @type {String}
|
|
96
|
-
*/
|
|
97
|
-
Dispatcher.API_PATH = 'api/1.0';
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Default handler for requests that are considered unauthorized.
|
|
101
|
-
* Requests that the authenticator try to refresh its credentials if
|
|
102
|
-
* possible.
|
|
103
|
-
* @return {Promise<boolean>} True iff refresh was successful, false if not.
|
|
104
|
-
*/
|
|
105
|
-
Dispatcher.maybeReauthorize = function() {
|
|
106
|
-
if (!this.authenticator) {
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
return this.authenticator.refreshCredentials();
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Whether the request library should show debug logs
|
|
114
|
-
*/
|
|
115
|
-
Dispatcher.prototype.debug = function(flag) {
|
|
116
|
-
request.debug = flag;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Creates an Asana API Url by concatenating the ROOT_URL with path provided.
|
|
121
|
-
* @param {String} path The path
|
|
122
|
-
* @return {String} The url
|
|
123
|
-
*/
|
|
124
|
-
Dispatcher.prototype.url = function(path) {
|
|
125
|
-
return this.asanaBaseUrl + Dispatcher.API_PATH + path;
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Configure the authentication mechanism to use.
|
|
130
|
-
* @returns {Dispatcher} this
|
|
131
|
-
*/
|
|
132
|
-
Dispatcher.prototype.setAuthenticator = function(authenticator) {
|
|
133
|
-
this.authenticator = authenticator;
|
|
134
|
-
return this;
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Ensure the dispatcher is authorized to make requests. Call this before
|
|
139
|
-
* making any API requests.
|
|
140
|
-
*
|
|
141
|
-
* @returns {Promise} Resolves when the dispatcher is authorized, rejected if
|
|
142
|
-
* there was a problem authorizing.
|
|
143
|
-
*/
|
|
144
|
-
Dispatcher.prototype.authorize = function() {
|
|
145
|
-
if (this.authenticator === null) {
|
|
146
|
-
throw new Error('No authenticator configured for dispatcher');
|
|
147
|
-
}
|
|
148
|
-
return this.authenticator.establishCredentials();
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Logs the Asana-Change header if the request is affected and
|
|
153
|
-
* has not Asana-Enabled the flag.
|
|
154
|
-
* @param {Object} reqHeaders headers in the request
|
|
155
|
-
* @param {Object} resHeaders headers in the response
|
|
156
|
-
*/
|
|
157
|
-
Dispatcher.prototype.logAsanaChangeHeader = function(reqHeaders, resHeaders) {
|
|
158
|
-
var changeHeaderKey = null;
|
|
159
|
-
|
|
160
|
-
for (var key in resHeaders) {
|
|
161
|
-
if (key.toLowerCase() === 'asana-change') {
|
|
162
|
-
changeHeaderKey = key;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
if (changeHeaderKey !== null) {
|
|
167
|
-
var accountedForFlags = [];
|
|
168
|
-
|
|
169
|
-
var addFlag = function(flag) {
|
|
170
|
-
accountedForFlags.push(flag.trim());
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
// Grab the request's asana-enable flags
|
|
174
|
-
for (var reqHeader in reqHeaders) {
|
|
175
|
-
if (!reqHeaders.hasOwnProperty(reqHeader)) {
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
if (reqHeader.toLowerCase() === 'asana-enable') {
|
|
180
|
-
reqHeaders[reqHeader].split(',').forEach(addFlag);
|
|
181
|
-
} else if (reqHeader.toLowerCase() === 'asana-disable') {
|
|
182
|
-
reqHeaders[reqHeader].split(',').forEach(addFlag);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
var changes = resHeaders[changeHeaderKey].split(',');
|
|
187
|
-
changes.forEach(function(unsplitChange) {
|
|
188
|
-
var change = unsplitChange.split(';');
|
|
189
|
-
|
|
190
|
-
var name = null;
|
|
191
|
-
var info = null;
|
|
192
|
-
var affected = null;
|
|
193
|
-
|
|
194
|
-
for (var j = 0; j < change.length; j++) {
|
|
195
|
-
var field = change[j].split('=');
|
|
196
|
-
|
|
197
|
-
field[0] = field[0].trim();
|
|
198
|
-
if (field[0].trim() === 'name') {
|
|
199
|
-
name = field[1].trim();
|
|
200
|
-
}
|
|
201
|
-
else if (field[0].trim() === 'info') {
|
|
202
|
-
info = field[1].trim();
|
|
203
|
-
}
|
|
204
|
-
else if (field[0].trim() === 'affected') {
|
|
205
|
-
affected = field[1].trim();
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
// Only show the error if the flag was not in the request's
|
|
210
|
-
// asana-enable header
|
|
211
|
-
if (accountedForFlags.indexOf(name) === -1 && affected === 'true') {
|
|
212
|
-
var message = 'This request is affected by the "' + name +
|
|
213
|
-
'" deprecation. Please visit this url for more info: ' + info +
|
|
214
|
-
'\n' + 'Adding "' + name + '" to your "Asana-Enable" or ' +
|
|
215
|
-
'"Asana-Disable" header will opt in/out to this deprecation ' +
|
|
216
|
-
'and suppress this warning.';
|
|
217
|
-
|
|
218
|
-
console.error(message);
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Dispatches a request to the Asana API. The request parameters are passed to
|
|
226
|
-
* the request module.
|
|
227
|
-
* @param {Object} params The params for request
|
|
228
|
-
* @param {Object} [dispatchOptions] Options for handling request/response
|
|
229
|
-
* @return {Promise} The response for the request
|
|
230
|
-
*/
|
|
231
|
-
Dispatcher.prototype.dispatch = function(params, dispatchOptions) {
|
|
232
|
-
var me = this;
|
|
233
|
-
// TODO: actually honor these options as overriding defaults
|
|
234
|
-
dispatchOptions = dispatchOptions || {};
|
|
235
|
-
|
|
236
|
-
if (this.requestTimeout) {
|
|
237
|
-
params.timeout = this.requestTimeout;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
if (this.defaultProxy) {
|
|
241
|
-
params.proxy = this.defaultProxy;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
return new Bluebird(function(resolve, reject) {
|
|
245
|
-
function doRequest() {
|
|
246
|
-
if (me.authenticator !== null) {
|
|
247
|
-
me.authenticator.authenticateRequest(params);
|
|
248
|
-
}
|
|
249
|
-
params.headers = _.extend(
|
|
250
|
-
{}, params.headers, me.defaultHeaders, dispatchOptions.headers || {});
|
|
251
|
-
me._addVersionInfo(params);
|
|
252
|
-
request(params, function(err, res, payload) {
|
|
253
|
-
if (err) {
|
|
254
|
-
return reject(err);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// Handle Asana-Change header logging
|
|
258
|
-
if (me.logAsanaChangeWarnings) {
|
|
259
|
-
me.logAsanaChangeHeader(params.headers, res.headers);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
if (STATUS_MAP[res.statusCode]) {
|
|
263
|
-
var error = new STATUS_MAP[res.statusCode](payload, res);
|
|
264
|
-
|
|
265
|
-
if (me.retryOnRateLimit &&
|
|
266
|
-
error instanceof (errors.RateLimitEnforced)) {
|
|
267
|
-
// Maybe attempt retry for rate limiting.
|
|
268
|
-
// Delay a half-second more in case of rounding error.
|
|
269
|
-
// TODO: verify Asana is always being conservative with duration
|
|
270
|
-
setTimeout(doRequest, error.retryAfterSeconds * 1000 + 500);
|
|
271
|
-
|
|
272
|
-
} else if (me.handleUnauthorized &&
|
|
273
|
-
error instanceof (errors.NoAuthorization)) {
|
|
274
|
-
// Maybe attempt to retry unauthorized requests after getting
|
|
275
|
-
// a new access token.
|
|
276
|
-
Bluebird.resolve(me.handleUnauthorized()).then(function(reauth) {
|
|
277
|
-
if (reauth) {
|
|
278
|
-
doRequest();
|
|
279
|
-
} else {
|
|
280
|
-
reject(error);
|
|
281
|
-
}
|
|
282
|
-
})
|
|
283
|
-
.catch(function() {
|
|
284
|
-
reject(error);
|
|
285
|
-
});
|
|
286
|
-
} else {
|
|
287
|
-
// Not an error we can handle.
|
|
288
|
-
return reject(error);
|
|
289
|
-
}
|
|
290
|
-
} else {
|
|
291
|
-
return resolve(payload);
|
|
292
|
-
}
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
doRequest();
|
|
296
|
-
});
|
|
297
|
-
};
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Dispatches a GET request to the Asana API.
|
|
301
|
-
* @param {String} path The path of the API
|
|
302
|
-
* @param {Object} [query] The query params
|
|
303
|
-
* @param {Object} [dispatchOptions] Options for handling the request and
|
|
304
|
-
* response. See `dispatch`.
|
|
305
|
-
* @return {Promise} The response for the request
|
|
306
|
-
*/
|
|
307
|
-
Dispatcher.prototype.get = function(path, query, dispatchOptions) {
|
|
308
|
-
var params = {
|
|
309
|
-
method: 'GET',
|
|
310
|
-
url: this.url(path),
|
|
311
|
-
json: true
|
|
312
|
-
};
|
|
313
|
-
var options = this._parseApiOptions(query);
|
|
314
|
-
if (options) {
|
|
315
|
-
params.qs = options;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
if (query) {
|
|
319
|
-
params.qs = Object.assign(query, params.qs);
|
|
320
|
-
}
|
|
321
|
-
return this.dispatch(params, dispatchOptions);
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Dispatches a POST request to the Asana API.
|
|
326
|
-
* @param {String} path The path of the API
|
|
327
|
-
* @param {Object} data The data to be sent
|
|
328
|
-
* @param {Object} [dispatchOptions] Options for handling the request and
|
|
329
|
-
* response. See `dispatch`.
|
|
330
|
-
* @return {Promise} The response for the request
|
|
331
|
-
*/
|
|
332
|
-
Dispatcher.prototype.post = function(path, data, dispatchOptions) {
|
|
333
|
-
var params = {
|
|
334
|
-
method: 'POST',
|
|
335
|
-
url: this.url(path),
|
|
336
|
-
json: {
|
|
337
|
-
data: data
|
|
338
|
-
}
|
|
339
|
-
};
|
|
340
|
-
var options = this._parseApiOptions(data);
|
|
341
|
-
if (options) {
|
|
342
|
-
params.qs = options;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
return this.dispatch(params, dispatchOptions);
|
|
346
|
-
};
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* Dispatches a PUT request to the Asana API.
|
|
350
|
-
* @param {String} path The path of the API
|
|
351
|
-
* @param {Object} data The data to be sent
|
|
352
|
-
* @param {Object} [dispatchOptions] Options for handling the request and
|
|
353
|
-
* response. See `dispatch`.
|
|
354
|
-
* @return {Promise} The response for the request
|
|
355
|
-
*/
|
|
356
|
-
Dispatcher.prototype.put = function(path, data, dispatchOptions) {
|
|
357
|
-
var params = {
|
|
358
|
-
method: 'PUT',
|
|
359
|
-
url: this.url(path),
|
|
360
|
-
json: {
|
|
361
|
-
data: data
|
|
362
|
-
}
|
|
363
|
-
};
|
|
364
|
-
var options = this._parseApiOptions(data);
|
|
365
|
-
if (options) {
|
|
366
|
-
params.qs = options;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
return this.dispatch(params, dispatchOptions);
|
|
370
|
-
};
|
|
371
|
-
|
|
372
|
-
/**
|
|
373
|
-
* Dispatches a DELETE request to the Asana API.
|
|
374
|
-
* @param {String} path The path of the API
|
|
375
|
-
* @param {Object} [dispatchOptions] Options for handling the request and
|
|
376
|
-
* response. See `dispatch`.
|
|
377
|
-
* @return {Promise} The response for the request
|
|
378
|
-
*/
|
|
379
|
-
Dispatcher.prototype.delete = function(path, dispatchOptions) {
|
|
380
|
-
var params = {
|
|
381
|
-
method: 'DELETE',
|
|
382
|
-
url: this.url(path)
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
return this.dispatch(params, dispatchOptions);
|
|
386
|
-
};
|
|
387
|
-
|
|
388
|
-
/**
|
|
389
|
-
* @param request {Object} Request to add version header to.
|
|
390
|
-
* @private
|
|
391
|
-
*/
|
|
392
|
-
Dispatcher.prototype._addVersionInfo = function(request) {
|
|
393
|
-
if (!this._cachedVersionInfo) {
|
|
394
|
-
this._cachedVersionInfo = this._generateVersionInfo();
|
|
395
|
-
}
|
|
396
|
-
request.headers = request.headers || {};
|
|
397
|
-
request.headers['X-Asana-Client-Lib'] =
|
|
398
|
-
querystring.stringify(this._cachedVersionInfo);
|
|
399
|
-
};
|
|
400
|
-
|
|
401
|
-
/**
|
|
402
|
-
* @return {Object} Dictionary of key-value pairs indicating library version
|
|
403
|
-
* @private
|
|
404
|
-
*/
|
|
405
|
-
Dispatcher.prototype._generateVersionInfo = function() {
|
|
406
|
-
if (typeof(navigator) === 'undefined' || typeof(window) === 'undefined') {
|
|
407
|
-
return {
|
|
408
|
-
'version': VERSION,
|
|
409
|
-
'language': 'NodeJS',
|
|
410
|
-
'language_version': process.version,
|
|
411
|
-
'os': process.platform
|
|
412
|
-
};
|
|
413
|
-
} else {
|
|
414
|
-
return {
|
|
415
|
-
'version': VERSION,
|
|
416
|
-
'language': 'BrowserJS'
|
|
417
|
-
};
|
|
418
|
-
}
|
|
419
|
-
};
|
|
420
|
-
|
|
421
|
-
Dispatcher.prototype._parseApiOptions = function(params) {
|
|
422
|
-
if (!params) {
|
|
423
|
-
return null;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
var optionKeys = ['pretty', 'fields', 'expand'];
|
|
427
|
-
var options = {};
|
|
428
|
-
|
|
429
|
-
for (var i = 0; i < optionKeys.length; i++) {
|
|
430
|
-
if (params.hasOwnProperty(optionKeys[i])) {
|
|
431
|
-
options['opt_' + optionKeys[i]] = params[optionKeys[i]];
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
return options;
|
|
436
|
-
};
|
|
437
|
-
|
|
438
|
-
module.exports = Dispatcher;
|