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;
-}