UNPKG

@smapiot/piral-cloud-browser

Version:

Piral Cloud: Browser-usable API Client for the Piral Feed Service.

1,304 lines (1,146 loc) 39.7 kB
declare module "@smapiot/piral-cloud-browser" { /** * Creates a new service client for use in browser-based applications. * @param options The options for creating the client. * @returns The created service client. */ export function createServiceClient(options: CreateServiceClientOptions): FeedServiceApiClient; /** * The options for creating a new service client. */ export type CreateServiceClientOptions = CreateServiceClientBaseOptions & CreateServiceClientApiKeyOptions; export class FeedServiceApiClient { private _listeners: Record<string, Array<(ev: any) => void>>; constructor(private http: FetchClient, public host?: string); on<TEventName extends EventNames>(name: TEventName, handler: (ev: EventDefinitions[TEventName]) => void): void; off<TEventName extends EventNames>(name: TEventName, handler: (ev: EventDefinitions[TEventName]) => void): void; once<TEventName extends EventNames>(name: TEventName, handler: (ev: EventDefinitions[TEventName]) => void): void; private emit<TEventName extends EventNames>(name: TEventName, ev: EventDefinitions[TEventName]): void; getUrl(path: string): string; getEvents(): string; doAny<T>(path: string, init?: RequestInit): Promise<T>; doGet<T>(path: string, init?: RequestInit): Promise<T>; doPost<T>(path: string, content: any, init?: RequestInit): Promise<T>; doPut<T>(path: string, content: any, init?: RequestInit): Promise<T>; doDelete<T>(path: string, init?: RequestInit): Promise<T>; getPilets(ac?: AbortController): Promise<Array<PiletMetadataDTO>>; doQueryFeeds(ac?: AbortController): Promise<FeedsDTO>; doQueryFeed(feed: string, ac?: AbortController): Promise<FullFeedDTO>; doQueryValidEnvSourceTags(feed: string, eid?: string, offset?: number, count?: number, ac?: AbortController): Promise<ValidSourceTags>; doQueryEnvironments(feed: string, ac?: AbortController): Promise<EnvironmentsDTO>; doQueryEnvironment(feed: string, eid: string, ac?: AbortController): Promise<EnvironmentDTO>; doAddEnvironment(feed: string, content: EnvironmentCreateDetails, ac?: AbortController): Promise<unknown>; doUpdateEnvironment(feed: string, eid: string, content: EnvironmentUpdateDetails, ac?: AbortController): Promise<unknown>; doDeleteEnvironment(feed: string, eid: string, ac?: AbortController): Promise<unknown>; doQueryEnvironmentElevationReviews(feed: string, eid: string, ac?: AbortController): Promise<ElevationReviewsDTO>; doQueryFeedElevationReviews(feed: string, ac?: AbortController): Promise<ElevationReviewsDTO>; doQueryEnvironmentElevationReview(feed: string, eid: string, ac?: AbortController): Promise<ElevationReviewsDTO>; doAddElevationReview(feed: string, eid: string, content: ElevationReviewCreateDetails, ac?: AbortController): Promise<unknown>; doUpdateElevationReview(feed: string, eid: string, id: string, content: ElevationReviewUpdateDetails, ac?: AbortController): Promise<unknown>; doQueryElevationReviewComments(feed: string, eid: string, ac?: AbortController): Promise<ElevationReviewCommentsDTO>; doAddElevationReviewComment(feed: string, eid: string, content: ElevationReviewCommentCreateDetails, ac?: AbortController): Promise<unknown>; doQueryPages(feed: string, tag?: string, ac?: AbortController): Promise<PagesDTO>; doUpdatePageSettings(feed: string, content: PageSettingsUpdateDetails, ac?: AbortController): Promise<unknown>; doUpdatePage(feed: string, version: string, content: PageUpdateDetails, tag?: string, ac?: AbortController): Promise<unknown>; doPublishPage(feed: string, content: PagePublishDetails, ac?: AbortController): Promise<unknown>; doQueryAllPilets(feed: string, tag?: string, view?: "all" | "selected", ac?: AbortController): Promise<SelectedPiletsDTO>; doQueryUploadedPilets(feed: string, name: string, offset?: string, count?: string, ac?: AbortController): Promise<UploadedPiletsDTO>; doPublishPilet(feed: string, tag: string, file: File, ac?: AbortController): Promise<unknown>; doQueryCurrentPilets(feed: string, ac?: AbortController): Promise<Array<PiletMetadataDTO>>; doQueryPiletDetails(feed: string, pilet: string, tag?: string, ac?: AbortController): Promise<PiletDetailsDTO>; doQueryPiletReadme(feed: string, pilet: string, ac?: AbortController): Promise<PiletReadmeDTO>; doQueryFeedExists(feed: string, ac?: AbortController): Promise<FeedCheckDTO>; doQueryApiKeyScopes(ac?: AbortController): Promise<ApiKeyScopesDTO>; doQueryApiKeys(feed: string, ac?: AbortController): Promise<ApiKeysDTO>; doQueryFeedApiKeys(feed: string, ac?: AbortController): Promise<ApiKeysDTO>; doQueryGeneralApiKeys(ac?: AbortController): Promise<ApiKeysDTO>; doQueryFeatures(feed: string, ac?: AbortController): Promise<FeaturesDTO>; doQueryRules(feed: string, ac?: AbortController): Promise<RulesDTO>; doCreateFeed(content: FeedCreateDetails, ac?: AbortController): Promise<CreatedFeedDTO>; doAddFeature(feed: string, content: FeatureCreateDetails, ac?: AbortController): Promise<AddedFeatureDTO>; doAddRule(feed: string, content: RuleCreateDetails, ac?: AbortController): Promise<AddedRuleDTO>; doGenerateApiKey(feed: string, content: ApiKeyCreateDetails, ac?: AbortController): Promise<GeneratedApiKeyDTO>; doGenerateFeedApiKey(feed: string, content: ApiKeyCreateDetails, ac?: AbortController): Promise<GeneratedApiKeyDTO>; doGenerateGeneralApiKey(content: ApiKeyCreateDetails, ac?: AbortController): Promise<GeneratedApiKeyDTO>; doDeleteFeed(feed: string, ac?: AbortController): Promise<unknown>; doRevokeGeneralApiKey(id: string, ac?: AbortController): Promise<unknown>; doRevokeApiKey(feed: string, id: string, ac?: AbortController): Promise<unknown>; doRevokeFeedApiKey(feed: string, id: string, ac?: AbortController): Promise<unknown>; doDeletePilet(feed: string, id: string, all?: boolean, ac?: AbortController): Promise<unknown>; doDeleteFeature(feed: string, id: string, ac?: AbortController): Promise<unknown>; doDeleteRule(feed: string, id: string, ac?: AbortController): Promise<unknown>; doUpdateFeature(feed: string, id: string, content: FeatureUpdateDetails, ac?: AbortController): Promise<unknown>; doUpdateRule(feed: string, id: string, content: RuleUpdateDetails, ac?: AbortController): Promise<unknown>; doUpdatePilet(feed: string, id: string, content: PiletUpdateDetails, tag?: string, ac?: AbortController): Promise<unknown>; doUpdateFeed(feed: string, content: FeedUpdateDetails, ac?: AbortController): Promise<unknown>; doUpdateApiKey(feed: string, id: string, content: ApiKeyUpdateDetails, ac?: AbortController): Promise<unknown>; doUpdateFeedApiKey(feed: string, id: string, content: ApiKeyUpdateDetails, ac?: AbortController): Promise<unknown>; doUpdateGeneralApiKey(id: string, content: ApiKeyUpdateDetails, ac?: AbortController): Promise<unknown>; doQueryAudits(offset?: string, count?: string, areaName?: string, areaId?: string, objectId?: string, userId?: string, q?: string, ac?: AbortController, start?: Date, end?: Date): Promise<AuditsDTO>; doQueryAudit(id: string, ac?: AbortController): Promise<AuditDTO>; doQueryAllUsers(q: string, offset?: number, count?: number, ac?: AbortController): Promise<AllUsersDTO>; doQueryFeedContributors(feed: string, ac?: AbortController): Promise<FeedContributorsDTO>; doPutFeedContributors(feed: string, content: ContributorUpdateDetails, ac?: AbortController): Promise<unknown>; doQueryFeedTags(feed: string, ac?: AbortController): Promise<FeedTagsDTO>; doDeleteFeedTag(feed: string, tag: string, ac?: AbortController): Promise<unknown>; doQueryConfigs(feed: string, pilet: string, ac?: AbortController): Promise<ConfigsDTO>; doQueryConfig(feed: string, pilet: string, config: string, ac?: AbortController): Promise<ConfigDTO>; doAddConfig(feed: string, pilet: string, content: ConfigCreateDetails, ac?: AbortController): Promise<unknown>; doDeleteConfig(feed: string, pilet: string, config: string, ac?: AbortController): Promise<unknown>; doUpdateConfig(feed: string, pilet: string, config: string, content: ConfigUpdateDetails, ac?: AbortController): Promise<unknown>; doQueryAllFeedConfigs(feed: string, ac?: AbortController): Promise<AllFeedConfigsDTO>; doQueryFeedConfigs(feed: string, configId: string, ac?: AbortController): Promise<FeedConfigsDTO>; doQueryFeedConfig(feed: string, configId: string, config: string, ac?: AbortController): Promise<FeedConfigDTO>; doAddFeedConfig(feed: string, configId: string, content: ConfigCreateDetails, ac?: AbortController): Promise<unknown>; doDeleteFeedConfig(feed: string, configId: string, config: string, ac?: AbortController): Promise<unknown>; doUpdateFeedConfig(feed: string, configId: string, config: string, content: ConfigUpdateDetails, ac?: AbortController): Promise<unknown>; doQueryEntities(feed: string, ac?: AbortController): Promise<EntitiesDTO>; doQueryEntity(feed: string, id: string, ac?: AbortController): Promise<EntityDTO>; doAddEntity(feed: string, content: EntityCreateDetails, ac?: AbortController): Promise<EntityDTO>; doDeleteEntity(feed: string, id: string, ac?: AbortController): Promise<EntityDTO>; doUpdateEntity(feed: string, id: string, content: EntityUpdateDetails, ac?: AbortController): Promise<EntityDTO>; doQueryExternalUsers(q: string, offset?: number, count?: number, ac?: AbortController): Promise<ExternalUsersDTO>; doQueryUsers(ac?: AbortController): Promise<UsersDTO>; doQueryUser(id: string, ac?: AbortController): Promise<UserDTO>; doAddUser(content: UserCreateDetails, ac?: AbortController): Promise<ChangedUserDTO>; doDeleteUser(id: string, ac?: AbortController): Promise<DeletedUserDTO>; doUpdateUser(id: string, content: UserUpdateDetails, ac?: AbortController): Promise<ChangedUserDTO>; doQueryCustomRules(ac?: AbortController): Promise<CustomRuleModulesDTO>; doQueryGroups(ac?: AbortController): Promise<GroupsDTO>; doQueryGroup(id: string, ac?: AbortController): Promise<GroupDetailsDTO>; doAddGroup(content: GroupCreateDetails, ac?: AbortController): Promise<GroupDetailsDTO>; doUpdateGroup(id: string, content: GroupUpdateDetails, ac?: AbortController): Promise<GroupDetailsDTO>; doDeleteGroup(id: string, ac?: AbortController): Promise<DeletedGroupDTO>; doAddCustomRules(file: string, content: string, ac?: AbortController): Promise<ChangedCustomRuleModuleDTO>; doDeleteCustomRule(file: string, ac?: AbortController): Promise<ChangedCustomRuleModuleDTO>; doQueryCustomRuleDetails(file: string, ac?: AbortController): Promise<CustomRuleDetailsDTO>; doTestRule(feed: string, rule: string, content: TestRuleDetails, ac?: AbortController): Promise<TestRuleResultDTO>; doQueryCurrentUser(ac?: AbortController): Promise<CurrentUserDTO>; doUpdateCurrentUser(content: CurrentUserUpdateDetails, ac?: AbortController): Promise<ChangedUserDTO>; doQueryStatus(ac?: AbortController): Promise<StatusDTO>; doQueryStatistics(ac?: AbortController): Promise<StatisticsDTO>; doQueryRulesSchema(ac?: AbortController): Promise<any>; doQueryFeedAnalysis(feed: string, ac?: AbortController): Promise<FeedAnalysisDTO>; doQueryPiletAnalysis(feed: string, id: string, ac?: AbortController): Promise<PiletAnalysisDTO>; doQueryFeedVulnerabiltiyAnalysis(feed: string, ac?: AbortController): Promise<VulnerabilityReportDTO>; doTriggerVulnerabilityAnalysis(feed: string, ac?: AbortController): Promise<VulnerabilityReportDTO>; doRecheckDomains(feed: string, domains: Array<string>, ac?: AbortController): Promise<unknown>; doQueryFeedStatistics(feed: string, from: string, to: string, ac?: AbortController): Promise<FeedStatisticsDTO>; doQueryAdminFeedStatistics(offset?: string, count?: string, ac?: AbortController): Promise<AdminStatisticsDTO>; doQueryAdminFeedStatisticsDetails(feed: string, from: string, to: string, ac?: AbortController): Promise<AdminStatisticsDetailsDTO>; doQueryNpmRegistry(feed: string, ac?: AbortController): Promise<NpmRegistryDTO>; doQueryNpmPackage(feed: string, name: string, ac?: AbortController): Promise<NpmPackageDTO>; doUploadNpmPackage(feed: string, name: string, body: any, ac?: AbortController): Promise<void>; doDownloadFile(fileUrl: string, ac?: AbortController): Promise<Blob>; doGetLicenseInfo(ac?: AbortController): Promise<LicenseInfo>; doQueryPiletStorageEntries(feed: string, pilet: string, ac?: AbortController): Promise<StorageEntriesDTO>; doAddPiletStorageEntry(feed: string, pilet: string, name: string, content: string, ac?: AbortController): Promise<StorageEntryDetailsDTO>; doQueryPiletStorageEntry(feed: string, pilet: string, name: string, ac?: AbortController): Promise<StorageEntryFullDTO>; doUpdatePiletStorageEntry(feed: string, pilet: string, name: string, details: StorageEntryUpdateDetails, ac?: AbortController): Promise<StorageEntryDetailsDTO>; doDeletePiletStorageEntry(feed: string, pilet: string, name: string, ac?: AbortController): Promise<StorageEntryDetailsDTO>; doQueryGenerators(feed: string, ac?: AbortController): Promise<GeneratorsDTO>; doQueryGeneratorSteps(feed: string, generator: string, ac?: AbortController): Promise<GeneratorStepDTO>; doGeneratePilet(feed: string, generator: string, details: GeneratePiletDetails, ac?: AbortController): Promise<GeneratePiletResult>; doQueryAllGenerators(ac?: AbortController): Promise<GeneratorDTO>; doCreateGenerator(details: CreateGeneratorDetails, ac?: AbortController): Promise<CreateGeneratorResponse>; doQueryGeneratorDetails(generatorId: string, ac?: AbortController): Promise<GeneratorDetails>; doDeleteGenerator(generatorId: string, ac?: AbortController): Promise<GeneratorResponse>; doQueryDashboard(ac?: AbortController): Promise<DashboardResponse>; doQueryDashboardFeeds(offset?: string, count?: string, ac?: AbortController): Promise<DashboardFeedsResponse>; doSendNotification(details: SendNotificationDetails, ac?: AbortController): Promise<unknown>; doQueryIssues(ac?: AbortController): Promise<IssueDTO>; doCreateIssue(details: CreateIssueDetails, ac?: AbortController): Promise<CreateIssueResponse>; } /** * The basic / core options for creating a new service client. */ export interface CreateServiceClientBaseOptions { /** * Defines the host to talk to. Set this if you want to communicate * with your own feed service instance. * @default https://feed.piral.cloud */ host?: string; /** * Defines the default options for `fetch` to use. * @default undefined */ defaults?: RequestInit; } /** * The API key options for creating a new service client. */ export type CreateServiceClientApiKeyOptions = CreateServiceClientSimpleApiKeyOptions | CreateServiceClientAdvancedApiKeyOptions; export interface FetchClient { getAuthorizationHeader(): Promise<string>; fetch: { (input: URL | RequestInfo, init?: RequestInit): Promise<Response>; (input: string | URL | Request, init?: RequestInit): Promise<Response>; }; Headers: { new (init?: HeadersInit): Headers; prototype: Headers; }; FormData: { new (form?: HTMLFormElement, submitter?: HTMLElement): FormData; prototype: FormData; }; defaults: RequestInit; } export interface EventDefinitions { /** * The payload for the unauthorized event. * Allows retrieval of a new session to retry the request. */ unauthorized: { /** * The response received from the API. */ res: Response; /** * Retries the API call using an updated session. * @param delay The promise resolving when the call should be retried. */ retry(delay: Promise<void>): void; }; } export type EventNames = keyof EventDefinitions; export interface PiletMetadataDTO { /** * The name of the pilet, i.e., the package id. */ name: string; /** * The version of the pilet. Should be semantically versioned. */ version: string; /** * Provides the version of the specification for this pilet. */ spec: string; /** * The reference name for the global require. */ requireRef: string; /** * The computed integrity of the pilet. */ integrity?: string; /** * The content of a v0 pilet. If the content is not available * the link will be used (unless caching has been activated). */ content?: string; /** * If available indicates that the pilet should not be cached. * In case of a string this is interpreted as the expiration time * of the cache. In case of an accurate hash this should not be * required or set. */ noCache?: boolean | string; /** * The computed hash value of the pilet's content. Should be * accurate to allow caching. */ hash?: string; /** * The link for retrieving the content of the pilet. */ link: string; /** * Optionally provides some custom metadata for the pilet. */ custom?: any; /** * Optionally provides some configuration to be used in the pilet. */ config?: Record<string, any>; /** * Additional shared dependency script files. */ dependencies?: Record<string, string>; } export interface FeedsDTO extends ApiData<FeedDTO> { used: number; maximum: number; } export interface FullFeedDTO extends BaseFeedDTO { _details: "all"; contributors: Array<string>; targetFeeds: Array<string>; links: Record<string, string>; sources: Array<FeedSourceReference>; domains: Array<string>; retentionPolicies: Array<string>; invalidDomains: Array<string>; newDomains: Array<string>; } export interface ValidSourceTags extends ApiData<string> {} export interface EnvironmentsDTO extends ApiData<EnvironmentDTO> {} export interface EnvironmentDTO { id: string; name: string; description: string; feed: string; source: string; trigger: EnvironmentTriggerType; time: number; rules: EnvironmentApprovalRules; format: string; created: string; changed: string; } export interface EnvironmentCreateDetails { name: string; description: string; source: string; trigger: EnvironmentTriggerType; time: number; rules: EnvironmentApprovalRules; format?: string; } export interface EnvironmentUpdateDetails { name: string; description: string; feed: string; source: string; trigger: EnvironmentTriggerType; time: number; rules: EnvironmentApprovalRules; format?: string; } export interface ElevationReviewsDTO extends ApiData<ElevationReviewDTO> {} export interface ElevationReviewCreateDetails { environmentId: string; userId: string; piletId: string; description: string; } export interface ElevationReviewUpdateDetails { environmentId: string; userId: string; piletId: string; description: string; status: EnvironmentApprovalStatus; approved: Array<string>; rejected: Array<string>; } export interface ElevationReviewCommentsDTO extends ApiData<ElevationReviewCommentDTO> {} export interface ElevationReviewCommentCreateDetails { elevationReviewId: string; userId: string; content: string; } export interface PagesDTO extends ApiData<PageDTO> { feed: string; tags: Array<string>; settings: PageSettings; } export interface PageSettingsUpdateDetails { settings?: Partial<PageSettings>; } export interface PageUpdateDetails extends PageSettingsUpdateDetails { active: boolean; } export interface PagePublishDetails { version: string; type: "custom" | "none" | "docs" | "siteless"; embed: "yes" | "no"; tag?: string; options?: any; files?: Array<[string, Blob]>; } export interface SelectedPiletsDTO extends ApiData<PiletDTO> { enabled: Array<string>; bundled: Array<string>; feed: string; tags: Array<string>; } export interface UploadedPiletsDTO extends ApiPaginatedData<PiletDTO> {} export interface PiletDetailsDTO extends PiletDTO { configRefs: Array<string>; feed: string; description: string; main: string; authorName: string; authorEmail: string; requireRef: string; enabled: boolean; bundled: boolean; dependencies: Record<string, string>; } export interface PiletReadmeDTO { content: string; } export interface FeedCheckDTO { exists: boolean; restore?: boolean; self: boolean; feed: string; } export interface ApiKeyScopesDTO extends ApiData<string> { feedScopes: Array<string>; generalScopes: Array<string>; } export interface ApiKeysDTO extends ApiData<ApiKeyDTO> { feed: string; } export interface FeaturesDTO extends ApiData<FeatureDTO> { feed: string; } export interface RulesDTO extends ApiData<RuleDTO> { feed: string; } export interface FeedCreateDetails { id: string; description: string; hosts?: Array<string>; npmRegistry?: boolean; integrity?: boolean; scanned?: boolean; cleanup?: number; hook?: string; contributors?: Array<string>; retentionPolicies?: Array<string>; domains?: Array<string>; sources?: Array<FeedSourceReference>; } export interface CreatedFeedDTO { id: string; account: string; description: string; active: boolean; } export interface FeatureCreateDetails { id: string; description?: string; enabled?: boolean; } export interface AddedFeatureDTO { feed: string; success: boolean; } export type RuleCreateDetails = FeatureRuleCreateDetails | PiletRuleCreateDetails; export interface AddedRuleDTO { id: string; feed: string; success: boolean; } export interface ApiKeyCreateDetails { name: string; description: string; expires?: string; constraints?: Array<string>; scopes?: Array<string>; apiKey?: string; } export interface GeneratedApiKeyDTO { feed: string; id: string; name: string; description: string; expires: string; apiKey: string; } export interface FeatureUpdateDetails { description?: string; enabled?: boolean; } export interface RuleUpdateDetails { description?: string; order?: number; definition?: any; mode?: string; meta?: string; } export interface PiletUpdateDetails { selected?: boolean; enabled?: boolean; bundled?: boolean; priority?: number; tag?: string; configRefs?: Array<string>; } export interface FeedUpdateDetails { description?: string; hosts?: Array<string>; active?: boolean; hook?: string; integrity?: boolean; npmRegistry?: boolean; cleanup?: number; scanned?: boolean; contributors?: Array<string>; retentionPolicies?: Array<string>; domains?: Array<string>; account?: string; sources?: Array<FeedSourceReference>; } export interface ApiKeyUpdateDetails { description?: string; name?: string; expires?: string; } export interface AuditsDTO extends ApiPaginatedData<AuditDTO> {} export interface AuditDTO { id: string; userId: string; time: string; actionName: string; areaName: string; areaId: string; objectId: string; details: string; } export interface AllUsersDTO extends ApiData<ServiceUserDTO> {} export interface FeedContributorsDTO extends ApiData<FeedContributorDTO> { canEdit: boolean; } export interface ContributorUpdateDetails { items: Array<{ id: string; constraints: Array<string>; }>; } export interface FeedTagsDTO extends ApiData<FeedTagDTO> {} export interface ConfigsDTO extends ApiData<ConfigDTO> { feed: string; pilet: string; } export interface ConfigDTO extends ConfigBaseDTO { pilet: string; } export interface ConfigCreateDetails { name: string; value: any; secret?: boolean; } export interface ConfigUpdateDetails { value: any; } export interface AllFeedConfigsDTO extends ApiData<string> { feed: string; } export interface FeedConfigsDTO extends ApiData<FeedConfigDTO> { feed: string; config: string; } export interface FeedConfigDTO extends ConfigBaseDTO { id: string; } export interface EntitiesDTO extends ApiData<EntityDTO> { feed: string; } export interface EntityDTO { id: string; feed: string; type: string; name: string; pilet: string; description: string; order: number; changed: string; } export interface EntityCreateDetails { pilet: string; name: string; description: string; type: string; } export interface EntityUpdateDetails { description?: string; order?: number; } export interface ExternalUsersDTO extends ApiData<ExternalUserDTO> {} export interface UsersDTO extends ApiData<UserDTO> {} export interface UserDTO { id: string; name: string; provider: string; plan: string; role: string; created: string; changed: string; self: boolean; canCreateFeed: boolean | null; } export interface UserCreateDetails { id: string; provider: string; name?: string; email?: string; plan?: string; role?: string; canCreateFeed?: boolean | null; } export interface ChangedUserDTO { id: string; passphrase: string; success: boolean; } export interface DeletedUserDTO { id: string; success: boolean; } export interface UserUpdateDetails { name?: string; provider?: string; plan?: string; role?: string; resetpass?: boolean; canCreateFeed?: boolean | null; } export interface CustomRuleModulesDTO { items: Array<CustomRuleModuleDTO>; } export interface GroupsDTO extends ApiData<GroupDTO> {} export interface GroupDetailsDTO extends GroupDTO { changed: string; created: string; owner: string; admin: boolean; referencedBy: Array<string>; members: Array<{ id: string; name: string; type: ServiceUserType; }>; } export interface GroupCreateDetails { name: string; description?: string; members?: Array<string>; } export interface GroupUpdateDetails { name?: string; description?: string; members?: Array<string>; } export interface DeletedGroupDTO { id: string; success: boolean; } export interface ChangedCustomRuleModuleDTO { success: boolean; file: string; rules: Array<string>; } export interface CustomRuleDetailsDTO { file: string; content: string; rules?: Array<string>; error?: string; } export interface TestRuleDetails { headers: Record<string, string>; query: Record<string, string>; } export interface TestRuleResultDTO { result: boolean; } export interface CurrentUserDTO { id: string; name: string; provider: string; plan: string; role: string; created: string; changed: string; settings: Record<string, any>; canCreateFeed: boolean; } export interface CurrentUserUpdateDetails { name?: string; resetpass?: boolean; oldPassword?: string; newPassword?: string; settings?: Record<string, any>; } export interface StatusDTO { instanceId: string; started: string; status: "healthy" | "unhealthy"; modules: Array<string>; healthy: boolean; version: string; requests: { count: number; avg: number; }; ping: string; } export interface StatisticsDTO { accounts: number; apiKeys: number; feeds: number; piletAlls: number; piletCurrents: number; rules: number; } export interface FeedAnalysisDTO { items: Array<PiletAnalysisDTO>; } export interface PiletAnalysisDTO { name: string; version: string; spec: string; report: { dependencies: { referenced: Array<{ name: string; version: string; distributed: boolean; }>; included: Array<{ name: string; version: string; href: string; }>; bundled: Array<{ name: string; version: string; }>; }; metrics: { files: { total: number; css: number; html: number; js: number; json: number; maps: number; images: number; videos: number; assemblies: number; wasm: number; }; size: { total: number; css: number; json: number; html: number; js: number; }; entryPoints: Array<{ path: string; size: number; }>; }; styles: { sheets: Array<{ name: string; selectors: Array<string>; score: number; conflicts: Array<string>; }>; }; scripts: { files: Array<{ name: string; score: number; vulnerabilities: Array<VulnerabilityResult>; }>; }; }; } export interface VulnerabilityReportDTO { name: string; report: FeedVulnerabilityAnalysisDTO; } export interface FeedStatisticsDTO { feedRequests: Array<FeedRequestsDTO>; feedUserCountries: Array<FeedUserCountriesDTO>; } export interface AdminStatisticsDTO extends ApiPaginatedData<AdminStatisticsItemDTO> {} export interface AdminStatisticsDetailsDTO { feedRequests: Array<FeedRequestsDTO>; feedUserCountries: Array<FeedUserCountriesDTO>; feedContributors: number; feedSources: number; feedPilets: AdminStatisticsFeedPiletsDTO; } export interface NpmRegistryDTO extends ApiData<NpmItemDTO> { feed: string; } export interface NpmPackageDTO { _id: string; name: string; description: string; "dist-tags": Record<string, string>; versions: Record<string, { name: string; description: string; version: string; keywords: Array<string>; readme: string; _from: string; _resolved: string; _integrity: string; _id: string; _nodeVersion: string; _npmVersion: string; dist: { integrity: string; shasum: string; tarball: string; }; }>; } export interface LicenseInfo { /** * The reference name identifying the licensee. */ customer: string; /** * The expiration date of the license provided as an ISO-datetime string. */ expires: string; } export interface StorageEntriesDTO extends ApiData<StorageEntryDTO> {} export interface StorageEntryDetailsDTO extends StorageEntryDTO { feed: string; pilet: string; } export interface StorageEntryFullDTO extends StorageEntryDetailsDTO { content: string; } export interface StorageEntryUpdateDetails { content: string; } export interface GeneratorsDTO extends ApiData<GeneratorDTO> {} export interface GeneratorStepDTO extends GeneratorDTO { steps: Array<any>; } export interface GeneratePiletDetails { name: string; version: string; input: Record<string, any>; } export interface GeneratePiletResult { feed: string; id: string; url: string; } export interface GeneratorDTO { id: string; name: string; version: string; author: string; description: string; } export interface CreateGeneratorDetails { file: string; content: string; } export interface CreateGeneratorResponse extends GeneratorResponse { error: string; } export interface GeneratorDetails extends GeneratorDTO { file: string; error: string; readOnly: boolean; version: string; icon: string; } export interface GeneratorResponse { id: string; success: boolean; name: string; version: string; } export interface DashboardResponse extends ApiData<RecentChange> {} export interface DashboardFeedsResponse extends ApiData<DashboardFeed> {} export interface SendNotificationDetails { subject: string; content: string; recipients: Array<string>; severity?: "info" | "critical" | "high" | "medium" | "low"; } export interface IssueDTO extends ApiData<NotificationItem> {} export interface CreateIssueDetails { topic: string; content: string; } export interface CreateIssueResponse { id: string; success: boolean; } /** * The simple API key options for creating a new service client. */ export interface CreateServiceClientSimpleApiKeyOptions { /** * Defines the API key to use for making the HTTP calls. Needs * to be provided. */ apiKey: string; } /** * The advanced API key options for creating a new service client. */ export interface CreateServiceClientAdvancedApiKeyOptions { /** * Defines the API key to use for making the HTTP calls. Needs * to be provided. */ resolveApiKey(): Promise<string>; /** * Defines the type of the resolved API key. */ apiKeyType?: "basic" | "bearer" | "none"; } export interface ApiData<T> { items: Array<T>; } export type FeedDTO = ShortFeedDTO | FullFeedDTO; export interface BaseFeedDTO { id: string; name: string; account: string; description: string; active: boolean; deleted: boolean; integrity: boolean; npmRegistry: boolean; scanned: boolean; hook: string; hosts: Array<string>; owner: boolean; canEdit: boolean; canAddUser: boolean; canDelete: boolean; plan: string; cleanup?: number; } export type FeedSourceReference = UrlFeedSourceReference | RawFeedSourceReference | SelectorFeedSourceReference; export type EnvironmentTriggerType = "immediate" | "periodically" | "delayed" | "manual"; export interface EnvironmentApprovalRules { canSelfApprove: boolean; reviewers: { min: number; required: Array<string>; allowed: Array<string>; excluded: Array<string>; }; } export interface ElevationReviewDTO { id: string; environmentId: string; userId: string; piletId: string; description: string; status: EnvironmentApprovalStatus; approved: Array<string>; rejected: Array<string>; date: Date; } export type EnvironmentApprovalStatus = "approved" | "rejected" | "pending" | "none"; export interface ElevationReviewCommentDTO { id: string; elevationReviewId: string; userId: string; content: string; date: Date; } export interface PageDTO { feed: string; type: "custom" | "siteless" | "none"; version: string; active: boolean; } export interface PageSettings { fallback: string; auth: "none" | "feed" | "user"; headers: Array<{ name: string; value: string; }>; } export interface PiletDTO { id: string; name: string; version: string; hash: string; tag: string; selected: boolean; priority: number; schema: PiletType; canSetTag: boolean; canBundle: boolean; canDelete: boolean; created: string; } export interface ApiPaginatedData<T> { items: Array<T>; continuation: string; } export interface ApiKeyDTO { id: string; name: string; description: string; revoked: boolean; expires: string; scopes: Array<string>; constraints: Array<string>; } export interface FeatureDTO { id: string; description: string; changed: string; enabled: boolean; } export interface RuleDTO { id: string; order: number; feed: string; pilet?: string; feature?: string; description: string; meta?: string; mode: "allow" | "block"; definition: any; } export interface FeatureRuleCreateDetails extends BaseRuleCreateDetails { feature: string; } export interface PiletRuleCreateDetails extends BaseRuleCreateDetails { pilet: string; } export interface ServiceUserDTO { id: string; name: string; type: ServiceUserType; } export interface FeedContributorDTO { id: string; name: string; verified: boolean; constraints: Array<string>; } export interface FeedTagDTO { id: string; } export interface ConfigBaseDTO { name: string; value: any; feed: string; secret: boolean; created: string; changed: string; } export interface ExternalUserDTO { id: string; externalId: string; name: string; email: string; } export interface CustomRuleModuleDTO { file: string; success: boolean; source: "vs" | "fs"; rules?: Array<string>; error?: string; } export interface GroupDTO { id: string; name: string; description: string; memberCount: number; } export type ServiceUserType = "user" | "group"; export interface VulnerabilityResult { summary: string; value?: string; severity: VulnerabilitySeverityLevel; source: string; } export interface FeedVulnerabilityAnalysisDTO { issues: Record<string, Array<string>>; pilets: Record<string, Array<string>>; dependencies: Array<string>; lastScanned: string; } export interface FeedRequestsDTO { count: number; from: string; to: string; } export interface FeedUserCountriesDTO { name: string; count: number; } export interface AdminStatisticsItemDTO { id: string; name: string; owner: string; enabled: boolean; requestsToday: number; requestsLastMonth: number; } export interface AdminStatisticsFeedPiletsDTO { current: number; all: number; } export interface NpmItemDTO { feed: string; id: string; name: string; version: string; created: string; } export interface StorageEntryDTO { name: string; } export interface RecentChange { id: string; time: string; userId: string; feed: string; type: string; value: any; } export interface DashboardFeed { id: string; name: string; account: string; description: string; active: boolean; deleted: boolean; integrity: boolean; npmRegistry: boolean; hook: string; hosts: Array<string>; } export interface NotificationItem {} export interface ShortFeedDTO extends BaseFeedDTO { contributors: undefined; targetFeeds: undefined; sources: undefined; } export interface UrlFeedSourceReference { type: "url"; source: string; } export interface RawFeedSourceReference { type: "feed"; source: string; } export interface SelectorFeedSourceReference { type: "selector"; source: { feed: string; forwards: boolean; environment: boolean; mapping: Record<string, string>; fallback: string; }; } export type PiletType = "v0" | "v1" | "v2" | "oc" | "sspa" | "wmf" | "nf" | "esm" | "json" | "yaml"; export interface BaseRuleCreateDetails { description: string; definition: any; mode: "allow" | "block"; meta?: string; } export type VulnerabilitySeverityLevel = "none" | "low" | "medium" | "high" | "critical"; }