more api fixes, in integration and theme

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2021-10-26 16:07:59 +02:00
parent d5fb02775a
commit a15d028517
27 changed files with 342 additions and 236 deletions
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/integration': patch
'@backstage/theme': patch
---
More API fixes: mark things public, add docs, fix exports
+51 -161
View File
@@ -6,15 +6,11 @@
import { Config } from '@backstage/config';
import { RestEndpointMethodTypes } from '@octokit/rest';
// Warning: (ae-missing-release-tag) "AwsS3Integration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export class AwsS3Integration implements ScmIntegration {
constructor(integrationConfig: AwsS3IntegrationConfig);
// (undocumented)
get config(): AwsS3IntegrationConfig;
// Warning: (ae-forgotten-export) The symbol "ScmIntegrationsFactory" needs to be exported by the entry point index.d.ts
//
// (undocumented)
static factory: ScmIntegrationsFactory<AwsS3Integration>;
// (undocumented)
@@ -31,8 +27,6 @@ export class AwsS3Integration implements ScmIntegration {
get type(): string;
}
// Warning: (ae-missing-release-tag) "AwsS3IntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type AwsS3IntegrationConfig = {
host: string;
@@ -41,9 +35,7 @@ export type AwsS3IntegrationConfig = {
roleArn?: string;
};
// Warning: (ae-missing-release-tag) "AzureIntegration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export class AzureIntegration implements ScmIntegration {
constructor(integrationConfig: AzureIntegrationConfig);
// (undocumented)
@@ -64,17 +56,13 @@ export class AzureIntegration implements ScmIntegration {
get type(): string;
}
// Warning: (ae-missing-release-tag) "AzureIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type AzureIntegrationConfig = {
host: string;
token?: string;
};
// Warning: (ae-missing-release-tag) "BitbucketIntegration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export class BitbucketIntegration implements ScmIntegration {
constructor(integrationConfig: BitbucketIntegrationConfig);
// (undocumented)
@@ -95,8 +83,6 @@ export class BitbucketIntegration implements ScmIntegration {
get type(): string;
}
// Warning: (ae-missing-release-tag) "BitbucketIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type BitbucketIntegrationConfig = {
host: string;
@@ -106,8 +92,6 @@ export type BitbucketIntegrationConfig = {
appPassword?: string;
};
// Warning: (ae-missing-release-tag) "defaultScmResolveUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function defaultScmResolveUrl(options: {
url: string;
@@ -115,92 +99,44 @@ export function defaultScmResolveUrl(options: {
lineNumber?: number;
}): string;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getAzureCommitsUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getAzureCommitsUrl(url: string): string;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getAzureDownloadUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getAzureDownloadUrl(url: string): string;
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getAzureFileFetchUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getAzureFileFetchUrl(url: string): string;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getAzureRequestOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getAzureRequestOptions(
config: AzureIntegrationConfig,
additionalHeaders?: Record<string, string>,
): RequestInit;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getBitbucketDefaultBranch" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getBitbucketDefaultBranch(
url: string,
config: BitbucketIntegrationConfig,
): Promise<string>;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getBitbucketDownloadUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getBitbucketDownloadUrl(
url: string,
config: BitbucketIntegrationConfig,
): Promise<string>;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getBitbucketFileFetchUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getBitbucketFileFetchUrl(
url: string,
config: BitbucketIntegrationConfig,
): string;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getBitbucketRequestOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getBitbucketRequestOptions(
config: BitbucketIntegrationConfig,
): RequestInit;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-forgotten-export) The symbol "GithubCredentials" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "getGitHubFileFetchUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getGitHubFileFetchUrl(
url: string,
@@ -208,36 +144,34 @@ export function getGitHubFileFetchUrl(
credentials: GithubCredentials,
): string;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getGitHubRequestOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public @deprecated
export function getGitHubRequestOptions(
config: GitHubIntegrationConfig,
credentials: GithubCredentials,
): RequestInit;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getGitLabFileFetchUrl" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getGitLabFileFetchUrl(
url: string,
config: GitLabIntegrationConfig,
): Promise<string>;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "getGitLabRequestOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getGitLabRequestOptions(
config: GitLabIntegrationConfig,
): RequestInit;
// Warning: (ae-missing-release-tag) "GithubAppCredentialsMux" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export type GithubAppConfig = {
appId: number;
privateKey: string;
webhookSecret: string;
clientId: string;
clientSecret: string;
allowedInstallationOwners?: string[];
};
// @public
export class GithubAppCredentialsMux {
constructor(config: GitHubIntegrationConfig);
// (undocumented)
@@ -248,33 +182,26 @@ export class GithubAppCredentialsMux {
getAppToken(owner: string, repo?: string): Promise<string | undefined>;
}
// Warning: (ae-missing-release-tag) "GithubCredentialsProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export type GithubCredentials = {
headers?: {
[name: string]: string;
};
token?: string;
type: GithubCredentialType;
};
// @public
export class GithubCredentialsProvider {
// (undocumented)
static create(config: GitHubIntegrationConfig): GithubCredentialsProvider;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-undefined-tag) The TSDoc tag "@type" is not defined in this configuration
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
getCredentials(opts: { url: string }): Promise<GithubCredentials>;
}
// Warning: (ae-missing-release-tag) "GithubCredentialType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export type GithubCredentialType = 'app' | 'token';
// Warning: (ae-missing-release-tag) "GitHubIntegration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export class GitHubIntegration implements ScmIntegration {
constructor(integrationConfig: GitHubIntegrationConfig);
// (undocumented)
@@ -295,8 +222,6 @@ export class GitHubIntegration implements ScmIntegration {
get type(): string;
}
// Warning: (ae-missing-release-tag) "GitHubIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type GitHubIntegrationConfig = {
host: string;
@@ -306,9 +231,7 @@ export type GitHubIntegrationConfig = {
apps?: GithubAppConfig[];
};
// Warning: (ae-missing-release-tag) "GitLabIntegration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export class GitLabIntegration implements ScmIntegration {
constructor(integrationConfig: GitLabIntegrationConfig);
// (undocumented)
@@ -329,8 +252,6 @@ export class GitLabIntegration implements ScmIntegration {
get type(): string;
}
// Warning: (ae-missing-release-tag) "GitLabIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type GitLabIntegrationConfig = {
host: string;
@@ -339,114 +260,89 @@ export type GitLabIntegrationConfig = {
baseUrl: string;
};
// Warning: (ae-missing-release-tag) "GoogleGcsIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type GoogleGcsIntegrationConfig = {
clientEmail?: string;
privateKey?: string;
};
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readAwsS3IntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface IntegrationsByType {
// (undocumented)
awsS3: ScmIntegrationsGroup<AwsS3Integration>;
// (undocumented)
azure: ScmIntegrationsGroup<AzureIntegration>;
// (undocumented)
bitbucket: ScmIntegrationsGroup<BitbucketIntegration>;
// (undocumented)
github: ScmIntegrationsGroup<GitHubIntegration>;
// (undocumented)
gitlab: ScmIntegrationsGroup<GitLabIntegration>;
}
// @public
export function readAwsS3IntegrationConfig(
config: Config,
): AwsS3IntegrationConfig;
// Warning: (ae-missing-release-tag) "readAwsS3IntegrationConfigs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export function readAwsS3IntegrationConfigs(
configs: Config[],
): AwsS3IntegrationConfig[];
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readAzureIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readAzureIntegrationConfig(
config: Config,
): AzureIntegrationConfig;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readAzureIntegrationConfigs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readAzureIntegrationConfigs(
configs: Config[],
): AzureIntegrationConfig[];
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readBitbucketIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readBitbucketIntegrationConfig(
config: Config,
): BitbucketIntegrationConfig;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readBitbucketIntegrationConfigs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readBitbucketIntegrationConfigs(
configs: Config[],
): BitbucketIntegrationConfig[];
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readGitHubIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readGitHubIntegrationConfig(
config: Config,
): GitHubIntegrationConfig;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readGitHubIntegrationConfigs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readGitHubIntegrationConfigs(
configs: Config[],
): GitHubIntegrationConfig[];
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readGitLabIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readGitLabIntegrationConfig(
config: Config,
): GitLabIntegrationConfig;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readGitLabIntegrationConfigs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readGitLabIntegrationConfigs(
configs: Config[],
): GitLabIntegrationConfig[];
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "readGoogleGcsIntegrationConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function readGoogleGcsIntegrationConfig(
config: Config,
): GoogleGcsIntegrationConfig;
// Warning: (ae-missing-release-tag) "replaceUrlType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export function replaceGitHubUrlType(
url: string,
type: 'blob' | 'tree' | 'edit',
): string;
// Warning: (ae-missing-release-tag) "ScmIntegration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface ScmIntegration {
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
resolveEditUrl(url: string): string;
// Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
// Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
@@ -460,8 +356,6 @@ export interface ScmIntegration {
type: string;
}
// Warning: (ae-missing-release-tag) "ScmIntegrationRegistry" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface ScmIntegrationRegistry
extends ScmIntegrationsGroup<ScmIntegration> {
@@ -475,7 +369,6 @@ export interface ScmIntegrationRegistry
github: ScmIntegrationsGroup<GitHubIntegration>;
// (undocumented)
gitlab: ScmIntegrationsGroup<GitLabIntegration>;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
resolveEditUrl(url: string): string;
// Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
// Warning: (tsdoc-param-tag-with-invalid-name) The @param block should be followed by a valid parameter name: The identifier cannot non-word characters
@@ -487,11 +380,8 @@ export interface ScmIntegrationRegistry
}): string;
}
// Warning: (ae-missing-release-tag) "ScmIntegrations" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
// @public
export class ScmIntegrations implements ScmIntegrationRegistry {
// Warning: (ae-forgotten-export) The symbol "IntegrationsByType" needs to be exported by the entry point index.d.ts
constructor(integrationsByType: IntegrationsByType);
// (undocumented)
get awsS3(): ScmIntegrationsGroup<AwsS3Integration>;
@@ -521,20 +411,20 @@ export class ScmIntegrations implements ScmIntegrationRegistry {
}): string;
}
// Warning: (ae-missing-release-tag) "ScmIntegrationsGroup" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ScmIntegrationsFactory<T extends ScmIntegration> = (options: {
config: Config;
}) => ScmIntegrationsGroup<T>;
// @public
export interface ScmIntegrationsGroup<T extends ScmIntegration> {
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
byHost(host: string): T | undefined;
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
byUrl(url: string | URL): T | undefined;
list(): T[];
}
// Warnings were encountered during analysis:
//
// src/github/config.d.ts:41:5 - (ae-forgotten-export) The symbol "GithubAppConfig" needs to be exported by the entry point index.d.ts
// src/gitlab/config.d.ts:27:68 - (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// src/gitlab/config.d.ts:27:63 - (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// src/gitlab/config.d.ts:29:68 - (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// src/gitlab/config.d.ts:29:63 - (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
```
+12 -2
View File
@@ -24,14 +24,24 @@ import { defaultScmResolveUrl } from './helpers';
import { ScmIntegration, ScmIntegrationsGroup } from './types';
import { ScmIntegrationRegistry } from './registry';
type IntegrationsByType = {
/**
* The set of supported integrations.
*
* @public
*/
export interface IntegrationsByType {
awsS3: ScmIntegrationsGroup<AwsS3Integration>;
azure: ScmIntegrationsGroup<AzureIntegration>;
bitbucket: ScmIntegrationsGroup<BitbucketIntegration>;
github: ScmIntegrationsGroup<GitHubIntegration>;
gitlab: ScmIntegrationsGroup<GitLabIntegration>;
};
}
/**
* Exposes the set of supported integrations.
*
* @public
*/
export class ScmIntegrations implements ScmIntegrationRegistry {
private readonly byType: IntegrationsByType;
@@ -18,6 +18,11 @@ import { basicIntegrations, defaultScmResolveUrl } from '../helpers';
import { ScmIntegration, ScmIntegrationsFactory } from '../types';
import { AwsS3IntegrationConfig, readAwsS3IntegrationConfigs } from './config';
/**
* Integrates with AWS S3 or compatible solutions.
*
* @public
*/
export class AwsS3Integration implements ScmIntegration {
static factory: ScmIntegrationsFactory<AwsS3Integration> = ({ config }) => {
const configs = readAwsS3IntegrationConfigs(
@@ -42,6 +47,7 @@ export class AwsS3Integration implements ScmIntegration {
}
constructor(private readonly integrationConfig: AwsS3IntegrationConfig) {}
resolveUrl(options: {
url: string;
base: string;
+11 -2
View File
@@ -21,8 +21,9 @@ const AMAZON_AWS_HOST = 'amazonaws.com';
/**
* The configuration parameters for a single AWS S3 provider.
*
* @public
*/
export type AwsS3IntegrationConfig = {
/**
* The host of the target that this matches on, e.g. "amazonaws.com"
@@ -50,7 +51,8 @@ export type AwsS3IntegrationConfig = {
/**
* Reads a single Aws S3 integration config.
*
* @param config The config object of a single integration
* @param config - The config object of a single integration
* @public
*/
export function readAwsS3IntegrationConfig(
@@ -70,6 +72,13 @@ export function readAwsS3IntegrationConfig(
return { host, accessKeyId, secretAccessKey, roleArn };
}
/**
* Reads a set of AWS S3 integration configs, and inserts some defaults for
* public Amazon AWS if not specified.
*
* @param configs - The config objects of the integrations
* @public
*/
export function readAwsS3IntegrationConfigs(
configs: Config[],
): AwsS3IntegrationConfig[] {
@@ -19,6 +19,11 @@ import { ScmIntegration, ScmIntegrationsFactory } from '../types';
import { AzureUrl } from './AzureUrl';
import { AzureIntegrationConfig, readAzureIntegrationConfigs } from './config';
/**
* Microsoft Azure based integration.
*
* @public
*/
export class AzureIntegration implements ScmIntegration {
static factory: ScmIntegrationsFactory<AzureIntegration> = ({ config }) => {
const configs = readAzureIntegrationConfigs(
+6 -2
View File
@@ -21,6 +21,8 @@ const AZURE_HOST = 'dev.azure.com';
/**
* The configuration parameters for a single Azure provider.
*
* @public
*/
export type AzureIntegrationConfig = {
/**
@@ -41,7 +43,8 @@ export type AzureIntegrationConfig = {
/**
* Reads a single Azure integration config.
*
* @param config The config object of a single integration
* @param config - The config object of a single integration
* @public
*/
export function readAzureIntegrationConfig(
config: Config,
@@ -62,7 +65,8 @@ export function readAzureIntegrationConfig(
* Reads a set of Azure integration configs, and inserts some defaults for
* public Azure if not specified.
*
* @param configs All of the integration config objects
* @param configs - All of the integration config objects
* @public
*/
export function readAzureIntegrationConfigs(
configs: Config[],
+13 -7
View File
@@ -21,11 +21,14 @@ import { AzureIntegrationConfig } from './config';
* Given a URL pointing to a file on a provider, returns a URL that is suitable
* for fetching the contents of the data.
*
* Converts
* from: https://dev.azure.com/{organization}/{project}/_git/reponame?path={path}&version=GB{commitOrBranch}&_a=contents
* to: https://dev.azure.com/{organization}/{project}/_apis/git/repositories/reponame/items?path={path}&version={commitOrBranch}
* @remarks
*
* @param url A URL pointing to a file
* Converts
* - from: `https://dev.azure.com/{organization}/{project}/_git/reponame?path={path}&version=GB{commitOrBranch}&_a=contents`
* - to: `https://dev.azure.com/{organization}/{project}/_apis/git/repositories/reponame/items?path={path}&version={commitOrBranch}`
*
* @param url - A URL pointing to a file
* @public
*/
export function getAzureFileFetchUrl(url: string): string {
return AzureUrl.fromRepoUrl(url).toFileUrl();
@@ -35,7 +38,8 @@ export function getAzureFileFetchUrl(url: string): string {
* Given a URL pointing to a path on a provider, returns a URL that is suitable
* for downloading the subtree.
*
* @param url A URL pointing to a path
* @param url - A URL pointing to a path
* @public
*/
export function getAzureDownloadUrl(url: string): string {
return AzureUrl.fromRepoUrl(url).toArchiveUrl();
@@ -44,7 +48,8 @@ export function getAzureDownloadUrl(url: string): string {
/**
* Given a URL, return the API URL to fetch commits on the branch.
*
* @param url A URL pointing to a repository or a sub-path
* @param url - A URL pointing to a repository or a sub-path
* @public
*/
export function getAzureCommitsUrl(url: string): string {
return AzureUrl.fromRepoUrl(url).toCommitsUrl();
@@ -53,7 +58,8 @@ export function getAzureCommitsUrl(url: string): string {
/**
* Gets the request options necessary to make requests to a given provider.
*
* @param config The relevant provider config
* @param config - The relevant provider config
* @public
*/
export function getAzureRequestOptions(
config: AzureIntegrationConfig,
@@ -22,6 +22,11 @@ import {
readBitbucketIntegrationConfigs,
} from './config';
/**
* A Bitbucket based integration.
*
* @public
*/
export class BitbucketIntegration implements ScmIntegration {
static factory: ScmIntegrationsFactory<BitbucketIntegration> = ({
config,
+6 -2
View File
@@ -23,6 +23,8 @@ const BITBUCKET_API_BASE_URL = 'https://api.bitbucket.org/2.0';
/**
* The configuration parameters for a single Bitbucket API provider.
*
* @public
*/
export type BitbucketIntegrationConfig = {
/**
@@ -66,7 +68,8 @@ export type BitbucketIntegrationConfig = {
/**
* Reads a single Bitbucket integration config.
*
* @param config The config object of a single integration
* @param config - The config object of a single integration
* @public
*/
export function readBitbucketIntegrationConfig(
config: Config,
@@ -102,7 +105,8 @@ export function readBitbucketIntegrationConfig(
* Reads a set of Bitbucket integration configs, and inserts some defaults for
* public Bitbucket if not specified.
*
* @param configs All of the integration config objects
* @param configs - All of the integration config objects
* @public
*/
export function readBitbucketIntegrationConfigs(
configs: Config[],
+13 -7
View File
@@ -21,8 +21,9 @@ import { BitbucketIntegrationConfig } from './config';
/**
* Given a URL pointing to a path on a provider, returns the default branch.
*
* @param url A URL pointing to a path
* @param config The relevant provider config
* @param url - A URL pointing to a path
* @param config - The relevant provider config
* @public
*/
export async function getBitbucketDefaultBranch(
url: string,
@@ -71,8 +72,9 @@ export async function getBitbucketDefaultBranch(
* Given a URL pointing to a path on a provider, returns a URL that is suitable
* for downloading the subtree.
*
* @param url A URL pointing to a path
* @param config The relevant provider config
* @param url - A URL pointing to a path
* @param config - The relevant provider config
* @public
*/
export async function getBitbucketDownloadUrl(
url: string,
@@ -108,12 +110,15 @@ export async function getBitbucketDownloadUrl(
* Given a URL pointing to a file on a provider, returns a URL that is suitable
* for fetching the contents of the data.
*
* @remarks
*
* Converts
* from: https://bitbucket.org/orgname/reponame/src/master/file.yaml
* to: https://api.bitbucket.org/2.0/repositories/orgname/reponame/src/master/file.yaml
*
* @param url A URL pointing to a file
* @param config The relevant provider config
* @param url - A URL pointing to a file
* @param config - The relevant provider config
* @public
*/
export function getBitbucketFileFetchUrl(
url: string,
@@ -148,7 +153,8 @@ export function getBitbucketFileFetchUrl(
/**
* Gets the request options necessary to make requests to a given provider.
*
* @param config The relevant provider config
* @param config - The relevant provider config
* @public
*/
export function getBitbucketRequestOptions(
config: BitbucketIntegrationConfig,
@@ -15,7 +15,7 @@
*/
import { ConfigReader } from '@backstage/config';
import { GitHubIntegration, replaceUrlType } from './GitHubIntegration';
import { GitHubIntegration, replaceGitHubUrlType } from './GitHubIntegration';
describe('GitHubIntegration', () => {
it('has a working factory', () => {
@@ -80,25 +80,28 @@ describe('GitHubIntegration', () => {
});
});
describe('replaceUrlType', () => {
describe('replaceGitHubUrlType', () => {
it('should replace with expected type', () => {
expect(
replaceUrlType(
replaceGitHubUrlType(
'https://github.com/backstage/backstage/blob/master/README.md',
'edit',
),
).toBe('https://github.com/backstage/backstage/edit/master/README.md');
expect(
replaceUrlType(
replaceGitHubUrlType(
'https://github.com/webmodules/blob/blob/master/test',
'tree',
),
).toBe('https://github.com/webmodules/blob/tree/master/test');
expect(
replaceUrlType('https://github.com/blob/blob/blob/master/test', 'tree'),
replaceGitHubUrlType(
'https://github.com/blob/blob/blob/master/test',
'tree',
),
).toBe('https://github.com/blob/blob/tree/master/test');
expect(
replaceUrlType(
replaceGitHubUrlType(
'https://github.com/backstage/backstage/edit/tree/README.md',
'blob',
),
@@ -21,6 +21,11 @@ import {
readGitHubIntegrationConfigs,
} from './config';
/**
* A GitHub based integration.
*
* @public
*/
export class GitHubIntegration implements ScmIntegration {
static factory: ScmIntegrationsFactory<GitHubIntegration> = ({ config }) => {
const configs = readGitHubIntegrationConfigs(
@@ -54,15 +59,22 @@ export class GitHubIntegration implements ScmIntegration {
// GitHub uses blob URLs for files and tree urls for directory listings. But
// there is a redirect from tree to blob for files, so we can always return
// tree urls here.
return replaceUrlType(defaultScmResolveUrl(options), 'tree');
return replaceGitHubUrlType(defaultScmResolveUrl(options), 'tree');
}
resolveEditUrl(url: string): string {
return replaceUrlType(url, 'edit');
return replaceGitHubUrlType(url, 'edit');
}
}
export function replaceUrlType(
/**
* Takes a GitHub URL and replaces the type part (blob, tree etc).
*
* @param url - The original URL
* @param type - The desired type, e.g. "blob"
* @public
*/
export function replaceGitHubUrlType(
url: string,
type: 'blob' | 'tree' | 'edit',
): string {
@@ -159,7 +159,11 @@ class GithubAppManager {
}
}
// GithubAppCredentialsMux corresponds to a Github installation which internally could hold several GitHub Apps.
/**
* Corresponds to a Github installation which internally could hold several GitHub Apps.
*
* @public
*/
export class GithubAppCredentialsMux {
private readonly apps: GithubAppManager[];
@@ -211,15 +215,32 @@ export class GithubAppCredentialsMux {
}
}
/**
* The type of credentials produced by the credential provider.
*
* @public
*/
export type GithubCredentialType = 'app' | 'token';
/**
* A set of credentials information for a GitHub integration.
*
* @public
*/
export type GithubCredentials = {
headers?: { [name: string]: string };
token?: string;
type: GithubCredentialType;
};
// TODO: Possibly move this to a backend only package so that it's not used in the frontend by mistake
/**
* Handles the creation and caching of credentials for GitHub integrations.
*
* @public
* @remarks
*
* TODO: Possibly move this to a backend only package so that it's not used in the frontend by mistake
*/
export class GithubCredentialsProvider {
static create(config: GitHubIntegrationConfig): GithubCredentialsProvider {
return new GithubCredentialsProvider(
@@ -234,13 +255,24 @@ export class GithubCredentialsProvider {
) {}
/**
* Returns GithubCredentials for requested url.
* Consecutive calls to this method with the same url will return cached credentials.
* Returns {@link GithubCredentials} for a given URL.
*
* @remarks
*
* Consecutive calls to this method with the same URL will return cached
* credentials.
*
* The shortest lifetime for a token returned is 10 minutes.
* @param opts containing the organization or repository url
* @returns {Promise} of @type {GithubCredentials}.
*
* @example
* const { token, headers } = await getCredentials({url: 'github.com/backstage/foobar'})
* ```ts
* const { token, headers } = await getCredentials({
* url: 'github.com/backstage/foobar'
* })
* ```
*
* @param opts - The organization or repository URL
* @returns A promise of {@link GithubCredentials}.
*/
async getCredentials(opts: { url: string }): Promise<GithubCredentials> {
const parsed = parseGitUrl(opts.url);
+12 -3
View File
@@ -24,6 +24,8 @@ const GITHUB_RAW_BASE_URL = 'https://raw.githubusercontent.com';
/**
* The configuration parameters for a single GitHub integration.
*
* @public
*/
export type GitHubIntegrationConfig = {
/**
@@ -70,7 +72,12 @@ export type GitHubIntegrationConfig = {
/**
* The configuration parameters for authenticating a GitHub Application.
* A Github Apps configuration can be generated using the `backstage-cli create-github-app` command.
*
* @remarks
*
* A GitHub Apps configuration can be generated using the `backstage-cli create-github-app` command.
*
* @public
*/
export type GithubAppConfig = {
/**
@@ -107,7 +114,8 @@ export type GithubAppConfig = {
/**
* Reads a single GitHub integration config.
*
* @param config The config object of a single integration
* @param config - The config object of a single integration
* @public
*/
export function readGitHubIntegrationConfig(
config: Config,
@@ -152,7 +160,8 @@ export function readGitHubIntegrationConfig(
* Reads a set of GitHub integration configs, and inserts some defaults for
* public GitHub if not specified.
*
* @param configs All of the integration config objects
* @param configs - All of the integration config objects
* @public
*/
export function readGitHubIntegrationConfigs(
configs: Config[],
+7 -3
View File
@@ -22,13 +22,16 @@ import { GithubCredentials } from './GithubCredentialsProvider';
* Given a URL pointing to a file on a provider, returns a URL that is suitable
* for fetching the contents of the data.
*
* @remarks
*
* Converts
* from: https://github.com/a/b/blob/branchname/path/to/c.yaml
* to: https://api.github.com/repos/a/b/contents/path/to/c.yaml?ref=branchname
* or: https://raw.githubusercontent.com/a/b/branchname/c.yaml
*
* @param url A URL pointing to a file
* @param config The relevant provider config
* @param url - A URL pointing to a file
* @param config - The relevant provider config
* @public
*/
export function getGitHubFileFetchUrl(
url: string,
@@ -64,7 +67,8 @@ export function getGitHubFileFetchUrl(
* Gets the request options necessary to make requests to a given provider.
*
* @deprecated This function is no longer used internally
* @param config The relevant provider config
* @param config - The relevant provider config
* @public
*/
export function getGitHubRequestOptions(
config: GitHubIntegrationConfig,
+6 -6
View File
@@ -18,14 +18,14 @@ export {
readGitHubIntegrationConfig,
readGitHubIntegrationConfigs,
} from './config';
export type { GitHubIntegrationConfig } from './config';
export type { GithubAppConfig, GitHubIntegrationConfig } from './config';
export { getGitHubFileFetchUrl, getGitHubRequestOptions } from './core';
export {
GithubAppCredentialsMux,
GithubCredentialsProvider,
} from './GithubCredentialsProvider';
export type { GithubCredentialType } from './GithubCredentialsProvider';
export {
GitHubIntegration,
replaceUrlType as replaceGitHubUrlType,
} from './GitHubIntegration';
export type {
GithubCredentials,
GithubCredentialType,
} from './GithubCredentialsProvider';
export { GitHubIntegration, replaceGitHubUrlType } from './GitHubIntegration';
@@ -21,6 +21,11 @@ import {
readGitLabIntegrationConfigs,
} from './config';
/**
* A GitLab based integration.
*
* @public
*/
export class GitLabIntegration implements ScmIntegration {
static factory: ScmIntegrationsFactory<GitLabIntegration> = ({ config }) => {
const configs = readGitLabIntegrationConfigs(
+6 -2
View File
@@ -23,6 +23,8 @@ const GITLAB_API_BASE_URL = 'https://gitlab.com/api/v4';
/**
* The configuration parameters for a single GitLab integration.
*
* @public
*/
export type GitLabIntegrationConfig = {
/**
@@ -57,7 +59,8 @@ export type GitLabIntegrationConfig = {
/**
* Reads a single GitLab integration config.
*
* @param config The config object of a single integration
* @param config - The config object of a single integration
* @public
*/
export function readGitLabIntegrationConfig(
config: Config,
@@ -104,7 +107,8 @@ export function readGitLabIntegrationConfig(
* Reads a set of GitLab integration configs, and inserts some defaults for
* public GitLab if not specified.
*
* @param configs All of the integration config objects
* @param configs - All of the integration config objects
* @public
*/
export function readGitLabIntegrationConfigs(
configs: Config[],
+7 -3
View File
@@ -21,6 +21,8 @@ import fetch from 'cross-fetch';
* Given a URL pointing to a file on a provider, returns a URL that is suitable
* for fetching the contents of the data.
*
* @remarks
*
* Converts
* from: https://gitlab.example.com/a/b/blob/master/c.yaml
* to: https://gitlab.example.com/a/b/raw/master/c.yaml
@@ -28,8 +30,9 @@ import fetch from 'cross-fetch';
* from: https://gitlab.com/groupA/teams/teamA/subgroupA/repoA/-/blob/branch/filepath
* to: https://gitlab.com/api/v4/projects/projectId/repository/files/filepath?ref=branch
*
* @param url A URL pointing to a file
* @param config The relevant provider config
* @param url - A URL pointing to a file
* @param config - The relevant provider config
* @public
*/
export async function getGitLabFileFetchUrl(
url: string,
@@ -48,7 +51,8 @@ export async function getGitLabFileFetchUrl(
/**
* Gets the request options necessary to make requests to a given provider.
*
* @param config The relevant provider config
* @param config - The relevant provider config
* @public
*/
export function getGitLabRequestOptions(
config: GitLabIntegrationConfig,
+4 -1
View File
@@ -18,6 +18,8 @@ import { Config } from '@backstage/config';
/**
* The configuration parameters for a single Google Cloud Storage provider.
*
* @public
*/
export type GoogleGcsIntegrationConfig = {
/**
@@ -33,7 +35,8 @@ export type GoogleGcsIntegrationConfig = {
/**
* Reads a single Google GCS integration config.
*
* @param config The config object of a single integration
* @param config - The config object of a single integration
* @public
*/
export function readGoogleGcsIntegrationConfig(
config: Config,
+4 -2
View File
@@ -59,8 +59,10 @@ export function basicIntegrations<T extends ScmIntegration>(
}
/**
* Default implementation of ScmIntegration.resolveUrl, that only works with
* URL pathname based providers.
* Default implementation of {@link ScmIntegration} `resolveUrl`, that only
* works with URL pathname based providers.
*
* @public
*/
export function defaultScmResolveUrl(options: {
url: string;
+6 -1
View File
@@ -28,5 +28,10 @@ export * from './googleGcs';
export * from './awsS3';
export { defaultScmResolveUrl } from './helpers';
export { ScmIntegrations } from './ScmIntegrations';
export type { ScmIntegration, ScmIntegrationsGroup } from './types';
export type { IntegrationsByType } from './ScmIntegrations';
export type {
ScmIntegration,
ScmIntegrationsFactory,
ScmIntegrationsGroup,
} from './types';
export type { ScmIntegrationRegistry } from './registry';
+6 -4
View File
@@ -23,6 +23,8 @@ import { GitLabIntegration } from './gitlab/GitLabIntegration';
/**
* Holds all registered SCM integrations, of all types.
*
* @public
*/
export interface ScmIntegrationRegistry
extends ScmIntegrationsGroup<ScmIntegration> {
@@ -44,9 +46,9 @@ export interface ScmIntegrationRegistry
* not resolve to `https://hostname/b.yaml` but rather to
* `<repo root url>/b.yaml` inside the file tree of that same repo.
*
* @param options.url The (absolute or relative) URL or path to resolve
* @param options.base The base URL onto which this resolution happens
* @param options.lineNumber The line number in the target file to link to, starting with 1. Only applicable when linking to files.
* @param options.url - The (absolute or relative) URL or path to resolve
* @param options.base - The base URL onto which this resolution happens
* @param options.lineNumber - The line number in the target file to link to, starting with 1. Only applicable when linking to files.
*/
resolveUrl(options: {
url: string;
@@ -63,7 +65,7 @@ export interface ScmIntegrationRegistry
* If this is not possible, the integration can fall back to a URL to view
* the file in the web interface.
*
* @param url The absolute URL to the file that should be edited.
* @param url - The absolute URL to the file that should be edited.
*/
resolveEditUrl(url: string): string;
}
+15 -6
View File
@@ -18,6 +18,8 @@ import { Config } from '@backstage/config';
/**
* Encapsulates a single SCM integration.
*
* @public
*/
export interface ScmIntegration {
/**
@@ -43,9 +45,9 @@ export interface ScmIntegration {
* not resolve to `https://hostname/b.yaml` but rather to
* `<repo root url>/b.yaml` inside the file tree of that same repo.
*
* @param options.url The (absolute or relative) URL or path to resolve
* @param options.base The base URL onto which this resolution happens
* @param options.lineNumber The line number in the target file to link to, starting with 1. Only applicable when linking to files.
* @param options.url - The (absolute or relative) URL or path to resolve
* @param options.base - The base URL onto which this resolution happens
* @param options.lineNumber - The line number in the target file to link to, starting with 1. Only applicable when linking to files.
*/
resolveUrl(options: {
url: string;
@@ -62,13 +64,15 @@ export interface ScmIntegration {
* If this is not possible, the integration can fall back to a URL to view
* the file in the web interface.
*
* @param url The absolute URL to the file that should be edited.
* @param url - The absolute URL to the file that should be edited.
*/
resolveEditUrl(url: string): string;
}
/**
* Encapsulates several integrations, that are all of the same type.
*
* @public
*/
export interface ScmIntegrationsGroup<T extends ScmIntegration> {
/**
@@ -79,18 +83,23 @@ export interface ScmIntegrationsGroup<T extends ScmIntegration> {
/**
* Fetches an integration of this type by URL.
*
* @param url A URL that matches a registered integration of this type
* @param url - A URL that matches a registered integration of this type
*/
byUrl(url: string | URL): T | undefined;
/**
* Fetches an integration of this type by host name.
*
* @param url A host name that matches a registered integration of this type
* @param host - A host name that matches a registered integration of this type
*/
byHost(host: string): T | undefined;
}
/**
* A factory function that creates an integration group based on configuration.
*
* @public
*/
export type ScmIntegrationsFactory<T extends ScmIntegration> = (options: {
config: Config;
}) => ScmIntegrationsGroup<T>;
+58 -3
View File
@@ -9,16 +9,71 @@ import { PaletteOptions } from '@material-ui/core/styles/createPalette';
import { Theme } from '@material-ui/core';
import { ThemeOptions } from '@material-ui/core';
// Warning: (ae-forgotten-export) The symbol "PaletteAdditions" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "BackstagePalette" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BackstagePalette = Palette & PaletteAdditions;
export type BackstagePalette = Palette & BackstagePaletteAdditions;
// @public
export type BackstagePaletteAdditions = {
status: {
ok: string;
warning: string;
error: string;
pending: string;
running: string;
aborted: string;
};
border: string;
textContrast: string;
textVerySubtle: string;
textSubtle: string;
highlight: string;
errorBackground: string;
warningBackground: string;
infoBackground: string;
errorText: string;
infoText: string;
warningText: string;
linkHover: string;
link: string;
gold: string;
navigation: {
background: string;
indicator: string;
color: string;
selectedColor: string;
};
tabbar: {
indicator: string;
};
bursts: {
fontColor: string;
slackChannelText: string;
backgroundColor: {
default: string;
};
gradient: {
linear: string;
};
};
pinSidebarButton: {
icon: string;
background: string;
};
banner: {
info: string;
error: string;
text: string;
link: string;
};
};
// Warning: (ae-missing-release-tag) "BackstagePaletteOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BackstagePaletteOptions = PaletteOptions & PaletteAdditions;
export type BackstagePaletteOptions = PaletteOptions &
BackstagePaletteAdditions;
// Warning: (ae-missing-release-tag) "BackstageTheme" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
+9 -3
View File
@@ -20,7 +20,12 @@ import {
Palette,
} from '@material-ui/core/styles/createPalette';
type PaletteAdditions = {
/**
* Backstage specific additions to the material-ui palette.
*
* @public
*/
export type BackstagePaletteAdditions = {
status: {
ok: string;
warning: string;
@@ -74,8 +79,9 @@ type PaletteAdditions = {
};
};
export type BackstagePalette = Palette & PaletteAdditions;
export type BackstagePaletteOptions = PaletteOptions & PaletteAdditions;
export type BackstagePalette = Palette & BackstagePaletteAdditions;
export type BackstagePaletteOptions = PaletteOptions &
BackstagePaletteAdditions;
export type PageThemeSelector = {
themeId: string;