diff --git a/package.json b/package.json index 8557b655..597c54ff 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,7 @@ "email": "justin.s.dalrymple@gmail.com" }, "files": [ - "dist", - "typings" + "dist" ], "main": "dist/index.js", "module": "dist/index.es.js", diff --git a/src/index.ts b/src/index.ts index 7273f639..09a93638 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,3 @@ -/// import { shim } from 'universal-url'; // Add URL shim diff --git a/src/infrastructure/BaseService.ts b/src/infrastructure/BaseService.ts index 7a089498..e9b7ef37 100644 --- a/src/infrastructure/BaseService.ts +++ b/src/infrastructure/BaseService.ts @@ -1,4 +1,5 @@ import { KyRequester } from './KyRequester'; +import { Requester, BaseServiceOptions } from '.'; export class BaseService { public readonly url: string; diff --git a/src/infrastructure/KyRequester.ts b/src/infrastructure/KyRequester.ts index cadcfdbd..f65db234 100644 --- a/src/infrastructure/KyRequester.ts +++ b/src/infrastructure/KyRequester.ts @@ -2,6 +2,7 @@ import Ky from 'ky-universal'; import { decamelizeKeys } from 'humps'; import { stringify } from 'query-string'; import { skipAllCaps } from './Utils'; +import { Requester } from '.'; const methods = ['get', 'post', 'put', 'delete', 'stream']; const KyRequester = {} as Requester; diff --git a/src/infrastructure/RequestHelper.ts b/src/infrastructure/RequestHelper.ts index 10628c3f..a4c4769a 100644 --- a/src/infrastructure/RequestHelper.ts +++ b/src/infrastructure/RequestHelper.ts @@ -1,6 +1,15 @@ import Li from 'li'; import { camelizeKeys } from 'humps'; import { BaseService } from './BaseService'; +import { + BaseRequestOptions, + DelResponse, + GetResponse, + PaginatedRequestOptions, + PaginationResponse, + PostResponse, + PutResponse, +} from '.'; export async function get( service: BaseService, diff --git a/src/infrastructure/Utils.ts b/src/infrastructure/Utils.ts index fb69d3e9..fb59b501 100644 --- a/src/infrastructure/Utils.ts +++ b/src/infrastructure/Utils.ts @@ -1,3 +1,5 @@ +import { Constructor, Bundle } from "."; + export function bundler(services: T) { return (function Bundle(options?: any) { Object.entries(services || {}).forEach(([name, ser]) => { diff --git a/src/infrastructure/index.ts b/src/infrastructure/index.ts index f38b5fde..389a77bb 100644 --- a/src/infrastructure/index.ts +++ b/src/infrastructure/index.ts @@ -4,3 +4,74 @@ export { BaseService } from './BaseService'; export { bundler } from './Utils'; export { KyRequester } from './KyRequester'; export { RequestHelper }; + +// Bundler +export interface Constructor { + new (...args: any): any; +} + +export type Mapper = { + [name in P]: InstanceType +}; + +export interface Bundle { + new (options?: any): Mapper; +} + +// Base Service +export interface Sudo { + sudo?: string | number; +} + +export interface Requester { + get: Function; + post: Function; + put: Function; + delete: Function; + stream?: Function; +} + +export interface BaseServiceOptions extends Sudo { + oauthToken?: string; + token?: string; + jobToken?: string; + host?: string; + url?: string; + version?: string; + rejectUnauthorized?: boolean; + camelize?: boolean; + requester?: Requester; + requestTimeout?: number; +} + +// RequestHelper +export interface PaginationOptions { + total: number; + next: number | null; + current: number; + previous: number | null; + perPage: number; + totalPages: number; +} + +export interface DefaultRequestOptions extends Sudo { + body?: object | FormData; + query?: object; +} + +export interface BaseRequestOptions extends Sudo { + [key: string]: any; +} + +export interface PaginatedRequestOptions extends BaseRequestOptions { + showPagination?: boolean; + maxPages?: number; + page?: number; + perPage?: number; +} + +export type PaginationResponse = { data: object[], pagination: PaginationOptions } +export type GetResponse = PaginationResponse | object | object[]; +export type PostResponse = object; +export type PutResponse = object; +export type DelResponse = object; diff --git a/src/services/ApplicationSettings.ts b/src/services/ApplicationSettings.ts index be320230..c3d0cbbc 100644 --- a/src/services/ApplicationSettings.ts +++ b/src/services/ApplicationSettings.ts @@ -1,4 +1,4 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo, BaseRequestOptions } from '../infrastructure'; class ApplicationSettings extends BaseService { all(options?: Sudo) { diff --git a/src/services/Branches.ts b/src/services/Branches.ts index c593c52b..2c79e66a 100644 --- a/src/services/Branches.ts +++ b/src/services/Branches.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId } from '.'; class Branches extends BaseService { all(projectId: ProjectId, options?: { search?: string } & PaginatedRequestOptions) { diff --git a/src/services/BroadcastMessages.ts b/src/services/BroadcastMessages.ts index 7cb4198b..c3407dff 100644 --- a/src/services/BroadcastMessages.ts +++ b/src/services/BroadcastMessages.ts @@ -1,4 +1,10 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; +import { BroadcastMessageId } from '.'; class BroadcastMessages extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/CommitDiscussions.ts b/src/services/CommitDiscussions.ts index 6c5209c7..ac118426 100644 --- a/src/services/CommitDiscussions.ts +++ b/src/services/CommitDiscussions.ts @@ -1,4 +1,5 @@ import { ResourceDiscussions } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class CommitDiscussions extends ResourceDiscussions { constructor(options: BaseServiceOptions) { diff --git a/src/services/Commits.ts b/src/services/Commits.ts index 2ff10a18..3da55114 100644 --- a/src/services/Commits.ts +++ b/src/services/Commits.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, CommitAction } from '.'; class Commits extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/ContainerRegistry.ts b/src/services/ContainerRegistry.ts index 91fb5a37..48666801 100644 --- a/src/services/ContainerRegistry.ts +++ b/src/services/ContainerRegistry.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, PaginatedRequestOptions, Sudo } from '../infrastructure'; +import { ProjectId } from '.'; class ContainerRegistry extends BaseService { repositories(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/DeployKeys.ts b/src/services/DeployKeys.ts index 9419e57e..0905ef71 100644 --- a/src/services/DeployKeys.ts +++ b/src/services/DeployKeys.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo, PaginatedRequestOptions } from '../infrastructure'; +import { ProjectId, KeyId } from '.'; class DeployKeys extends BaseService { add(projectId: ProjectId, options?: Sudo) { diff --git a/src/services/Deployments.ts b/src/services/Deployments.ts index 509f14b9..ffac3331 100644 --- a/src/services/Deployments.ts +++ b/src/services/Deployments.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, PaginatedRequestOptions, Sudo } from '../infrastructure'; +import { ProjectId, DeploymentId } from '.'; class Deployments extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/Environments.ts b/src/services/Environments.ts index 4a47598a..d7b6cde7 100644 --- a/src/services/Environments.ts +++ b/src/services/Environments.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, EnvironmentId } from '.'; class Environments extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/EpicDiscussions.ts b/src/services/EpicDiscussions.ts index 77db7e22..e44b8f58 100644 --- a/src/services/EpicDiscussions.ts +++ b/src/services/EpicDiscussions.ts @@ -1,4 +1,5 @@ import { ResourceDiscussions } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class EpicDiscussions extends ResourceDiscussions { constructor(options: BaseServiceOptions) { diff --git a/src/services/EpicIssues.ts b/src/services/EpicIssues.ts index 74af3561..4848ba62 100644 --- a/src/services/EpicIssues.ts +++ b/src/services/EpicIssues.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { GroupId, EpicId, IssueId } from '.'; class EpicIssues extends BaseService { all(groupId: GroupId, epicId: EpicId, options?: PaginatedRequestOptions) { diff --git a/src/services/EpicNotes.ts b/src/services/EpicNotes.ts index 0797d543..2061de44 100644 --- a/src/services/EpicNotes.ts +++ b/src/services/EpicNotes.ts @@ -1,4 +1,5 @@ import { ResourceNotes } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class EpicNotes extends ResourceNotes { constructor(options: BaseServiceOptions) { diff --git a/src/services/Epics.ts b/src/services/Epics.ts index c5d9bb4f..1d118e49 100644 --- a/src/services/Epics.ts +++ b/src/services/Epics.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { GroupId, EpicId } from '.'; class Epics extends BaseService { all(groupId: GroupId, options?: PaginatedRequestOptions) { diff --git a/src/services/Events.ts b/src/services/Events.ts index 22582798..dcaa2f2d 100644 --- a/src/services/Events.ts +++ b/src/services/Events.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, PaginatedRequestOptions } from '../infrastructure'; +import { EventOptions } from '.'; class Events extends BaseService { all(options?: PaginatedRequestOptions & EventOptions) { diff --git a/src/services/FeatureFlags.ts b/src/services/FeatureFlags.ts index ac3e62f5..d8e52606 100644 --- a/src/services/FeatureFlags.ts +++ b/src/services/FeatureFlags.ts @@ -1,4 +1,9 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; class FeatureFlags extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/GeoNodes.ts b/src/services/GeoNodes.ts index 28252aeb..d709c181 100644 --- a/src/services/GeoNodes.ts +++ b/src/services/GeoNodes.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { GeonodeId } from '.'; class GeoNodes extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/GitLabCIYMLTemplates.ts b/src/services/GitLabCIYMLTemplates.ts index ddbe4a6d..85995400 100644 --- a/src/services/GitLabCIYMLTemplates.ts +++ b/src/services/GitLabCIYMLTemplates.ts @@ -1,4 +1,5 @@ import { ResourceTemplates } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GitLabCIYMLTemplates extends ResourceTemplates { constructor(options: BaseServiceOptions) { diff --git a/src/services/GitignoreTemplates.ts b/src/services/GitignoreTemplates.ts index 61398e72..c2de232e 100644 --- a/src/services/GitignoreTemplates.ts +++ b/src/services/GitignoreTemplates.ts @@ -1,4 +1,5 @@ import { ResourceTemplates } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GitignoreTemplates extends ResourceTemplates { constructor(options: BaseServiceOptions) { diff --git a/src/services/GroupAccessRequests.ts b/src/services/GroupAccessRequests.ts index 25a0b1bc..992a7be1 100644 --- a/src/services/GroupAccessRequests.ts +++ b/src/services/GroupAccessRequests.ts @@ -1,4 +1,5 @@ import { ResourceAccessRequests } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GroupAccessRequests extends ResourceAccessRequests { constructor(options: BaseServiceOptions) { diff --git a/src/services/GroupBadges.ts b/src/services/GroupBadges.ts index e9c9cc17..35d6d5d1 100644 --- a/src/services/GroupBadges.ts +++ b/src/services/GroupBadges.ts @@ -1,4 +1,5 @@ import { ResourceBadges } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GroupBadges extends ResourceBadges { constructor(options: BaseServiceOptions) { diff --git a/src/services/GroupCustomAttributes.ts b/src/services/GroupCustomAttributes.ts index 579a8499..1e6bc5c1 100644 --- a/src/services/GroupCustomAttributes.ts +++ b/src/services/GroupCustomAttributes.ts @@ -1,4 +1,5 @@ import { ResourceCustomAttributes } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GroupCustomAttributes extends ResourceCustomAttributes { constructor(options: BaseServiceOptions) { diff --git a/src/services/GroupIssueBoards.ts b/src/services/GroupIssueBoards.ts index 79bbf081..674d3997 100644 --- a/src/services/GroupIssueBoards.ts +++ b/src/services/GroupIssueBoards.ts @@ -1,4 +1,5 @@ import { ResourceIssueBoards } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GroupIssueBoards extends ResourceIssueBoards { constructor(options: BaseServiceOptions) { diff --git a/src/services/GroupMembers.ts b/src/services/GroupMembers.ts index c9d868f3..ff4973a3 100644 --- a/src/services/GroupMembers.ts +++ b/src/services/GroupMembers.ts @@ -1,4 +1,5 @@ import { ResourceMembers } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GroupMembers extends ResourceMembers { constructor(options: BaseServiceOptions) { diff --git a/src/services/GroupMilestones.ts b/src/services/GroupMilestones.ts index d24c3f78..f6521f85 100644 --- a/src/services/GroupMilestones.ts +++ b/src/services/GroupMilestones.ts @@ -1,4 +1,5 @@ import { ResourceMilestones } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GroupMilestones extends ResourceMilestones { constructor(options: BaseServiceOptions) { diff --git a/src/services/GroupProjects.ts b/src/services/GroupProjects.ts index a2c3b1c8..28be1026 100644 --- a/src/services/GroupProjects.ts +++ b/src/services/GroupProjects.ts @@ -1,4 +1,10 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; +import { GroupProjectId, ProjectId } from '.'; class GroupProjects extends BaseService { all(groupId: GroupProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/GroupVariables.ts b/src/services/GroupVariables.ts index eef035a4..74c32916 100644 --- a/src/services/GroupVariables.ts +++ b/src/services/GroupVariables.ts @@ -1,4 +1,5 @@ import { ResourceVariables } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class GroupVariables extends ResourceVariables { constructor(options: BaseServiceOptions) { diff --git a/src/services/Groups.ts b/src/services/Groups.ts index a04550d9..3c3a762d 100644 --- a/src/services/Groups.ts +++ b/src/services/Groups.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { GroupId } from '.'; class Groups extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/IssueAwardEmojis.ts b/src/services/IssueAwardEmojis.ts index e024af55..b06d6ce5 100644 --- a/src/services/IssueAwardEmojis.ts +++ b/src/services/IssueAwardEmojis.ts @@ -1,4 +1,5 @@ import { ResourceAwardEmojis } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class IssueAwardEmojis extends ResourceAwardEmojis { constructor(options: BaseServiceOptions) { diff --git a/src/services/IssueDiscussions.ts b/src/services/IssueDiscussions.ts index ea18887d..f53233be 100644 --- a/src/services/IssueDiscussions.ts +++ b/src/services/IssueDiscussions.ts @@ -1,4 +1,5 @@ import { ResourceDiscussions } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class IssueDiscussions extends ResourceDiscussions { constructor(options: BaseServiceOptions) { diff --git a/src/services/IssueNotes.ts b/src/services/IssueNotes.ts index 0fbb4fc8..29fec356 100644 --- a/src/services/IssueNotes.ts +++ b/src/services/IssueNotes.ts @@ -1,4 +1,5 @@ import { ResourceNotes } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class IssueNotes extends ResourceNotes { constructor(options: BaseServiceOptions) { diff --git a/src/services/Issues.ts b/src/services/Issues.ts index 6b1dce65..c89873b5 100644 --- a/src/services/Issues.ts +++ b/src/services/Issues.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, IssueId } from '.'; class Issues extends BaseService { addSpentTime(projectId: ProjectId, issueId: IssueId, duration: string, options?: Sudo) { diff --git a/src/services/Jobs.ts b/src/services/Jobs.ts index c090c2f8..c7403c9e 100644 --- a/src/services/Jobs.ts +++ b/src/services/Jobs.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, JobId, PipelineId, JobScope } from '.'; class Jobs extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/Keys.ts b/src/services/Keys.ts index 04efa815..3db1c519 100644 --- a/src/services/Keys.ts +++ b/src/services/Keys.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo } from '../infrastructure'; +import { KeyId } from '.'; class Keys extends BaseService { show(keyId: KeyId, options?: Sudo) { diff --git a/src/services/Labels.ts b/src/services/Labels.ts index e5992768..269396de 100644 --- a/src/services/Labels.ts +++ b/src/services/Labels.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, LabelId } from '.'; class Labels extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/Licence.ts b/src/services/Licence.ts index 090f9f54..3e92c29d 100644 --- a/src/services/Licence.ts +++ b/src/services/Licence.ts @@ -1,4 +1,4 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo } from '../infrastructure'; class Licence extends BaseService { all(options?: Sudo) { diff --git a/src/services/LicenceTemplates.ts b/src/services/LicenceTemplates.ts index 395675d1..5e01fb2a 100644 --- a/src/services/LicenceTemplates.ts +++ b/src/services/LicenceTemplates.ts @@ -1,4 +1,5 @@ import { ResourceTemplates } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class LicenceTemplates extends ResourceTemplates { constructor(options: BaseServiceOptions) { diff --git a/src/services/Lint.ts b/src/services/Lint.ts index 75cdfc86..1ceb1979 100644 --- a/src/services/Lint.ts +++ b/src/services/Lint.ts @@ -1,4 +1,4 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo } from '../infrastructure'; class Lint extends BaseService { lint(content: string, options?: Sudo) { diff --git a/src/services/Markdown.ts b/src/services/Markdown.ts index bf5c6078..753fd55d 100644 --- a/src/services/Markdown.ts +++ b/src/services/Markdown.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo } from '../infrastructure'; +import { ProjectId } from '.'; class Markdown extends BaseService { render(text: string, options: { gfm?: string; project?: ProjectId } & Sudo) { diff --git a/src/services/MergeRequestAwardEmojis.ts b/src/services/MergeRequestAwardEmojis.ts index b3e40942..08b19a04 100644 --- a/src/services/MergeRequestAwardEmojis.ts +++ b/src/services/MergeRequestAwardEmojis.ts @@ -1,4 +1,5 @@ import { ResourceAwardEmojis } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class MergeRequestAwardEmojis extends ResourceAwardEmojis { constructor(options: BaseServiceOptions) { diff --git a/src/services/MergeRequestDiscussions.ts b/src/services/MergeRequestDiscussions.ts index 7a8c12e2..e282841c 100644 --- a/src/services/MergeRequestDiscussions.ts +++ b/src/services/MergeRequestDiscussions.ts @@ -1,4 +1,5 @@ import { ResourceDiscussions } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class MergeRequestDiscussions extends ResourceDiscussions { constructor(options: BaseServiceOptions) { diff --git a/src/services/MergeRequestNotes.ts b/src/services/MergeRequestNotes.ts index be2fe119..8a6599fb 100644 --- a/src/services/MergeRequestNotes.ts +++ b/src/services/MergeRequestNotes.ts @@ -1,4 +1,5 @@ import { ResourceNotes } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class MergeRequestNotes extends ResourceNotes { constructor(options: BaseServiceOptions) { diff --git a/src/services/MergeRequests.ts b/src/services/MergeRequests.ts index 6789b51b..f6fa3d20 100644 --- a/src/services/MergeRequests.ts +++ b/src/services/MergeRequests.ts @@ -1,4 +1,20 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { + AcceptMergeRequestOptions, + CreateMergeRequestOptions, + GroupId, + MergeRequestId, + ProjectId, + ShowMergeRequestOptions, + UpdateMergeRequestOptions, + UserId, +} from '.'; class MergeRequests extends BaseService { accept( diff --git a/src/services/Namespaces.ts b/src/services/Namespaces.ts index a592c7d8..587ede21 100644 --- a/src/services/Namespaces.ts +++ b/src/services/Namespaces.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, PaginatedRequestOptions, Sudo } from '../infrastructure'; +import { NamespaceId } from '.'; class Namespaces extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/NotificationSettings.ts b/src/services/NotificationSettings.ts index c69b45df..376cd55d 100644 --- a/src/services/NotificationSettings.ts +++ b/src/services/NotificationSettings.ts @@ -1,4 +1,10 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; +import { ProjectId, GroupId, NotificationSettingLevel } from '.'; class NotificationSettings extends BaseService { all({ diff --git a/src/services/PagesDomains.ts b/src/services/PagesDomains.ts index 211d389d..fbca03c8 100644 --- a/src/services/PagesDomains.ts +++ b/src/services/PagesDomains.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId } from '.'; class PagesDomains extends BaseService { all({ projectId, ...options }: { projectId?: ProjectId } & PaginatedRequestOptions = {}) { diff --git a/src/services/PipelineScheduleVariables.ts b/src/services/PipelineScheduleVariables.ts index 2f390720..ecd6d60e 100644 --- a/src/services/PipelineScheduleVariables.ts +++ b/src/services/PipelineScheduleVariables.ts @@ -1,4 +1,10 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; +import { ProjectId, PipelineScheduleId, KeyId } from '.'; class PipelineScheduleVariables extends BaseService { all( diff --git a/src/services/PipelineSchedules.ts b/src/services/PipelineSchedules.ts index 34522ced..a82c8be2 100644 --- a/src/services/PipelineSchedules.ts +++ b/src/services/PipelineSchedules.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, PipelineScheduleId } from '.'; class PipelineSchedules extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/Pipelines.ts b/src/services/Pipelines.ts index 19cf1cd2..7955c2fc 100644 --- a/src/services/Pipelines.ts +++ b/src/services/Pipelines.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, PipelineId, JobScope } from '.'; class Pipelines extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/ProjectAccessRequests.ts b/src/services/ProjectAccessRequests.ts index 18df65ab..769761c3 100644 --- a/src/services/ProjectAccessRequests.ts +++ b/src/services/ProjectAccessRequests.ts @@ -1,4 +1,5 @@ import { ResourceAccessRequests } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectAccessRequests extends ResourceAccessRequests { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectBadges.ts b/src/services/ProjectBadges.ts index 0072c598..d24ea99c 100644 --- a/src/services/ProjectBadges.ts +++ b/src/services/ProjectBadges.ts @@ -1,4 +1,5 @@ import { ResourceBadges } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectBadges extends ResourceBadges { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectCustomAttributes.ts b/src/services/ProjectCustomAttributes.ts index 92595244..4fc61b5e 100644 --- a/src/services/ProjectCustomAttributes.ts +++ b/src/services/ProjectCustomAttributes.ts @@ -1,4 +1,5 @@ import { ResourceCustomAttributes } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectCustomAttributes extends ResourceCustomAttributes { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectHooks.ts b/src/services/ProjectHooks.ts index 365f38ee..e37ae3db 100644 --- a/src/services/ProjectHooks.ts +++ b/src/services/ProjectHooks.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, HookId } from '.'; class ProjectHooks extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/ProjectImportExport.ts b/src/services/ProjectImportExport.ts index 8b75fe83..d9e8db76 100644 --- a/src/services/ProjectImportExport.ts +++ b/src/services/ProjectImportExport.ts @@ -1,5 +1,6 @@ import FormData from 'form-data'; -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo, BaseRequestOptions } from '../infrastructure'; +import { ProjectId } from '.'; class ProjectImportExport extends BaseService { download(projectId: ProjectId, options?: Sudo) { diff --git a/src/services/ProjectIssueBoards.ts b/src/services/ProjectIssueBoards.ts index 36b35e24..ea3de78f 100644 --- a/src/services/ProjectIssueBoards.ts +++ b/src/services/ProjectIssueBoards.ts @@ -1,4 +1,5 @@ import { ResourceIssueBoards } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectIssueBoards extends ResourceIssueBoards { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectMembers.ts b/src/services/ProjectMembers.ts index 31a6c2a5..26406c41 100644 --- a/src/services/ProjectMembers.ts +++ b/src/services/ProjectMembers.ts @@ -1,4 +1,5 @@ import { ResourceMembers } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectMembers extends ResourceMembers { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectMilestones.ts b/src/services/ProjectMilestones.ts index 83af3c0b..5201fd27 100644 --- a/src/services/ProjectMilestones.ts +++ b/src/services/ProjectMilestones.ts @@ -1,4 +1,5 @@ import { ResourceMilestones } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectMilestones extends ResourceMilestones { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectSnippetAwardEmojis.ts b/src/services/ProjectSnippetAwardEmojis.ts index ca1ccc18..14b9ae43 100644 --- a/src/services/ProjectSnippetAwardEmojis.ts +++ b/src/services/ProjectSnippetAwardEmojis.ts @@ -1,4 +1,5 @@ import { ResourceAwardEmojis } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectSnippetAwardEmojis extends ResourceAwardEmojis { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectSnippetDiscussions.ts b/src/services/ProjectSnippetDiscussions.ts index 282919b9..30b811a7 100644 --- a/src/services/ProjectSnippetDiscussions.ts +++ b/src/services/ProjectSnippetDiscussions.ts @@ -1,4 +1,5 @@ import { ResourceDiscussions } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectSnippetDiscussions extends ResourceDiscussions { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectSnippetNotes.ts b/src/services/ProjectSnippetNotes.ts index d6c56c39..0670a06b 100644 --- a/src/services/ProjectSnippetNotes.ts +++ b/src/services/ProjectSnippetNotes.ts @@ -1,4 +1,5 @@ import { ResourceNotes } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectSnippetNotes extends ResourceNotes { constructor(options: BaseServiceOptions) { diff --git a/src/services/ProjectSnippets.ts b/src/services/ProjectSnippets.ts index ff503747..64c02179 100644 --- a/src/services/ProjectSnippets.ts +++ b/src/services/ProjectSnippets.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, SnippetId, SnippetVisibility } from '.'; class ProjectSnippets extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/ProjectVariables.ts b/src/services/ProjectVariables.ts index 3b25c53e..18af95e0 100644 --- a/src/services/ProjectVariables.ts +++ b/src/services/ProjectVariables.ts @@ -1,4 +1,5 @@ import { ResourceVariables } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class ProjectVariables extends ResourceVariables { constructor(options: BaseServiceOptions) { diff --git a/src/services/Projects.ts b/src/services/Projects.ts index 8c9dc1f4..ec7df3d0 100644 --- a/src/services/Projects.ts +++ b/src/services/Projects.ts @@ -1,6 +1,13 @@ import FormData from 'form-data'; import randomstring from 'randomstring'; -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, UserId, EventOptions, GroupId, NamespaceId, ProjectUploadMetadata } from '.'; class Projects extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/ProtectedBranches.ts b/src/services/ProtectedBranches.ts index 41448c08..7eec4532 100644 --- a/src/services/ProtectedBranches.ts +++ b/src/services/ProtectedBranches.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId } from '.'; class ProtectedBranches extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/ProtectedTags.ts b/src/services/ProtectedTags.ts index 9564efa1..445ac6d5 100644 --- a/src/services/ProtectedTags.ts +++ b/src/services/ProtectedTags.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId } from '.'; class ProtectedTags extends BaseService { all(projectId: ProjectId, options: PaginatedRequestOptions) { diff --git a/src/services/PushRule.ts b/src/services/PushRule.ts index 8e13b0ca..380160ec 100644 --- a/src/services/PushRule.ts +++ b/src/services/PushRule.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, BaseRequestOptions, Sudo } from '../infrastructure'; +import { ProjectId } from '.'; class PushRule extends BaseService { create(projectId: ProjectId, options?: BaseRequestOptions) { diff --git a/src/services/ReleaseLinks.ts b/src/services/ReleaseLinks.ts index f62393e4..e38a8a3c 100644 --- a/src/services/ReleaseLinks.ts +++ b/src/services/ReleaseLinks.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, PaginatedRequestOptions, Sudo } from '../infrastructure'; +import { ProjectId } from '.'; class ReleaseLinks extends BaseService { all(projectId: ProjectId, tagName: string, options?: PaginatedRequestOptions) { diff --git a/src/services/Releases.ts b/src/services/Releases.ts index bdaf95c9..014b9a69 100644 --- a/src/services/Releases.ts +++ b/src/services/Releases.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId } from '.'; class Releases extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/Repositories.ts b/src/services/Repositories.ts index 1343deba..d053aa30 100644 --- a/src/services/Repositories.ts +++ b/src/services/Repositories.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo, BaseRequestOptions } from '../infrastructure'; +import { ProjectId } from '.'; class Repositories extends BaseService { compare(projectId: ProjectId, from: string, to: string, options?: Sudo) { diff --git a/src/services/RepositoryFiles.ts b/src/services/RepositoryFiles.ts index 52dacbe0..1aa33f70 100644 --- a/src/services/RepositoryFiles.ts +++ b/src/services/RepositoryFiles.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, BaseRequestOptions, Sudo } from '../infrastructure'; +import { ProjectId } from '.'; class RepositoryFiles extends BaseService { create( diff --git a/src/services/Runners.ts b/src/services/Runners.ts index bfac9ea9..4a23dddd 100644 --- a/src/services/Runners.ts +++ b/src/services/Runners.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, RunnerId } from '.'; class Runners extends BaseService { all({ projectId, ...options }: { projectId: ProjectId } & PaginatedRequestOptions) { diff --git a/src/services/Search.ts b/src/services/Search.ts index 54bc1d79..b2f056aa 100644 --- a/src/services/Search.ts +++ b/src/services/Search.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, BaseRequestOptions } from '../infrastructure'; +import { ProjectId, GroupId } from '.'; class Search extends BaseService { all( diff --git a/src/services/Services.ts b/src/services/Services.ts index fb2f27de..1e21b13f 100644 --- a/src/services/Services.ts +++ b/src/services/Services.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, BaseRequestOptions, Sudo } from '../infrastructure'; +import { ProjectId, SupportedService } from '.'; class Services extends BaseService { edit(projectId: ProjectId, serviceName: SupportedService, options?: BaseRequestOptions) { diff --git a/src/services/Snippets.ts b/src/services/Snippets.ts index a9d81944..83066b07 100644 --- a/src/services/Snippets.ts +++ b/src/services/Snippets.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { SnippetId, SnippetVisibility } from '.'; class Snippets extends BaseService { all({ public: p, ...options }: { public: boolean } & PaginatedRequestOptions) { diff --git a/src/services/SystemHooks.ts b/src/services/SystemHooks.ts index 80a22f6c..748ab3b2 100644 --- a/src/services/SystemHooks.ts +++ b/src/services/SystemHooks.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { HookId } from '.'; class SystemHooks extends BaseService { add(url: string, options?: BaseRequestOptions) { diff --git a/src/services/Tags.ts b/src/services/Tags.ts index c34cbc1a..1dd0c6cd 100644 --- a/src/services/Tags.ts +++ b/src/services/Tags.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId } from '.'; class Tags extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/Todos.ts b/src/services/Todos.ts index ca2c89e3..2165fd99 100644 --- a/src/services/Todos.ts +++ b/src/services/Todos.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, PaginatedRequestOptions, Sudo } from '../infrastructure'; +import { ProjectId, MergeRequestId, TodoId } from '.'; class Todos extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/Triggers.ts b/src/services/Triggers.ts index 30396e81..976533c3 100644 --- a/src/services/Triggers.ts +++ b/src/services/Triggers.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, TriggerId } from '.'; class Triggers extends BaseService { add(projectId: ProjectId, options?: BaseRequestOptions) { diff --git a/src/services/UserCustomAttributes.ts b/src/services/UserCustomAttributes.ts index 6bbdc7ff..d3d27d24 100644 --- a/src/services/UserCustomAttributes.ts +++ b/src/services/UserCustomAttributes.ts @@ -1,4 +1,5 @@ import { ResourceCustomAttributes } from '../templates'; +import { BaseServiceOptions } from '../infrastructure'; class UserCustomAttributes extends ResourceCustomAttributes { constructor(options: BaseServiceOptions) { diff --git a/src/services/UserEmails.ts b/src/services/UserEmails.ts index f2dfee0b..8398e7d4 100644 --- a/src/services/UserEmails.ts +++ b/src/services/UserEmails.ts @@ -1,4 +1,10 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; +import { UserId } from '.'; const url = userId => (userId ? `users/${encodeURIComponent(userId)}/emails` : 'user/emails'); diff --git a/src/services/UserGPGKeys.ts b/src/services/UserGPGKeys.ts index 18912237..cb233099 100644 --- a/src/services/UserGPGKeys.ts +++ b/src/services/UserGPGKeys.ts @@ -1,4 +1,10 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; +import { UserId } from '.'; const url = userId => (userId ? `users/${encodeURIComponent(userId)}/gpg_keys` : 'users/gpg_keys'); diff --git a/src/services/UserImpersonationTokens.ts b/src/services/UserImpersonationTokens.ts index bc18356d..e48e820a 100644 --- a/src/services/UserImpersonationTokens.ts +++ b/src/services/UserImpersonationTokens.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, PaginatedRequestOptions, Sudo } from '../infrastructure'; +import { UserId, ImpersonationTokenScope, ImpersonationTokenId } from '.'; class UserImpersonationTokens extends BaseService { all(userId: UserId, options?: PaginatedRequestOptions) { diff --git a/src/services/UserKeys.ts b/src/services/UserKeys.ts index f5065d56..41f9a9c8 100644 --- a/src/services/UserKeys.ts +++ b/src/services/UserKeys.ts @@ -1,4 +1,10 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, +} from '../infrastructure'; +import { UserId } from '.'; const url = userId => (userId ? `users/${encodeURIComponent(userId)}/keys` : 'user/keys'); diff --git a/src/services/Users.ts b/src/services/Users.ts index 8eb5d94c..01ee93a0 100644 --- a/src/services/Users.ts +++ b/src/services/Users.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { UserId, EventOptions } from '.'; class Users extends BaseService { all(options?: PaginatedRequestOptions) { diff --git a/src/services/Version.ts b/src/services/Version.ts index f592716b..e38d35d3 100644 --- a/src/services/Version.ts +++ b/src/services/Version.ts @@ -1,4 +1,4 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, Sudo } from '../infrastructure'; class Version extends BaseService { show(options?: Sudo) { diff --git a/src/services/Wikis.ts b/src/services/Wikis.ts index 00e0cdec..64caea38 100644 --- a/src/services/Wikis.ts +++ b/src/services/Wikis.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId } from '.'; class Wikis extends BaseService { all(projectId: ProjectId, options?: PaginatedRequestOptions) { diff --git a/src/services/index.ts b/src/services/index.ts index 43533f97..7ef810a0 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -91,3 +91,182 @@ export { default as Snippets } from './Snippets'; export { default as SystemHooks } from './SystemHooks'; export { default as Version } from './Version'; export { default as Wikis } from './Wikis'; + +export type AwardId = number; +export type BroadcastMessageId = number; +export type BadgeId = number; +export type BoardId = number; +export type CustomAttributeId = number; +export type DeploymentId = number; +export type DiscussionId = number; +export type EnvironmentId = number; +export type EpicId = number; +export type GeonodeId = number; +export type GroupId = string | number; +export type GroupProjectId = string | number; +export type HookId = number; +export type ImpersonationTokenId = number; +export type IssueId = number; +export type JobId = number; +export type LabelId = number; +export type KeyId = string; +export type NamespaceId = string | number; +export type MergeRequestId = number; +export type MilestoneId = number; +export type NoteId = number; +export type PipelineId = number; +export type PipelineScheduleId = number; +export type ProjectId = string | number; +export type RunnerId = number; +export type ResourceId = string | number; +export type SnippetId = number; +export type TodoId = number; +export type TriggerId = number; +export type VersionId = number; +export type UserId = number; + +// Access Requests +export type AccessLevel = 10 | 20 | 30 | 40 | 50; + +// Commits +export interface CommitAction { + /** The action to perform */ + action: 'create' | 'delete' | 'move' | 'update'; + /** Full path to the file. Ex. lib/class.rb */ + filePath: string; + /** Original full path to the file being moved.Ex.lib / class1.rb */ + previousPath?: string; + /** File content, required for all except delete. Optional for move */ + content?: string; + /** text or base64. text is default. */ + encoding?: string; + /** Last known file commit id. Will be only considered in update, move and delete actions. */ + lastCommitId?: string; +} + +// Events +export interface EventOptions { + action?: + | 'created' + | 'updated' + | 'closed' + | 'reopened' + | 'pushed' + | 'commented' + | 'merged' + | 'joined' + | 'left' + | 'destroyed' + | 'expired'; + targetType?: 'issue' | 'milestone' | 'merge_request' | 'note' | 'project' | 'snippet' | 'user'; +} + +// Jobs +export type JobScope = + | 'created' + | 'pending' + | 'running' + | 'failed' + | 'success' + | 'canceled' + | 'skipped' + | 'manual'; + +// Merge Requests +export interface AcceptMergeRequestOptions { + merge_commit_message?: string; + squash_commit_message?: string; + squash?: boolean; + should_remove_source_branch?: boolean; + merge_when_pipeline_succeeds?: boolean; + sha?: string; +} + +export interface ShowMergeRequestOptions { + render_html?: boolean; + include_diverged_commits_count?: true; + include_rebase_in_progress?: boolean; +} + +export interface CreateMergeRequestOptions { + assignee_id?: number; + description?: string; + target_project_id?: number; + labels?: string; + milestone_id?: number; + remove_source_branch?: boolean; + allow_collaboration?: boolean; + allow_maintainer_to_push?: boolean; + squash?: boolean; +} + +export interface UpdateMergeRequestOptions { + target_branch?: number; + title?: string; + assignee_id?: number; + milestone_id?: number; + labels?: string; + description?: string; + state_event?: string; + remove_source_branch?: boolean; + squash?: boolean; + discussion_locked?: boolean; + allow_collaboration?: boolean; + allow_maintainer_to_push?: boolean; +} + +// Notification Settings Levels +export type NotificationSettingLevel = + | 'disabled' + | 'participating' + | 'watch' + | 'global' + | 'mention' + | 'custom'; + +// Services +export type SupportedService = + | 'asana' + | 'assembla' + | 'bamboo' + | 'bugzilla' + | 'buildkite' + | 'campfire' + | 'custom-issue-tracker' + | 'drone-ci' + | 'emails-on-push' + | 'external-wiki' + | 'flowdock' + | 'hangouts_chat' + | 'hipchat' + | 'irker' + | 'jira' + | 'kubernetes' + | 'slack-slash-commands' + | 'slack' + | 'mattermost-slash-commands' + | 'packagist' + | 'pipelines-email' + | 'pivotaltracker' + | 'prometheus' + | 'pushover' + | 'redmine' + | 'microsoft-teams' + | 'mattermost' + | 'mattermost-slash-commands' + | 'teamcity' + | 'jenkins' + | 'jenkins-deprecated' + | 'mock-ci'; + +// Snippets +export type SnippetVisibility = 'private' | 'public' | 'internal'; + +// User Impersonation Tokens +export type ImpersonationTokenScope = 'api' | 'read_user'; + +// Project upload metadata +export interface ProjectUploadMetadata { + filename?: string; + contentType?: string; +} diff --git a/src/templates/ResourceAccessRequests.ts b/src/templates/ResourceAccessRequests.ts index 0096e440..d40c4cf3 100644 --- a/src/templates/ResourceAccessRequests.ts +++ b/src/templates/ResourceAccessRequests.ts @@ -1,4 +1,5 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { BaseService, RequestHelper, BaseServiceOptions, Sudo } from '../infrastructure'; +import { ResourceId, UserId, AccessLevel } from '..'; class ResourceAccessRequests extends BaseService { constructor(resourceType: string, options: BaseServiceOptions) { diff --git a/src/templates/ResourceAwardEmojis.ts b/src/templates/ResourceAwardEmojis.ts index c15b457f..c2b96bb8 100644 --- a/src/templates/ResourceAwardEmojis.ts +++ b/src/templates/ResourceAwardEmojis.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseService, + BaseServiceOptions, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ProjectId, ResourceId, NoteId, AwardId } from '..'; function url(projectId, resourceType, resourceId, awardId, noteId) { const [pId, rId] = [projectId, resourceId].map(encodeURIComponent); diff --git a/src/templates/ResourceBadges.ts b/src/templates/ResourceBadges.ts index 430c5890..9d1c333d 100644 --- a/src/templates/ResourceBadges.ts +++ b/src/templates/ResourceBadges.ts @@ -1,4 +1,12 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + BaseServiceOptions, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ResourceId, BadgeId } from '..'; class ResourceBadges extends BaseService { constructor(resourceType: string, options: BaseServiceOptions) { diff --git a/src/templates/ResourceCustomAttributes.ts b/src/templates/ResourceCustomAttributes.ts index 0090087c..ce88167a 100644 --- a/src/templates/ResourceCustomAttributes.ts +++ b/src/templates/ResourceCustomAttributes.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseService, + BaseServiceOptions, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ResourceId, CustomAttributeId } from '..'; class ResourceCustomAttributes extends BaseService { constructor(resourceType: string, options: BaseServiceOptions) { diff --git a/src/templates/ResourceDiscussions.ts b/src/templates/ResourceDiscussions.ts index c2382d0e..26d3b7f1 100644 --- a/src/templates/ResourceDiscussions.ts +++ b/src/templates/ResourceDiscussions.ts @@ -1,4 +1,12 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + BaseServiceOptions, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ResourceId, DiscussionId, NoteId } from '..'; class ResourceDiscussions extends BaseService { protected resource2Type: string; diff --git a/src/templates/ResourceIssueBoards.ts b/src/templates/ResourceIssueBoards.ts index 79152d4c..564c707b 100644 --- a/src/templates/ResourceIssueBoards.ts +++ b/src/templates/ResourceIssueBoards.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ResourceId, LabelId } from '..'; class ResourceIssueBoards extends BaseService { constructor(resourceType: string, options) { diff --git a/src/templates/ResourceMembers.ts b/src/templates/ResourceMembers.ts index 561eb4eb..99835648 100644 --- a/src/templates/ResourceMembers.ts +++ b/src/templates/ResourceMembers.ts @@ -1,4 +1,12 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseRequestOptions, + BaseService, + BaseServiceOptions, + PaginatedRequestOptions, + RequestHelper, + Sudo, +} from '../infrastructure'; +import { ResourceId, UserId, AccessLevel } from '..'; class ResourceMembers extends BaseService { constructor(resourceType: string, options: BaseServiceOptions) { diff --git a/src/templates/ResourceMilestones.ts b/src/templates/ResourceMilestones.ts index d4ec110f..61eb86e5 100644 --- a/src/templates/ResourceMilestones.ts +++ b/src/templates/ResourceMilestones.ts @@ -1,4 +1,12 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseService, + RequestHelper, + BaseServiceOptions, + PaginatedRequestOptions, + BaseRequestOptions, + Sudo, +} from '../infrastructure'; +import { ResourceId, MilestoneId } from '..'; class ResourceMilestones extends BaseService { constructor(resourceType: string, options: BaseServiceOptions) { diff --git a/src/templates/ResourceNotes.ts b/src/templates/ResourceNotes.ts index 7ed80857..6b3d28ce 100644 --- a/src/templates/ResourceNotes.ts +++ b/src/templates/ResourceNotes.ts @@ -1,4 +1,12 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseService, + RequestHelper, + BaseServiceOptions, + PaginatedRequestOptions, + BaseRequestOptions, + Sudo, +} from '../infrastructure'; +import { ResourceId, NoteId } from '..'; class ResourceNotes extends BaseService { protected resource2Type: string; diff --git a/src/templates/ResourceTemplates.ts b/src/templates/ResourceTemplates.ts index b5d78510..82697e00 100644 --- a/src/templates/ResourceTemplates.ts +++ b/src/templates/ResourceTemplates.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseService, + RequestHelper, + BaseServiceOptions, + PaginatedRequestOptions, + Sudo, +} from '../infrastructure'; +import { ResourceId } from '..'; class ResourceTemplates extends BaseService { constructor(resourceType: string, options: BaseServiceOptions) { diff --git a/src/templates/ResourceVariables.ts b/src/templates/ResourceVariables.ts index e58b97c8..675866cb 100644 --- a/src/templates/ResourceVariables.ts +++ b/src/templates/ResourceVariables.ts @@ -1,4 +1,11 @@ -import { BaseService, RequestHelper } from '../infrastructure'; +import { + BaseService, + RequestHelper, + BaseServiceOptions, + PaginatedRequestOptions, + BaseRequestOptions, +} from '../infrastructure'; +import { ResourceId, KeyId } from '..'; class ResourceVariables extends BaseService { constructor(resourceType: string, options: BaseServiceOptions) { diff --git a/tsconfig.json b/tsconfig.json index aa234ec9..b3354f9a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -29,5 +29,5 @@ "noUnusedParameters": true, "noImplicitReturns": true }, - "include": ["typings/*", "src/**/*"] + "include": ["src/**/*"] } diff --git a/typings/globals.d.ts b/typings/globals.d.ts deleted file mode 100644 index 099407b8..00000000 --- a/typings/globals.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare function encodeURIComponent(uriComponent: string | number | boolean): string; - -declare interface Global { - URL: typeof URL, - URLSearchParams: typeof URLSearchParams, - encodeURIComponent: typeof encodeURIComponent -} diff --git a/typings/index.d.ts b/typings/index.d.ts deleted file mode 100644 index ec22b05f..00000000 --- a/typings/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -/// -/// \ No newline at end of file diff --git a/typings/infrastructure.d.ts b/typings/infrastructure.d.ts deleted file mode 100644 index a32f5bc5..00000000 --- a/typings/infrastructure.d.ts +++ /dev/null @@ -1,71 +0,0 @@ -// Bundler -interface Constructor { - new (...args: any): any; -} - -type Mapper = { - [name in P]: InstanceType -}; - -interface Bundle { - new (options?: any): Mapper; -} - -// Base Service -interface Sudo { - sudo?: string | number; -} - -interface Requester { - get: Function; - post: Function; - put: Function; - delete: Function; - stream?: Function; -} - -interface BaseServiceOptions extends Sudo { - oauthToken?: string; - token?: string; - jobToken?: string; - host?: string; - url?: string; - version?: string; - rejectUnauthorized?: boolean; - camelize?: boolean; - requester?: Requester; - requestTimeout?: number; -} - -// RequestHelper -interface PaginationOptions { - total: number; - next: number | null; - current: number; - previous: number | null; - perPage: number; - totalPages: number; -} - -interface DefaultRequestOptions extends Sudo { - body?: object | FormData; - query?: object; -} - -interface BaseRequestOptions extends Sudo { - [key: string]: any; -} - -interface PaginatedRequestOptions extends BaseRequestOptions { - showPagination?: boolean; - maxPages?: number; - page?: number; - perPage?: number; -} - -type PaginationResponse = { data: object[], pagination: PaginationOptions } -type GetResponse = PaginationResponse | object | object[]; -type PostResponse = object; -type PutResponse = object; -type DelResponse = object; - diff --git a/typings/services.d.ts b/typings/services.d.ts deleted file mode 100644 index 83be79d2..00000000 --- a/typings/services.d.ts +++ /dev/null @@ -1,178 +0,0 @@ -type AwardId = number; -type BroadcastMessageId = number; -type BadgeId = number; -type BoardId = number; -type CustomAttributeId = number; -type DeploymentId = number; -type DiscussionId = number; -type EnvironmentId = number; -type EpicId = number; -type GeonodeId = number; -type GroupId = string | number; -type GroupProjectId = string | number; -type HookId = number; -type ImpersonationTokenId = number; -type IssueId = number; -type JobId = number; -type LabelId = number; -type KeyId = string; -type NamespaceId = string | number; -type MergeRequestId = number; -type MilestoneId = number; -type NoteId = number; -type PipelineId = number; -type PipelineScheduleId = number; -type ProjectId = string | number; -type RunnerId = number; -type ResourceId = string | number; -type SnippetId = number; -type TodoId = number; -type TriggerId = number; -type VersionId = number; -type UserId = number; - -// Access Requests -type AccessLevel = 10 | 20 | 30 | 40 | 50; - -// Commits -interface CommitAction { - /** The action to perform */ - action: 'create' | 'delete' | 'move' | 'update'; - /** Full path to the file. Ex. lib/class.rb */ - filePath: string; - /** Original full path to the file being moved.Ex.lib / class1.rb */ - previousPath?: string; - /** File content, required for all except delete. Optional for move */ - content?: string; - /** text or base64. text is default. */ - encoding?: string; - /** Last known file commit id. Will be only considered in update, move and delete actions. */ - lastCommitId?: string; -} - -// Events -interface EventOptions { - action?: - | 'created' - | 'updated' - | 'closed' - | 'reopened' - | 'pushed' - | 'commented' - | 'merged' - | 'joined' - | 'left' - | 'destroyed' - | 'expired'; - targetType?: 'issue' | 'milestone' | 'merge_request' | 'note' | 'project' | 'snippet' | 'user'; -} - -// Jobs -type JobScope = - | 'created' - | 'pending' - | 'running' - | 'failed' - | 'success' - | 'canceled' - | 'skipped' - | 'manual'; - -// Merge Requests -interface AcceptMergeRequestOptions { - merge_commit_message?: string; - squash_commit_message?: string; - squash?: boolean; - should_remove_source_branch?: boolean; - merge_when_pipeline_succeeds?: boolean; - sha?: string; -} - -interface ShowMergeRequestOptions { - render_html?: boolean; - include_diverged_commits_count?: true; - include_rebase_in_progress?: boolean; -} - -interface CreateMergeRequestOptions { - assignee_id?: number; - description?: string; - target_project_id?: number; - labels?: string; - milestone_id?: number; - remove_source_branch?: boolean; - allow_collaboration?: boolean; - allow_maintainer_to_push?: boolean; - squash?: boolean; -} - -interface UpdateMergeRequestOptions { - target_branch?: number; - title?: string; - assignee_id?: number; - milestone_id?: number; - labels?: string; - description?: string; - state_event?: string; - remove_source_branch?: boolean; - squash?: boolean; - discussion_locked?: boolean; - allow_collaboration?: boolean; - allow_maintainer_to_push?: boolean; -} - -// Notification Settings Levels -type NotificationSettingLevel = - | 'disabled' - | 'participating' - | 'watch' - | 'global' - | 'mention' - | 'custom'; - -// Services -type SupportedService = - | 'asana' - | 'assembla' - | 'bamboo' - | 'bugzilla' - | 'buildkite' - | 'campfire' - | 'custom-issue-tracker' - | 'drone-ci' - | 'emails-on-push' - | 'external-wiki' - | 'flowdock' - | 'hangouts_chat' - | 'hipchat' - | 'irker' - | 'jira' - | 'kubernetes' - | 'slack-slash-commands' - | 'slack' - | 'mattermost-slash-commands' - | 'packagist' - | 'pipelines-email' - | 'pivotaltracker' - | 'prometheus' - | 'pushover' - | 'redmine' - | 'microsoft-teams' - | 'mattermost' - | 'mattermost-slash-commands' - | 'teamcity' - | 'jenkins' - | 'jenkins-deprecated' - | 'mock-ci'; - -// Snippets -type SnippetVisibility = 'private' | 'public' | 'internal'; - -// User Impersonation Tokens -type ImpersonationTokenScope = 'api' | 'read_user'; - -// Project upload metadata -interface ProjectUploadMetadata { - filename?: string; - contentType?: string; -}