diff --git a/packages/web-api/src/types/helpers.ts b/packages/web-api/src/types/helpers.ts index 60bd446b4..d49aefdfc 100644 --- a/packages/web-api/src/types/helpers.ts +++ b/packages/web-api/src/types/helpers.ts @@ -1,2 +1,4 @@ /** Omit all keys K from possible union types T */ export type ExcludeFromUnion = T extends T ? Omit : never; +/** Allows to explicitly declare a function parameter as optional */ +export type OptionalArgument = T | void; diff --git a/packages/web-api/src/types/request/admin/apps.ts b/packages/web-api/src/types/request/admin/apps.ts index c8ca8dc59..1f8c9366b 100644 --- a/packages/web-api/src/types/request/admin/apps.ts +++ b/packages/web-api/src/types/request/admin/apps.ts @@ -1,4 +1,5 @@ import type { AppID, CursorPaginationEnabled, TokenOverridable } from '../common'; +import { OptionalArgument } from '../../helpers'; interface RequestID { /** @description The id of the request. */ @@ -24,8 +25,8 @@ interface Certified { } // https://api.slack.com/methods/admin.apps.activities.list -export interface AdminAppsActivitiesListArguments extends Partial, Partial, TokenOverridable, - CursorPaginationEnabled { +export type AdminAppsActivitiesListArguments = OptionalArgument & Partial & TokenOverridable & +CursorPaginationEnabled & { /** * @description The component ID of log events to be returned. Will be `FnXXXXXX` for functions, * and `WfXXXXXX` for worflows. @@ -47,7 +48,7 @@ export interface AdminAppsActivitiesListArguments extends Partial, Partia source?: 'slack' | 'developer'; /** @description The trace ID of log events to be returned. */ trace_id?: string; -} +}>; // https://api.slack.com/methods/admin.apps.approve export type AdminAppsApproveArguments = AppOrRequestID & TeamOrEnterpriseID & TokenOverridable; diff --git a/packages/web-api/src/types/request/admin/barriers.ts b/packages/web-api/src/types/request/admin/barriers.ts index 6b4b21cd3..6990e1037 100644 --- a/packages/web-api/src/types/request/admin/barriers.ts +++ b/packages/web-api/src/types/request/admin/barriers.ts @@ -1,4 +1,5 @@ import type { CursorPaginationEnabled, TokenOverridable } from '../common'; +import { OptionalArgument } from '../../helpers'; interface BarrierID { /** @description The ID of the barrier. */ @@ -22,7 +23,7 @@ export interface AdminBarriersCreateArguments extends TokenOverridable { export interface AdminBarriersDeleteArguments extends BarrierID, TokenOverridable {} // https://api.slack.com/methods/admin.barriers.list -export interface AdminBarriersListArguments extends TokenOverridable, CursorPaginationEnabled { } +export type AdminBarriersListArguments = OptionalArgument; // https://api.slack.com/methods/admin.barriers.update export interface AdminBarriersUpdateArguments extends AdminBarriersCreateArguments, BarrierID {} diff --git a/packages/web-api/src/types/request/admin/conversations.ts b/packages/web-api/src/types/request/admin/conversations.ts index 8da69260d..ad605f68c 100644 --- a/packages/web-api/src/types/request/admin/conversations.ts +++ b/packages/web-api/src/types/request/admin/conversations.ts @@ -5,6 +5,7 @@ import type { TokenOverridable, UserIDs, } from '../common'; +import { OptionalArgument } from '../../helpers'; interface ChannelID { // an identical interface exists in src/types/request/conversations.ts, but it is only for invites /** @description Encoded channel ID. */ @@ -95,11 +96,11 @@ export interface AdminConversationsDisconnectSharedArguments extends ChannelID, } // https://api.slack.com/methods/admin.conversations.ekm.listOriginalConnectedChannelInfo -export interface AdminConversationsEKMListOriginalConnectedChannelInfoArguments - extends Partial, TokenOverridable, CursorPaginationEnabled { +export type AdminConversationsEKMListOriginalConnectedChannelInfoArguments = OptionalArgument & +TokenOverridable & CursorPaginationEnabled & { /** @description A comma-separated list of channels to filter to. */ channel_ids?: string[]; -} +}>; // https://api.slack.com/methods/admin.conversations.getConversationPrefs export interface AdminConversationsGetConversationPrefsArguments extends ChannelID, TokenOverridable {} @@ -148,8 +149,8 @@ export interface AdminConversationsRestrictAccessRemoveGroupArguments extends Ch RestrictAccessTeamID, TokenOverridable {} // https://api.slack.com/methods/admin.conversations.search -export interface AdminConversationsSearchArguments - extends SortDir, Partial, TokenOverridable, CursorPaginationEnabled { +export type AdminConversationsSearchArguments = OptionalArgument & TokenOverridable & +CursorPaginationEnabled & { /** @description Array of encoded team IDs, signifying the external orgs to search through. */ connected_team_ids?: string[]; /** @description Name of the channel to query by. */ @@ -175,7 +176,7 @@ export interface AdminConversationsSearchArguments * Omits channel data and allows access for admins without channel manager permissions. Defaults to `false`. */ total_count_only?: boolean; -} +}>; // https://api.slack.com/methods/admin.conversations.setConversationPrefs export interface AdminConversationsSetConversationPrefsArguments extends ChannelID, TokenOverridable { diff --git a/packages/web-api/src/types/request/admin/emoji.ts b/packages/web-api/src/types/request/admin/emoji.ts index c2cecd873..79088ae2e 100644 --- a/packages/web-api/src/types/request/admin/emoji.ts +++ b/packages/web-api/src/types/request/admin/emoji.ts @@ -1,4 +1,5 @@ import type { CursorPaginationEnabled, TokenOverridable } from '../common'; +import { OptionalArgument } from '../../helpers'; interface Name { /** @@ -27,7 +28,7 @@ export interface AdminEmojiAddAliasArguments extends Name, TokenOverridable { } // https://api.slack.com/methods/admin.emoji.list -export interface AdminEmojiListArguments extends TokenOverridable, CursorPaginationEnabled {} +export type AdminEmojiListArguments = OptionalArgument; // https://api.slack.com/methods/admin.emoji.remove export interface AdminEmojiRemoveArguments extends Name, TokenOverridable {} diff --git a/packages/web-api/src/types/request/admin/roles.ts b/packages/web-api/src/types/request/admin/roles.ts index 5b53b7b57..7ddb552b9 100644 --- a/packages/web-api/src/types/request/admin/roles.ts +++ b/packages/web-api/src/types/request/admin/roles.ts @@ -1,4 +1,5 @@ import type { CursorPaginationEnabled, SortDir, TokenOverridable, UserIDs } from '../common'; +import { OptionalArgument } from '../../helpers'; interface EntityIDs { /** @@ -20,14 +21,14 @@ interface RoleID { export interface AdminRolesAddAssignmentsArguments extends EntityIDs, RoleID, UserIDs, TokenOverridable {} // https://api.slack.com/methods/admin.roles.listAssignments -export interface AdminRolesListAssignmentsArguments extends Partial, TokenOverridable, - CursorPaginationEnabled, SortDir { +export type AdminRolesListAssignmentsArguments = OptionalArgument & TokenOverridable & +CursorPaginationEnabled & SortDir & { /** * @description Collection of role ids to scope results by. * @see {@link https://api.slack.com/methods/admin.roles.addAssignments#markdown Admin Roles under Usage info}. */ role_ids?: string[]; -} +}>; // https://api.slack.com/methods/admin.roles.removeAssignments export interface AdminRolesRemoveAssignmentsArguments extends EntityIDs, RoleID, UserIDs, TokenOverridable {} diff --git a/packages/web-api/src/types/request/admin/teams.ts b/packages/web-api/src/types/request/admin/teams.ts index 6cdd3b8b9..77740c617 100644 --- a/packages/web-api/src/types/request/admin/teams.ts +++ b/packages/web-api/src/types/request/admin/teams.ts @@ -1,4 +1,5 @@ import type { ChannelIDs, CursorPaginationEnabled, TeamID, TokenOverridable } from '../common'; +import { OptionalArgument } from '../../helpers'; type TeamDiscoverability = 'open' | 'closed' | 'invite_only' | 'unlisted'; @@ -18,7 +19,7 @@ export interface AdminTeamsCreateArguments extends TokenOverridable { } // https://api.slack.com/methods/admin.teams.list -export interface AdminTeamsListArguments extends TokenOverridable, CursorPaginationEnabled {} +export type AdminTeamsListArguments = OptionalArgument; // https://api.slack.com/methods/admin.teams.owners.list export interface AdminTeamsOwnersListArguments extends TeamID, TokenOverridable, CursorPaginationEnabled {} diff --git a/packages/web-api/src/types/request/admin/users.ts b/packages/web-api/src/types/request/admin/users.ts index 4f8e0eaa5..ed8795703 100644 --- a/packages/web-api/src/types/request/admin/users.ts +++ b/packages/web-api/src/types/request/admin/users.ts @@ -6,6 +6,7 @@ import type { TokenOverridable, UserIDs, } from '../common'; +import { OptionalArgument } from '../../helpers'; interface UserID { /** @description The ID of the user. */ @@ -83,13 +84,14 @@ export interface AdminUsersInviteArguments extends ChannelIDs, TeamID, IsRestric } // https://api.slack.com/methods/admin.users.list -export type AdminUsersListArguments = TeamIDOrDeactivatedWorkspaces & TokenOverridable & CursorPaginationEnabled & { +export type AdminUsersListArguments = OptionalArgument; // https://api.slack.com/methods/admin.users.remove export interface AdminUsersRemoveArguments extends TeamID, UserID, TokenOverridable {} @@ -107,7 +109,8 @@ export interface AdminUsersSessionInvalidateArguments extends TeamID, TokenOverr } // https://api.slack.com/methods/admin.users.session.list -export type AdminUsersSessionListArguments = EitherTeamAndUserIDOrNeither & TokenOverridable & CursorPaginationEnabled; +export type AdminUsersSessionListArguments = OptionalArgument; // https://api.slack.com/methods/admin.users.session.reset export interface AdminUsersSessionResetArguments extends UserID, SessionExpirationTarget, TokenOverridable {} diff --git a/packages/web-api/src/types/request/admin/workflows.ts b/packages/web-api/src/types/request/admin/workflows.ts index c7cabb9c4..56fbe7ddf 100644 --- a/packages/web-api/src/types/request/admin/workflows.ts +++ b/packages/web-api/src/types/request/admin/workflows.ts @@ -1,4 +1,5 @@ import type { AppID, CursorPaginationEnabled, SortDir, TokenOverridable } from '../common'; +import { OptionalArgument } from '../../helpers'; interface CollaboratorIDs { /** @description Array of collaborators (encoded user IDs) - maximum of 50 items. */ @@ -26,8 +27,8 @@ export interface AdminWorkflowsPermissionsLookupArguments extends WorkflowIDs, T } // https://api.slack.com/methods/admin.workflows.search -export interface AdminWorkflowsSearchArguments extends Partial, Partial, SortDir, - TokenOverridable, CursorPaginationEnabled { +export type AdminWorkflowsSearchArguments = OptionalArgument & Partial & SortDir & +TokenOverridable & CursorPaginationEnabled & { /** @description Only include workflows with no collaborators in the result; default is `false`. */ no_collaborators?: boolean; /** @description Number of trigger IDs to fetch for each workflow; default is `0`. */ @@ -38,7 +39,7 @@ export interface AdminWorkflowsSearchArguments extends Partial, Partial; // https://api.slack.com/methods/admin.workflows.unpublish export interface AdminWorkflowsUnpublishArguments extends WorkflowIDs, TokenOverridable {} diff --git a/packages/web-api/src/types/request/api.ts b/packages/web-api/src/types/request/api.ts index 709e2f211..4405b1abc 100644 --- a/packages/web-api/src/types/request/api.ts +++ b/packages/web-api/src/types/request/api.ts @@ -1,5 +1,7 @@ // https://api.slack.com/methods/api.test -export interface APITestArguments { +import { OptionalArgument } from '../helpers'; + +export type APITestArguments = OptionalArgument<{ /** @description Error response to return. */ error?: string; -} +}>; diff --git a/packages/web-api/src/types/request/apps.ts b/packages/web-api/src/types/request/apps.ts index 2e8d80a55..227b8cb17 100644 --- a/packages/web-api/src/types/request/apps.ts +++ b/packages/web-api/src/types/request/apps.ts @@ -1,8 +1,9 @@ import type { AppID, CursorPaginationEnabled, TokenOverridable, OAuthCredentials } from './common'; import type { Manifest } from './manifest'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/apps.connections.open -export interface AppsConnectionsOpenArguments { } +export type AppsConnectionsOpenArguments = OptionalArgument; // https://api.slack.com/methods/apps.event.authorizations.list export interface AppsEventAuthorizationsListArguments diff --git a/packages/web-api/src/types/request/auth.ts b/packages/web-api/src/types/request/auth.ts index 3da060665..04be8b86c 100644 --- a/packages/web-api/src/types/request/auth.ts +++ b/packages/web-api/src/types/request/auth.ts @@ -1,23 +1,24 @@ import type { CursorPaginationEnabled, TokenOverridable } from './common'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/auth.revoke -export interface AuthRevokeArguments extends TokenOverridable { +export type AuthRevokeArguments = OptionalArgument; // https://api.slack.com/methods/auth.teams.list -export interface AuthTeamsListArguments extends TokenOverridable, CursorPaginationEnabled { +export type AuthTeamsListArguments = OptionalArgument; // https://api.slack.com/methods/auth.test -export interface AuthTestArguments extends TokenOverridable { } +export type AuthTestArguments = OptionalArgument; diff --git a/packages/web-api/src/types/request/bots.ts b/packages/web-api/src/types/request/bots.ts index 84f58240d..77ee5e4e0 100644 --- a/packages/web-api/src/types/request/bots.ts +++ b/packages/web-api/src/types/request/bots.ts @@ -1,7 +1,8 @@ import type { OptionalTeamAssignable, TokenOverridable } from './common'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/bots.info -export interface BotsInfoArguments extends TokenOverridable, OptionalTeamAssignable { +export type BotsInfoArguments = OptionalArgument; diff --git a/packages/web-api/src/types/request/chat.ts b/packages/web-api/src/types/request/chat.ts index 70e21624f..3ffda58ce 100644 --- a/packages/web-api/src/types/request/chat.ts +++ b/packages/web-api/src/types/request/chat.ts @@ -11,6 +11,7 @@ import type { TimelinePaginationEnabled, TokenOverridable, } from './common'; +import { OptionalArgument } from '../helpers'; interface Channel { /** @description Channel ID for the message. */ @@ -178,8 +179,8 @@ export type ChatScheduleMessageArguments = TokenOverridable & MessageContents & } & ReplyInThread & Parse & LinkNames & AsUser & Metadata & Unfurls; // https://api.slack.com/methods/chat.scheduledMessages.list -export interface ChatScheduledMessagesListArguments extends TokenOverridable, CursorPaginationEnabled, - OptionalTeamAssignable, Pick, Partial {} +export type ChatScheduledMessagesListArguments = OptionalArgument & Partial>; interface SourceAndUnfurlID { /** diff --git a/packages/web-api/src/types/request/conversations.ts b/packages/web-api/src/types/request/conversations.ts index 14892fdd3..22de1f1d3 100644 --- a/packages/web-api/src/types/request/conversations.ts +++ b/packages/web-api/src/types/request/conversations.ts @@ -5,6 +5,7 @@ import type { TimelinePaginationEnabled, TokenOverridable, } from './common'; +import { OptionalArgument } from '../helpers'; interface Channel { /** @description ID of conversation. */ @@ -115,7 +116,8 @@ export interface ConversationsKickArguments extends Channel, TokenOverridable { export interface ConversationsLeaveArguments extends Channel, TokenOverridable {} // https://api.slack.com/methods/conversations.list -export interface ConversationsListArguments extends TokenOverridable, CursorPaginationEnabled, OptionalTeamAssignable { +export type ConversationsListArguments = OptionalArgument; // https://api.slack.com/methods/conversations.listConnectInvites -export interface ConversationsListConnectInvitesArguments extends TokenOverridable, OptionalTeamAssignable { +export type ConversationsListConnectInvitesArguments = OptionalArgument; // https://api.slack.com/methods/conversations.mark export interface ConversationsMarkArguments extends Message, TokenOverridable { } diff --git a/packages/web-api/src/types/request/dnd.ts b/packages/web-api/src/types/request/dnd.ts index 81f66ebc9..a530f7167 100644 --- a/packages/web-api/src/types/request/dnd.ts +++ b/packages/web-api/src/types/request/dnd.ts @@ -1,14 +1,15 @@ import { OptionalTeamAssignable, TokenOverridable } from './common'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/dnd.endDnd -export interface DndEndDndArguments extends TokenOverridable { } +export type DndEndDndArguments = OptionalArgument; // https://api.slack.com/methods/dnd.endSnooze -export interface DndEndSnoozeArguments extends TokenOverridable { } +export type DndEndSnoozeArguments = OptionalArgument; // https://api.slack.com/methods/dnd.info -export interface DndInfoArguments extends TokenOverridable, OptionalTeamAssignable { +export type DndInfoArguments = OptionalArgument; // https://api.slack.com/methods/dnd.setSnooze export interface DndSetSnoozeArguments extends TokenOverridable { /** @description Number of minutes, from now, to snooze until. */ diff --git a/packages/web-api/src/types/request/emoji.ts b/packages/web-api/src/types/request/emoji.ts index 3f59549bd..f63b0c515 100644 --- a/packages/web-api/src/types/request/emoji.ts +++ b/packages/web-api/src/types/request/emoji.ts @@ -1,6 +1,7 @@ import { TokenOverridable } from './common'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/emoji.list -export interface EmojiListArguments extends TokenOverridable { +export type EmojiListArguments = OptionalArgument; diff --git a/packages/web-api/src/types/request/openid.ts b/packages/web-api/src/types/request/openid.ts index 9415ffa7e..723cbaa76 100644 --- a/packages/web-api/src/types/request/openid.ts +++ b/packages/web-api/src/types/request/openid.ts @@ -1,7 +1,7 @@ import type { OAuthCredentials, OAuthGrantRefresh } from './common'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/openid.connect.token export interface OpenIDConnectTokenArguments extends OAuthCredentials, OAuthGrantRefresh {} // https://api.slack.com/methods/openid.connect.userInfo -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface OpenIDConnectUserInfoArguments {} +export type OpenIDConnectUserInfoArguments = OptionalArgument; diff --git a/packages/web-api/src/types/request/reactions.ts b/packages/web-api/src/types/request/reactions.ts index 97509fa13..10225bf33 100644 --- a/packages/web-api/src/types/request/reactions.ts +++ b/packages/web-api/src/types/request/reactions.ts @@ -7,6 +7,7 @@ import { TokenOverridable, TraditionalPagingEnabled, } from './common'; +import { OptionalArgument } from '../helpers'; interface ReactionsFull { /** @description If `true`, return the complete reaction list. */ @@ -23,11 +24,11 @@ export type ReactionsGetArguments = ReactionsFull & TokenOverridable & (MessageArgument | FileArgument | FileCommentArgument); // https://api.slack.com/methods/reactions.list -export interface ReactionsListArguments extends ReactionsFull, TokenOverridable, TraditionalPagingEnabled, - CursorPaginationEnabled, OptionalTeamAssignable { +export type ReactionsListArguments = OptionalArgument; // https://api.slack.com/methods/reactions.remove export type ReactionsRemoveArguments = TokenOverridable & ReactionName & (MessageArgument | FileArgument | FileCommentArgument); diff --git a/packages/web-api/src/types/request/reminders.ts b/packages/web-api/src/types/request/reminders.ts index db71a40c0..1ad0d5868 100644 --- a/packages/web-api/src/types/request/reminders.ts +++ b/packages/web-api/src/types/request/reminders.ts @@ -1,4 +1,5 @@ import { OptionalTeamAssignable, TokenOverridable } from './common'; +import { OptionalArgument } from '../helpers'; interface ReminderRecurrenceDailyMonthlyYearly { /** @description Specifies the repeating behavior of a reminder. */ @@ -51,4 +52,4 @@ export interface RemindersInfoArguments extends TokenOverridable, OptionalTeamAs reminder: string; } // https://api.slack.com/methods/reminders.list -export interface RemindersListArguments extends TokenOverridable, OptionalTeamAssignable { } +export type RemindersListArguments = OptionalArgument; diff --git a/packages/web-api/src/types/request/rtm.ts b/packages/web-api/src/types/request/rtm.ts index 2cb243e7b..26e5ea92a 100644 --- a/packages/web-api/src/types/request/rtm.ts +++ b/packages/web-api/src/types/request/rtm.ts @@ -1,7 +1,8 @@ import { LocaleAware, TokenOverridable } from './common'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/rtm.connect -export interface RTMConnectArguments extends TokenOverridable { +export type RTMConnectArguments = OptionalArgument; // https://api.slack.com/methods/rtm.start -export interface RTMStartArguments extends RTMConnectArguments, LocaleAware { +export type RTMStartArguments = OptionalArgument; diff --git a/packages/web-api/src/types/request/team.ts b/packages/web-api/src/types/request/team.ts index ed12b997d..d1104255d 100644 --- a/packages/web-api/src/types/request/team.ts +++ b/packages/web-api/src/types/request/team.ts @@ -5,25 +5,27 @@ import { CursorPaginationEnabled, TraditionalPagingEnabled, } from './common'; +import { OptionalArgument } from '../helpers'; // https://api.slack.com/methods/team.accessLogs -export interface TeamAccessLogsArguments extends TokenOverridable, CursorPaginationEnabled, - TraditionalPagingEnabled, OptionalTeamAssignable { +export type TeamAccessLogsArguments = OptionalArgument; // https://api.slack.com/methods/team.billableInfo -export interface TeamBillableInfoArguments extends TokenOverridable, CursorPaginationEnabled, OptionalTeamAssignable { +export type TeamBillableInfoArguments = OptionalArgument; // https://api.slack.com/methods/team.billing.info -export interface TeamBillingInfoArguments extends TokenOverridable {} +export type TeamBillingInfoArguments = OptionalArgument; // https://api.slack.com/methods/team.info -export interface TeamInfoArguments extends TokenOverridable { +export type TeamInfoArguments = OptionalArgument; // https://api.slack.com/methods/team.integrationLogs -export interface TeamIntegrationLogsArguments extends Partial, TokenOverridable, - OptionalTeamAssignable, TraditionalPagingEnabled { +export type TeamIntegrationLogsArguments = OptionalArgument & TokenOverridable & +OptionalTeamAssignable & TraditionalPagingEnabled & { /** @description Filter logs with this change type. Defaults to all logs. */ change_type?: 'added' | 'removed' | 'enabled' | 'disabled' | 'updated'; /** @description Filter logs to this service. Defaults to all logs. */ service_id?: string; /** @description Filter logs generated by this user’s actions. Defaults to all logs. */ user?: string; -} +}>; // https://api.slack.com/methods/team.profile.get -export interface TeamProfileGetArguments extends TokenOverridable { +export type TeamProfileGetArguments = OptionalArgument; // https://api.slack.com/methods/team.preferences.list -export interface TeamPreferencesListArguments extends TokenOverridable { } +export type TeamPreferencesListArguments = OptionalArgument; diff --git a/packages/web-api/src/types/request/usergroups.ts b/packages/web-api/src/types/request/usergroups.ts index 3cbdb1234..9b26e4c9e 100644 --- a/packages/web-api/src/types/request/usergroups.ts +++ b/packages/web-api/src/types/request/usergroups.ts @@ -1,4 +1,5 @@ import { OptionalTeamAssignable, TokenOverridable } from './common'; +import { OptionalArgument } from '../helpers'; interface UsergroupsIncludeCount { /** @description Include the number of users in each User Group. */ @@ -27,12 +28,14 @@ export interface UsergroupsEnableArguments extends TokenOverridable, OptionalTea usergroup: string; } // https://api.slack.com/methods/usergroups.list -export interface UsergroupsListArguments extends TokenOverridable, OptionalTeamAssignable, UsergroupsIncludeCount { +export type UsergroupsListArguments = OptionalArgument; + // https://api.slack.com/methods/usergroups.update export interface UsergroupsUpdateArguments extends TokenOverridable, OptionalTeamAssignable, Partial { diff --git a/packages/web-api/test/types/methods/admin.apps.test-d.ts b/packages/web-api/test/types/methods/admin.apps.test-d.ts index 989834cab..54a48a826 100644 --- a/packages/web-api/test/types/methods/admin.apps.test-d.ts +++ b/packages/web-api/test/types/methods/admin.apps.test-d.ts @@ -5,9 +5,9 @@ const web = new WebClient('TOKEN'); // admin.apps.activities.list // -- sad path -expectError(web.admin.apps.activities.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // admin.apps.approve // -- sad path diff --git a/packages/web-api/test/types/methods/admin.barriers.test-d.ts b/packages/web-api/test/types/methods/admin.barriers.test-d.ts index 9cfe78077..7534848ca 100644 --- a/packages/web-api/test/types/methods/admin.barriers.test-d.ts +++ b/packages/web-api/test/types/methods/admin.barriers.test-d.ts @@ -51,9 +51,9 @@ expectAssignable>([{ // admin.barriers.list // -- sad path -expectError(web.admin.barriers.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // admin.barriers.update // -- sad path diff --git a/packages/web-api/test/types/methods/admin.conversations.test-d.ts b/packages/web-api/test/types/methods/admin.conversations.test-d.ts index eb1c517e2..14a7a8ba3 100644 --- a/packages/web-api/test/types/methods/admin.conversations.test-d.ts +++ b/packages/web-api/test/types/methods/admin.conversations.test-d.ts @@ -154,10 +154,10 @@ expectAssignable>([{ // admin.conversations.ekm.listOriginalConnectedChannelInfo // -- sad path -expectError(web.admin.conversations.ekm.listOriginalConnectedChannelInfo()); // lacking argument // -- happy path expectAssignable>([{ }]); // all optional args +expectAssignable>([]); // all optional args // admin.conversations.getConversationPrefs // -- sad path @@ -287,10 +287,10 @@ expectAssignable>([{ }]); // all optional args +expectAssignable>([]); // no arg is fine // admin.conversations.setConversationPrefs // -- sad path diff --git a/packages/web-api/test/types/methods/admin.emoji.test-d.ts b/packages/web-api/test/types/methods/admin.emoji.test-d.ts index b04a7c3f9..b16361dc5 100644 --- a/packages/web-api/test/types/methods/admin.emoji.test-d.ts +++ b/packages/web-api/test/types/methods/admin.emoji.test-d.ts @@ -37,9 +37,9 @@ expectAssignable>([{ // admin.emoji.list // -- sad path -expectError(web.admin.emoji.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // admin.emoji.remove // -- sad path diff --git a/packages/web-api/test/types/methods/admin.roles.test-d.ts b/packages/web-api/test/types/methods/admin.roles.test-d.ts index 6e670b2c7..de8510707 100644 --- a/packages/web-api/test/types/methods/admin.roles.test-d.ts +++ b/packages/web-api/test/types/methods/admin.roles.test-d.ts @@ -47,9 +47,9 @@ expectAssignable>([{ // admin.roles.listAssignments // -- sad path -expectError(web.admin.roles.listAssignments()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional +expectAssignable>([]); // no arg is fine // admin.roles.removeAssignments // -- sad path diff --git a/packages/web-api/test/types/methods/admin.teams.test-d.ts b/packages/web-api/test/types/methods/admin.teams.test-d.ts index 7c037bb5e..16580afd8 100644 --- a/packages/web-api/test/types/methods/admin.teams.test-d.ts +++ b/packages/web-api/test/types/methods/admin.teams.test-d.ts @@ -30,9 +30,9 @@ expectAssignable>([{ // admin.teams.list // -- sad path -expectError(web.admin.teams.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional +expectAssignable>([]); // no arg is fine // admin.teams.owners.list // -- sad path diff --git a/packages/web-api/test/types/methods/admin.users.test-d.ts b/packages/web-api/test/types/methods/admin.users.test-d.ts index 5c1ef1b43..b882db662 100644 --- a/packages/web-api/test/types/methods/admin.users.test-d.ts +++ b/packages/web-api/test/types/methods/admin.users.test-d.ts @@ -67,7 +67,6 @@ expectAssignable>([{ // admin.users.list // -- sad path -expectError(web.admin.users.list()); // lacking argument expectError(web.admin.users.list({ team_id: 'T1234', include_deactivated_user_workspaces: true, // cannot set both team_id and include_deactivated=true @@ -77,6 +76,7 @@ expectError(web.admin.users.list({ })); // -- happy path expectAssignable>([{}]); // all optional args is ok +expectAssignable>([]); // no args is fine expectAssignable>([{ team_id: 'T1234', include_deactivated_user_workspaces: false, // team_id and include_deactivated=false is ok @@ -146,7 +146,6 @@ expectAssignable>([{ // admin.users.session.list // -- sad path -expectError(web.admin.users.session.list()); // lacking argument expectError(web.admin.users.session.list({ team_id: 'T1234', // if team_id is provided, must also provide user_id })); @@ -155,6 +154,7 @@ expectError(web.admin.users.session.list({ })); // -- happy path expectAssignable>([{}]); // all optional args is OK +expectAssignable>([]); // no arg is fine expectAssignable>([{ team_id: 'T1234', user_id: 'U1234', // also providing both team and user id - but has to be both diff --git a/packages/web-api/test/types/methods/admin.workflows.test-d.ts b/packages/web-api/test/types/methods/admin.workflows.test-d.ts index 1947d925e..f459961b1 100644 --- a/packages/web-api/test/types/methods/admin.workflows.test-d.ts +++ b/packages/web-api/test/types/methods/admin.workflows.test-d.ts @@ -65,12 +65,12 @@ expectAssignable>([{ // admin.workflows.search // -- sad path -expectError(web.admin.workflows.search()); // lacking argument expectError(web.admin.workflows.search({ collaborator_ids: [], // must provide at least 1 ID })); // -- happy path expectAssignable>([{}]); // all optional args OK +expectAssignable>([]); // no arg is fine // admin.workflows.unpublish // -- sad path diff --git a/packages/web-api/test/types/methods/api.test-d.ts b/packages/web-api/test/types/methods/api.test-d.ts index 87aa8a0ac..6eaa29986 100644 --- a/packages/web-api/test/types/methods/api.test-d.ts +++ b/packages/web-api/test/types/methods/api.test-d.ts @@ -1,10 +1,10 @@ -import { expectAssignable, expectError } from 'tsd'; +import { expectAssignable } from 'tsd'; import { WebClient } from '../../../src/WebClient'; const web = new WebClient('TOKEN'); // api.test // -- sad path -expectError(web.api.test()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/apps.test-d.ts b/packages/web-api/test/types/methods/apps.test-d.ts index d97492041..63810d8db 100644 --- a/packages/web-api/test/types/methods/apps.test-d.ts +++ b/packages/web-api/test/types/methods/apps.test-d.ts @@ -5,9 +5,9 @@ const web = new WebClient('TOKEN'); // apps.connections.open // -- sad path -expectError(web.apps.connections.open()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // apps.event.authorizations.list // -- sad path diff --git a/packages/web-api/test/types/methods/auth.test-d.ts b/packages/web-api/test/types/methods/auth.test-d.ts index 68d817a92..9c5e5f2b8 100644 --- a/packages/web-api/test/types/methods/auth.test-d.ts +++ b/packages/web-api/test/types/methods/auth.test-d.ts @@ -1,22 +1,22 @@ -import { expectAssignable, expectError } from 'tsd'; +import { expectAssignable } from 'tsd'; import { WebClient } from '../../../src/WebClient'; const web = new WebClient('TOKEN'); // auth.revoke // -- sad path -expectError(web.auth.revoke()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // auth.teams.list // -- sad path -expectError(web.auth.teams.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // auth.test // -- sad path -expectError(web.auth.test()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/bots.test-d.ts b/packages/web-api/test/types/methods/bots.test-d.ts index 99ab5f04f..582a03f8c 100644 --- a/packages/web-api/test/types/methods/bots.test-d.ts +++ b/packages/web-api/test/types/methods/bots.test-d.ts @@ -1,10 +1,10 @@ -import { expectAssignable, expectError } from 'tsd'; +import { expectAssignable } from 'tsd'; import { WebClient } from '../../../src/WebClient'; const web = new WebClient('TOKEN'); // bots.info // -- sad path -expectError(web.bots.info()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/chat.test-d.ts b/packages/web-api/test/types/methods/chat.test-d.ts index b30f0e676..602974b6f 100644 --- a/packages/web-api/test/types/methods/chat.test-d.ts +++ b/packages/web-api/test/types/methods/chat.test-d.ts @@ -370,9 +370,9 @@ expectAssignable>([{ // chat.scheduledMessages.list // -- sad path -expectError(web.chat.scheduledMessages.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // chat.unfurl // -- sad path diff --git a/packages/web-api/test/types/methods/conversations.test-d.ts b/packages/web-api/test/types/methods/conversations.test-d.ts index e2d142530..4d5f5f305 100644 --- a/packages/web-api/test/types/methods/conversations.test-d.ts +++ b/packages/web-api/test/types/methods/conversations.test-d.ts @@ -169,15 +169,15 @@ expectAssignable>([{ // conversations.list // -- sad path -expectError(web.conversations.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // conversations.listConnectInvites // -- sad path -expectError(web.conversations.listConnectInvites()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // conversations.mark // -- sad path diff --git a/packages/web-api/test/types/methods/dnd.test-d.ts b/packages/web-api/test/types/methods/dnd.test-d.ts index a7244d258..ecc891413 100644 --- a/packages/web-api/test/types/methods/dnd.test-d.ts +++ b/packages/web-api/test/types/methods/dnd.test-d.ts @@ -5,21 +5,21 @@ const web = new WebClient('TOKEN'); // dnd.endDnd // -- sad path -expectError(web.dnd.endDnd()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // dnd.endSnooze // -- sad path -expectError(web.dnd.endSnooze()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // dnd.info // -- sad path -expectError(web.dnd.info()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // dnd.setSnooze // -- sad path diff --git a/packages/web-api/test/types/methods/emoji.test-d.ts b/packages/web-api/test/types/methods/emoji.test-d.ts index 11b603657..89acc4ebd 100644 --- a/packages/web-api/test/types/methods/emoji.test-d.ts +++ b/packages/web-api/test/types/methods/emoji.test-d.ts @@ -1,10 +1,10 @@ -import { expectAssignable, expectError } from 'tsd'; +import { expectAssignable } from 'tsd'; import { WebClient } from '../../../src/WebClient'; const web = new WebClient('TOKEN'); // emoji.list // -- sad path -expectError(web.emoji.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/openid.test-d.ts b/packages/web-api/test/types/methods/openid.test-d.ts index 2e1f748aa..0871960e4 100644 --- a/packages/web-api/test/types/methods/openid.test-d.ts +++ b/packages/web-api/test/types/methods/openid.test-d.ts @@ -23,6 +23,6 @@ expectAssignable>([{ // openid.connect.userInfo // -- sad path -expectError(web.openid.connect.userInfo()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/reactions.test-d.ts b/packages/web-api/test/types/methods/reactions.test-d.ts index 1251d3540..b7e14a850 100644 --- a/packages/web-api/test/types/methods/reactions.test-d.ts +++ b/packages/web-api/test/types/methods/reactions.test-d.ts @@ -53,9 +53,9 @@ expectAssignable>([{ // reactions.list // -- sad path -expectError(web.reactions.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine // reactions.remove // -- sad path diff --git a/packages/web-api/test/types/methods/reminders.test-d.ts b/packages/web-api/test/types/methods/reminders.test-d.ts index a193a4e4e..4c815c22f 100644 --- a/packages/web-api/test/types/methods/reminders.test-d.ts +++ b/packages/web-api/test/types/methods/reminders.test-d.ts @@ -74,6 +74,6 @@ expectAssignable>([{ // reminders.list // -- sad path -expectError(web.reminders.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional args +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/rtm.test-d.ts b/packages/web-api/test/types/methods/rtm.test-d.ts index 1aa91a7ce..f450abf89 100644 --- a/packages/web-api/test/types/methods/rtm.test-d.ts +++ b/packages/web-api/test/types/methods/rtm.test-d.ts @@ -1,16 +1,16 @@ -import { expectAssignable, expectError } from 'tsd'; +import { expectAssignable } from 'tsd'; import { WebClient } from '../../../src/WebClient'; const web = new WebClient('TOKEN'); // rtm.connect // -- sad path -expectError(web.rtm.connect()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine // rtm.start // -- sad path -expectError(web.rtm.start()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/team.test-d.ts b/packages/web-api/test/types/methods/team.test-d.ts index d332fb684..c454f9f57 100644 --- a/packages/web-api/test/types/methods/team.test-d.ts +++ b/packages/web-api/test/types/methods/team.test-d.ts @@ -1,40 +1,46 @@ -import { expectAssignable, expectError } from 'tsd'; +import { expectAssignable } from 'tsd'; import { WebClient } from '../../../src/WebClient'; const web = new WebClient('TOKEN'); // team.accessLogs // -- sad path -expectError(web.team.accessLogs()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine // team.billableInfo // -- sad path -expectError(web.team.billableInfo()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine // team.billing.info // -- sad path -expectError(web.team.billing.info()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine + +// team.info +// -- sad path +// -- happy path +expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine // team.integrationLogs // -- sad path -expectError(web.team.integrationLogs()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine // team.profile.get // -- sad path -expectError(web.team.profile.get()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine // team.preferences.list // -- sad path -expectError(web.team.preferences.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional arguments +expectAssignable>([]); // no arg is fine diff --git a/packages/web-api/test/types/methods/usergroups.test-d.ts b/packages/web-api/test/types/methods/usergroups.test-d.ts index fd1746873..009737c30 100644 --- a/packages/web-api/test/types/methods/usergroups.test-d.ts +++ b/packages/web-api/test/types/methods/usergroups.test-d.ts @@ -32,9 +32,9 @@ expectAssignable>([{ // usergroups.list // -- sad path -expectError(web.usergroups.list()); // lacking argument // -- happy path expectAssignable>([{}]); // all optional properties +expectAssignable>([]); // no arg is fine // usergroups.update // -- sad path