Skip to content

Commit

Permalink
Merge pull request #6 from DopplerHQ/liblab-codegen-1694673402947
Browse files Browse the repository at this point in the history
LibLab SDK update
  • Loading branch information
Piccirello authored Sep 14, 2023
2 parents abd4d65 + 30aecf0 commit b9dc08e
Show file tree
Hide file tree
Showing 160 changed files with 5,074 additions and 953 deletions.
12 changes: 12 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
{
"name": "TypeScript SDK",
"image": "mcr.microsoft.com/devcontainers/typescript-node:1-20-bullseye",
"postCreateCommand": "cd examples && npm run setup",
"customizations": {
"codespaces":{
"openFiles": ["examples/src/index.ts", "README.md"]
}
}
}
2 changes: 1 addition & 1 deletion examples/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { DopplerSDK } from '@dopplerhq/node-sdk';

const DOPPLERSDK_ACCESS_TOKEN = '';
const sdk = new DopplerSDK(DOPPLERSDK_ACCESS_TOKEN);
const sdk = new DopplerSDK({ accessToken: DOPPLERSDK_ACCESS_TOKEN });

(async () => {
const result = await sdk.projects.list();
Expand Down
292 changes: 161 additions & 131 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
},
"name": "@dopplerhq/node-sdk",
"description": "DopplerSDK",
"version": "1.1.1",
"version": "1.1.2",
"author": "DopplerSDK",
"dependencies": {},
"type": "module"
Expand Down
46 changes: 46 additions & 0 deletions src/BaseService.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { Environment } from './http/Environment';
import HTTPLibrary from './http/HTTPLibrary';
import { Headers } from './http/HTTPClient';

export default class BaseService {
public baseUrl: string = Environment.DEFAULT;

public httpClient = new HTTPLibrary();

private accessToken: string = '';

private accessTokenPrefix: string = 'Bearer';

setAccessToken(accessToken: string): void {
this.accessToken = accessToken;
}

getAuthorizationHeader(): Headers {
const accessTokenAuth = { Authorization: `${this.accessTokenPrefix} ${this.accessToken}` };

return { ...accessTokenAuth };
}

setBaseUrl(url: string): void {
this.baseUrl = url;
}

constructor(accessToken: string = '') {
this.setAccessToken(accessToken);
}

static patternMatching(value: string, pattern: string, variableName: string): string {
if (!value) {
throw new Error(`${variableName} cannot be null or undefined`);
}
if (!value.match(new RegExp(pattern))) {
throw new Error(`Invalid value for ${variableName}: must match ${pattern}`);
}
return value;
}

static urlEncode = (input: { [key: string]: any }): string =>
Object.keys(input)
.map((key) => `${key}=${encodeURIComponent(input[key])}`)
.join('&');
}
2 changes: 1 addition & 1 deletion src/http/HTTPLibrary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interface Response {

export default class HTTPLibrary implements HTTPClient {
readonly userAgentHeader: Headers = {
'User-Agent': 'liblab/0.1.16 DopplerSDK/1.1.1 typescript/5.1.6',
'User-Agent': 'liblab/0.1.17 DopplerSDK/1.1.2 typescript/5.2.2',
};

readonly retryAttempts: number = 3;
Expand Down
82 changes: 60 additions & 22 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,45 @@
import ProjectsService from './services/Projects';
import EnvironmentsService from './services/Environments';
import ConfigsService from './services/Configs';
import SecretsService from './services/Secrets';
import ConfigLogsService from './services/ConfigLogs';
import V3Service from './services/V3';
import ActivityLogsService from './services/ActivityLogs';
import ServiceTokensService from './services/ServiceTokens';
import DynamicSecretsService from './services/DynamicSecrets';
import IntegrationsService from './services/Integrations';
import SyncsService from './services/Syncs';
import TrustedIpsService from './services/TrustedIps';
import WorkplaceRolesService from './services/WorkplaceRoles';
import ProjectRolesService from './services/ProjectRoles';
import ProjectMembersService from './services/ProjectMembers';
import InvitesService from './services/Invites';
import ServiceAccountsService from './services/ServiceAccounts';
import GroupsService from './services/Groups';
import { ProjectsService } from './services/projects/Projects';
import { EnvironmentsService } from './services/environments/Environments';
import { ConfigsService } from './services/configs/Configs';
import { SecretsService } from './services/secrets/Secrets';
import { ConfigLogsService } from './services/configLogs/ConfigLogs';
import { V3Service } from './services/v3/V3';
import { ActivityLogsService } from './services/activityLogs/ActivityLogs';
import { ServiceTokensService } from './services/serviceTokens/ServiceTokens';
import { DynamicSecretsService } from './services/dynamicSecrets/DynamicSecrets';
import { IntegrationsService } from './services/integrations/Integrations';
import { SyncsService } from './services/syncs/Syncs';
import { WorkplaceRolesService } from './services/workplaceRoles/WorkplaceRoles';
import { ProjectRolesService } from './services/projectRoles/ProjectRoles';
import { ProjectMembersService } from './services/projectMembers/ProjectMembers';
import { InvitesService } from './services/invites/Invites';
import { ServiceAccountsService } from './services/serviceAccounts/ServiceAccounts';
import { GroupsService } from './services/groups/Groups';

export * from './models';

export * as SecretsModels from './services/secrets';
export * as ProjectMembersModels from './services/projectMembers';
export * as GroupsModels from './services/groups';
export * as ProjectsModels from './services/projects';
export * as EnvironmentsModels from './services/environments';
export * as ConfigsModels from './services/configs';
export * as ServiceTokensModels from './services/serviceTokens';
export * as ConfigLogsModels from './services/configLogs';
export * as ActivityLogsModels from './services/activityLogs';
export * as DynamicSecretsModels from './services/dynamicSecrets';
export * as IntegrationsModels from './services/integrations';
export * as SyncsModels from './services/syncs';
export * as V3Models from './services/v3';
export * as WorkplaceRolesModels from './services/workplaceRoles';
export * as ProjectRolesModels from './services/projectRoles';
export * as InvitesModels from './services/invites';
export * as ServiceAccountsModels from './services/serviceAccounts';

type Config = {
accessToken?: string;
};

export class DopplerSDK {
public projects: ProjectsService;
public environments: EnvironmentsService;
Expand All @@ -31,15 +52,14 @@ export class DopplerSDK {
public dynamicSecrets: DynamicSecretsService;
public integrations: IntegrationsService;
public syncs: SyncsService;
public trustedIps: TrustedIpsService;
public workplaceRoles: WorkplaceRolesService;
public projectRoles: ProjectRolesService;
public projectMembers: ProjectMembersService;
public invites: InvitesService;
public serviceAccounts: ServiceAccountsService;
public groups: GroupsService;

constructor(accessToken: string = '') {
constructor({ accessToken = '' }: Config) {
this.projects = new ProjectsService(accessToken);
this.environments = new EnvironmentsService(accessToken);
this.configs = new ConfigsService(accessToken);
Expand All @@ -51,7 +71,6 @@ export class DopplerSDK {
this.dynamicSecrets = new DynamicSecretsService(accessToken);
this.integrations = new IntegrationsService(accessToken);
this.syncs = new SyncsService(accessToken);
this.trustedIps = new TrustedIpsService(accessToken);
this.workplaceRoles = new WorkplaceRolesService(accessToken);
this.projectRoles = new ProjectRolesService(accessToken);
this.projectMembers = new ProjectMembersService(accessToken);
Expand All @@ -60,6 +79,26 @@ export class DopplerSDK {
this.groups = new GroupsService(accessToken);
}

setBaseUrl(url: string): void {
this.projects.setBaseUrl(url);
this.environments.setBaseUrl(url);
this.configs.setBaseUrl(url);
this.secrets.setBaseUrl(url);
this.configLogs.setBaseUrl(url);
this.v3.setBaseUrl(url);
this.activityLogs.setBaseUrl(url);
this.serviceTokens.setBaseUrl(url);
this.dynamicSecrets.setBaseUrl(url);
this.integrations.setBaseUrl(url);
this.syncs.setBaseUrl(url);
this.workplaceRoles.setBaseUrl(url);
this.projectRoles.setBaseUrl(url);
this.projectMembers.setBaseUrl(url);
this.invites.setBaseUrl(url);
this.serviceAccounts.setBaseUrl(url);
this.groups.setBaseUrl(url);
}

setAccessToken(accessToken: string) {
this.projects.setAccessToken(accessToken);
this.environments.setAccessToken(accessToken);
Expand All @@ -72,7 +111,6 @@ export class DopplerSDK {
this.dynamicSecrets.setAccessToken(accessToken);
this.integrations.setAccessToken(accessToken);
this.syncs.setAccessToken(accessToken);
this.trustedIps.setAccessToken(accessToken);
this.workplaceRoles.setAccessToken(accessToken);
this.projectRoles.setAccessToken(accessToken);
this.projectMembers.setAccessToken(accessToken);
Expand Down
98 changes: 98 additions & 0 deletions src/models.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
export type { Format } from './services/secrets/models/Format';
export type { NameTransformer } from './services/secrets/models/NameTransformer';
export type { Type } from './services/projectMembers/models/Type';
export type { GroupsType } from './services/groups/models/GroupsType';
export type { GetResponse } from './services/projects/models/GetResponse';
export type { UpdateResponse } from './services/projects/models/UpdateResponse';
export type { ListResponse } from './services/projects/models/ListResponse';
export type { CreateResponse } from './services/projects/models/CreateResponse';
export type { EnvironmentsListResponse } from './services/environments/models/EnvironmentsListResponse';
export type { EnvironmentsCreateResponse } from './services/environments/models/EnvironmentsCreateResponse';
export type { ConfigsListResponse } from './services/configs/models/ConfigsListResponse';
export type { ConfigsCreateResponse } from './services/configs/models/ConfigsCreateResponse';
export type { ConfigsGetResponse } from './services/configs/models/ConfigsGetResponse';
export type { ConfigsUpdateResponse } from './services/configs/models/ConfigsUpdateResponse';
export type { DeleteResponse } from './services/common/DeleteResponse';
export type { EnvironmentsGetResponse } from './services/environments/models/EnvironmentsGetResponse';
export type { RenameResponse } from './services/environments/models/RenameResponse';
export type { SecretsListResponse } from './services/secrets/models/SecretsListResponse';
export type { SecretsUpdateResponse } from './services/secrets/models/SecretsUpdateResponse';
export type { ConfigLogsListResponse } from './services/configLogs/models/ConfigLogsListResponse';
export type { ConfigLogsGetResponse } from './services/configLogs/models/ConfigLogsGetResponse';
export type { ActivityLogsListResponse } from './services/activityLogs/models/ActivityLogsListResponse';
export type { RetrieveResponse } from './services/activityLogs/models/RetrieveResponse';
export type { SecretsGetResponse } from './services/secrets/models/SecretsGetResponse';
export type { RollbackResponse } from './services/configLogs/models/RollbackResponse';
export type { ServiceTokensListResponse } from './services/serviceTokens/models/ServiceTokensListResponse';
export type { ServiceTokensCreateResponse } from './services/serviceTokens/models/ServiceTokensCreateResponse';
export type { CloneResponse } from './services/configs/models/CloneResponse';
export type { LockResponse } from './services/configs/models/LockResponse';
export type { UnlockResponse } from './services/configs/models/UnlockResponse';
export type { DownloadResponse } from './services/secrets/models/DownloadResponse';
export type { IssueLeaseResponse } from './services/dynamicSecrets/models/IssueLeaseResponse';
export type { RevokeLeaseResponse } from './services/dynamicSecrets/models/RevokeLeaseResponse';
export type { NamesResponse } from './services/secrets/models/NamesResponse';
export type { UpdateNoteResponse } from './services/secrets/models/UpdateNoteResponse';
export type { IntegrationsListResponse } from './services/integrations/models/IntegrationsListResponse';
export type { IntegrationsCreateResponse } from './services/integrations/models/IntegrationsCreateResponse';
export type { IntegrationsGetResponse } from './services/integrations/models/IntegrationsGetResponse';
export type { IntegrationsUpdateResponse } from './services/integrations/models/IntegrationsUpdateResponse';
export type { IntegrationsDeleteResponse } from './services/integrations/models/IntegrationsDeleteResponse';
export type { SyncsCreateResponse } from './services/syncs/models/SyncsCreateResponse';
export type { SyncsGetResponse } from './services/syncs/models/SyncsGetResponse';
export type { SyncsDeleteResponse } from './services/syncs/models/SyncsDeleteResponse';
export type { MeResponse } from './services/v3/models/MeResponse';
export type { ListTrustedIpsResponse } from './services/configs/models/ListTrustedIpsResponse';
export type { AddTrustedIpResponse } from './services/configs/models/AddTrustedIpResponse';
export type { WorkplaceRolesListResponse } from './services/workplaceRoles/models/WorkplaceRolesListResponse';
export type { WorkplaceRolesCreateResponse } from './services/workplaceRoles/models/WorkplaceRolesCreateResponse';
export type { ListPermissionsResponse } from './services/workplaceRoles/models/ListPermissionsResponse';
export type { WorkplaceRolesGetResponse } from './services/workplaceRoles/models/WorkplaceRolesGetResponse';
export type { WorkplaceRolesUpdateResponse } from './services/workplaceRoles/models/WorkplaceRolesUpdateResponse';
export type { ProjectRolesListResponse } from './services/projectRoles/models/ProjectRolesListResponse';
export type { ProjectRolesCreateResponse } from './services/projectRoles/models/ProjectRolesCreateResponse';
export type { ProjectRolesGetResponse } from './services/projectRoles/models/ProjectRolesGetResponse';
export type { ProjectRolesUpdateResponse } from './services/projectRoles/models/ProjectRolesUpdateResponse';
export type { ProjectRolesListPermissionsResponse } from './services/projectRoles/models/ProjectRolesListPermissionsResponse';
export type { ProjectMembersListResponse } from './services/projectMembers/models/ProjectMembersListResponse';
export type { AddResponse } from './services/projectMembers/models/AddResponse';
export type { ProjectMembersGetResponse } from './services/projectMembers/models/ProjectMembersGetResponse';
export type { ProjectMembersUpdateResponse } from './services/projectMembers/models/ProjectMembersUpdateResponse';
export type { InvitesListResponse } from './services/invites/models/InvitesListResponse';
export type { ServiceAccountsListResponse } from './services/serviceAccounts/models/ServiceAccountsListResponse';
export type { ServiceAccountsCreateResponse } from './services/serviceAccounts/models/ServiceAccountsCreateResponse';
export type { ServiceAccountsGetResponse } from './services/serviceAccounts/models/ServiceAccountsGetResponse';
export type { ServiceAccountsUpdateResponse } from './services/serviceAccounts/models/ServiceAccountsUpdateResponse';
export type { GroupsListResponse } from './services/groups/models/GroupsListResponse';
export type { GroupsCreateResponse } from './services/groups/models/GroupsCreateResponse';
export type { GroupsGetResponse } from './services/groups/models/GroupsGetResponse';
export type { GroupsUpdateResponse } from './services/groups/models/GroupsUpdateResponse';
export type { UpdateRequest } from './services/projects/models/UpdateRequest';
export type { DeleteRequest } from './services/projects/models/DeleteRequest';
export type { CreateRequest } from './services/projects/models/CreateRequest';
export type { EnvironmentsCreateRequest } from './services/environments/models/EnvironmentsCreateRequest';
export type { ConfigsCreateRequest } from './services/configs/models/ConfigsCreateRequest';
export type { ConfigsUpdateRequest } from './services/configs/models/ConfigsUpdateRequest';
export type { ConfigsDeleteRequest } from './services/configs/models/ConfigsDeleteRequest';
export type { RenameRequest } from './services/environments/models/RenameRequest';
export type { SecretsUpdateRequest } from './services/secrets/models/SecretsUpdateRequest';
export type { ServiceTokensCreateRequest } from './services/serviceTokens/models/ServiceTokensCreateRequest';
export type { ServiceTokensDeleteRequest } from './services/serviceTokens/models/ServiceTokensDeleteRequest';
export type { CloneRequest } from './services/configs/models/CloneRequest';
export type { LockRequest } from './services/configs/models/LockRequest';
export type { UnlockRequest } from './services/configs/models/UnlockRequest';
export type { IssueLeaseRequest } from './services/dynamicSecrets/models/IssueLeaseRequest';
export type { RevokeLeaseRequest } from './services/dynamicSecrets/models/RevokeLeaseRequest';
export type { UpdateNoteRequest } from './services/secrets/models/UpdateNoteRequest';
export type { IntegrationsCreateRequest } from './services/integrations/models/IntegrationsCreateRequest';
export type { IntegrationsUpdateRequest } from './services/integrations/models/IntegrationsUpdateRequest';
export type { SyncsCreateRequest } from './services/syncs/models/SyncsCreateRequest';
export type { AddTrustedIpRequest } from './services/configs/models/AddTrustedIpRequest';
export type { DeleteTrustedIpRequest } from './services/configs/models/DeleteTrustedIpRequest';
export type { AddRequest } from './services/projectMembers/models/AddRequest';
export type { ProjectMembersUpdateRequest } from './services/projectMembers/models/ProjectMembersUpdateRequest';
export type { ServiceAccountsCreateRequest } from './services/serviceAccounts/models/ServiceAccountsCreateRequest';
export type { ServiceAccountsUpdateRequest } from './services/serviceAccounts/models/ServiceAccountsUpdateRequest';
export type { GroupsCreateRequest } from './services/groups/models/GroupsCreateRequest';
export type { GroupsUpdateRequest } from './services/groups/models/GroupsUpdateRequest';
export type { AddMemberRequest } from './services/groups/models/AddMemberRequest';
Loading

0 comments on commit b9dc08e

Please sign in to comment.