Merge branch 'backstage:master' into fix-kubernetes-exports
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.0.9-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.12.1-next.0
|
||||
- @backstage/core-app-api@1.2.1-next.0
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/theme@0.2.16
|
||||
- @backstage/plugin-permission-react@0.4.8-next.0
|
||||
|
||||
## 1.0.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,68 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.78-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-graph@0.2.24-next.0
|
||||
- @backstage/plugin-pagerduty@0.5.5-next.0
|
||||
- @backstage/plugin-techdocs-react@1.0.7-next.0
|
||||
- @backstage/plugin-scaffolder@1.9.0-next.0
|
||||
- @backstage/cli@0.21.2-next.0
|
||||
- @backstage/plugin-cost-insights@0.12.1-next.0
|
||||
- @backstage/core-components@0.12.1-next.0
|
||||
- @backstage/plugin-user-settings@0.6.0-next.0
|
||||
- @backstage/plugin-explore@0.3.43-next.0
|
||||
- @backstage/core-app-api@1.2.1-next.0
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/integration-react@1.1.7-next.0
|
||||
- @backstage/plugin-airbrake@0.3.12-next.0
|
||||
- @backstage/plugin-apache-airflow@0.2.5-next.0
|
||||
- @backstage/plugin-api-docs@0.8.12-next.0
|
||||
- @backstage/plugin-azure-devops@0.2.3-next.0
|
||||
- @backstage/plugin-azure-sites@0.1.1-next.0
|
||||
- @backstage/plugin-badges@0.2.36-next.0
|
||||
- @backstage/plugin-catalog-import@0.9.2-next.0
|
||||
- @backstage/plugin-circleci@0.3.12-next.0
|
||||
- @backstage/plugin-cloudbuild@0.3.12-next.0
|
||||
- @backstage/plugin-code-coverage@0.2.5-next.0
|
||||
- @backstage/plugin-dynatrace@1.0.2-next.0
|
||||
- @backstage/plugin-gcalendar@0.3.8-next.0
|
||||
- @backstage/plugin-gcp-projects@0.3.31-next.0
|
||||
- @backstage/plugin-github-actions@0.5.12-next.0
|
||||
- @backstage/plugin-gocd@0.1.18-next.0
|
||||
- @backstage/plugin-graphiql@0.2.44-next.0
|
||||
- @backstage/plugin-home@0.4.28-next.0
|
||||
- @backstage/plugin-jenkins@0.7.11-next.0
|
||||
- @backstage/plugin-kafka@0.3.12-next.0
|
||||
- @backstage/plugin-kubernetes@0.7.5-next.0
|
||||
- @backstage/plugin-lighthouse@0.3.12-next.0
|
||||
- @backstage/plugin-newrelic@0.3.30-next.0
|
||||
- @backstage/plugin-org@0.6.1-next.0
|
||||
- @backstage/plugin-playlist@0.1.3-next.0
|
||||
- @backstage/plugin-rollbar@0.4.12-next.0
|
||||
- @backstage/plugin-search@1.0.5-next.0
|
||||
- @backstage/plugin-sentry@0.4.5-next.0
|
||||
- @backstage/plugin-shortcuts@0.3.4-next.0
|
||||
- @backstage/plugin-stack-overflow@0.1.8-next.0
|
||||
- @backstage/plugin-tech-insights@0.3.4-next.0
|
||||
- @backstage/plugin-tech-radar@0.5.19-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.7-next.0
|
||||
- @backstage/plugin-techdocs@1.4.1-next.0
|
||||
- @backstage/plugin-todo@0.2.14-next.0
|
||||
- @backstage/plugin-catalog-react@1.2.2-next.0
|
||||
- @backstage/app-defaults@1.0.9-next.0
|
||||
- @backstage/catalog-model@1.1.4-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/theme@0.2.16
|
||||
- @backstage/plugin-catalog-common@1.0.9-next.0
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.5-next.0
|
||||
- @backstage/plugin-permission-react@0.4.8-next.0
|
||||
- @backstage/plugin-search-common@1.1.2-next.0
|
||||
- @backstage/plugin-search-react@1.2.2-next.0
|
||||
- @internal/plugin-catalog-customized@0.0.5-next.0
|
||||
|
||||
## 0.2.77
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.77",
|
||||
"version": "0.2.78-next.0",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @backstage/backend-app-api
|
||||
|
||||
## 0.2.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- d6dbf1792b: Added `lifecycleFactory` implementation.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.16.1-next.0
|
||||
- @backstage/plugin-permission-node@0.7.2-next.0
|
||||
- @backstage/backend-plugin-api@0.1.5-next.0
|
||||
- @backstage/backend-tasks@0.3.8-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 0.2.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-app-api",
|
||||
"description": "Core API used by Backstage backend apps",
|
||||
"version": "0.2.3",
|
||||
"version": "0.2.4-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# @backstage/backend-common
|
||||
|
||||
## 0.16.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- dfc8edf9c5: Internal refactor to avoid usage of deprecated symbols.
|
||||
- Updated dependencies
|
||||
- @backstage/config-loader@1.1.7-next.0
|
||||
- @backstage/integration@1.4.1-next.0
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/cli-common@0.1.10
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 0.16.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-common",
|
||||
"description": "Common functionality library for Backstage backends",
|
||||
"version": "0.16.0",
|
||||
"version": "0.16.1-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -574,4 +574,86 @@ describe('GitlabUrlReader', () => {
|
||||
).rejects.toThrow(NotModifiedError);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getGitlabFetchUrl', () => {
|
||||
beforeEach(() => {
|
||||
worker.use(
|
||||
rest.get(
|
||||
'*/api/v4/projects/group%2Fsubgroup%2Fproject',
|
||||
(_, res, ctx) => res(ctx.status(200), ctx.json({ id: 12345 })),
|
||||
),
|
||||
);
|
||||
});
|
||||
it('should fall back to getGitLabFileFetchUrl for blob urls', async () => {
|
||||
await expect(
|
||||
(gitlabProcessor as any).getGitlabFetchUrl(
|
||||
'https://gitlab.com/group/subgroup/project/-/blob/branch/my/path/to/file.yaml',
|
||||
),
|
||||
).resolves.toEqual(
|
||||
'https://gitlab.com/api/v4/projects/12345/repository/files/my%2Fpath%2Fto%2Ffile.yaml/raw?ref=branch',
|
||||
);
|
||||
});
|
||||
it('should work for job artifact urls', async () => {
|
||||
await expect(
|
||||
(gitlabProcessor as any).getGitlabFetchUrl(
|
||||
'https://gitlab.com/group/subgroup/project/-/jobs/artifacts/branch/raw/my/path/to/file.yaml?job=myJob',
|
||||
),
|
||||
).resolves.toEqual(
|
||||
'https://gitlab.com/api/v4/projects/12345/jobs/artifacts/branch/raw/my/path/to/file.yaml?job=myJob',
|
||||
);
|
||||
});
|
||||
it('should fail on unfamiliar or non-Gitlab urls', async () => {
|
||||
await expect(
|
||||
(gitlabProcessor as any).getGitlabFetchUrl(
|
||||
'https://gitlab.com/some/random/endpoint',
|
||||
),
|
||||
).rejects.toThrow('Please provide full path to yaml file from GitLab');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getGitlabArtifactFetchUrl', () => {
|
||||
beforeEach(() => {
|
||||
worker.use(
|
||||
rest.get(
|
||||
'*/api/v4/projects/group%2Fsubgroup%2Fproject',
|
||||
(_, res, ctx) => res(ctx.status(200), ctx.json({ id: 12345 })),
|
||||
),
|
||||
);
|
||||
worker.use(
|
||||
rest.get(
|
||||
'*/api/v4/projects/groupA%2Fsubgroup%2Fproject',
|
||||
(_, res, ctx) => res(ctx.status(404)),
|
||||
),
|
||||
);
|
||||
});
|
||||
it('should reject urls that are not for the job artifacts API', async () => {
|
||||
await expect(
|
||||
(gitlabProcessor as any).getGitlabArtifactFetchUrl(
|
||||
new URL('https://gitlab.com/some/url'),
|
||||
),
|
||||
).rejects.toThrow('Unable to process url as an GitLab artifact');
|
||||
});
|
||||
it('should work for job artifact urls', async () => {
|
||||
await expect(
|
||||
(gitlabProcessor as any).getGitlabArtifactFetchUrl(
|
||||
new URL(
|
||||
'https://gitlab.com/group/subgroup/project/-/jobs/artifacts/branch/raw/my/path/to/file.yaml?job=myJob',
|
||||
),
|
||||
),
|
||||
).resolves.toEqual(
|
||||
new URL(
|
||||
'https://gitlab.com/api/v4/projects/12345/jobs/artifacts/branch/raw/my/path/to/file.yaml?job=myJob',
|
||||
),
|
||||
);
|
||||
});
|
||||
it('errors in mapping the project ID should be captured', async () => {
|
||||
await expect(
|
||||
(gitlabProcessor as any).getGitlabArtifactFetchUrl(
|
||||
new URL(
|
||||
'https://gitlab.com/groupA/subgroup/project/-/jobs/artifacts/branch/raw/my/path/to/file.yaml?job=myJob',
|
||||
),
|
||||
),
|
||||
).rejects.toThrow(/^Unable to translate GitLab artifact URL:/);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -73,7 +73,7 @@ export class GitlabUrlReader implements UrlReader {
|
||||
options?: ReadUrlOptions,
|
||||
): Promise<ReadUrlResponse> {
|
||||
const { etag, signal } = options ?? {};
|
||||
const builtUrl = await getGitLabFileFetchUrl(url, this.integration.config);
|
||||
const builtUrl = await this.getGitlabFetchUrl(url);
|
||||
|
||||
let response: Response;
|
||||
try {
|
||||
@@ -256,4 +256,66 @@ export class GitlabUrlReader implements UrlReader {
|
||||
const { host, token } = this.integration.config;
|
||||
return `gitlab{host=${host},authed=${Boolean(token)}}`;
|
||||
}
|
||||
|
||||
private async getGitlabFetchUrl(target: string): Promise<string> {
|
||||
// If the target is for a job artifact then go down that path
|
||||
const targetUrl = new URL(target);
|
||||
if (targetUrl.pathname.includes('/-/jobs/artifacts/')) {
|
||||
return this.getGitlabArtifactFetchUrl(targetUrl).then(value =>
|
||||
value.toString(),
|
||||
);
|
||||
}
|
||||
// Default to the old behavior of assuming the url is for a file
|
||||
return getGitLabFileFetchUrl(target, this.integration.config);
|
||||
}
|
||||
|
||||
// convert urls of the form:
|
||||
// https://example.com/<namespace>/<project>/-/jobs/artifacts/<ref>/raw/<path_to_file>?job=<job_name>
|
||||
// to urls of the form:
|
||||
// https://example.com/api/v4/projects/:id/jobs/artifacts/:ref_name/raw/*artifact_path?job=<job_name>
|
||||
private async getGitlabArtifactFetchUrl(target: URL): Promise<URL> {
|
||||
if (!target.pathname.includes('/-/jobs/artifacts/')) {
|
||||
throw new Error('Unable to process url as an GitLab artifact');
|
||||
}
|
||||
try {
|
||||
const [namespaceAndProject, ref] =
|
||||
target.pathname.split('/-/jobs/artifacts/');
|
||||
const projectPath = new URL(target);
|
||||
projectPath.pathname = namespaceAndProject;
|
||||
const projectId = await this.resolveProjectToId(projectPath);
|
||||
const relativePath = getGitLabIntegrationRelativePath(
|
||||
this.integration.config,
|
||||
);
|
||||
const newUrl = new URL(target);
|
||||
newUrl.pathname = `${relativePath}/api/v4/projects/${projectId}/jobs/artifacts/${ref}`;
|
||||
return newUrl;
|
||||
} catch (e) {
|
||||
throw new Error(
|
||||
`Unable to translate GitLab artifact URL: ${target}, ${e}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private async resolveProjectToId(pathToProject: URL): Promise<number> {
|
||||
let project = pathToProject.pathname;
|
||||
// Check relative path exist and remove it if so
|
||||
const relativePath = getGitLabIntegrationRelativePath(
|
||||
this.integration.config,
|
||||
);
|
||||
if (relativePath) {
|
||||
project = project.replace(relativePath, '');
|
||||
}
|
||||
// Trim an initial / if it exists
|
||||
project = project.replace(/^\//, '');
|
||||
const result = await fetch(
|
||||
`${
|
||||
pathToProject.origin
|
||||
}${relativePath}/api/v4/projects/${encodeURIComponent(project)}`,
|
||||
);
|
||||
const data = await result.json();
|
||||
if (!result.ok) {
|
||||
throw new Error(`Gitlab error: ${data.error}, ${data.error_description}`);
|
||||
}
|
||||
return Number(data.id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ export class Git {
|
||||
});
|
||||
} catch (ex) {
|
||||
this.config.logger?.error(
|
||||
`Failed to fetch repo {dir=${dir},origin=${origin}}`,
|
||||
`Failed to fetch repo {dir=${dir},remote=${remote}}`,
|
||||
);
|
||||
if (ex.data) {
|
||||
throw new Error(`${ex.message} {data=${JSON.stringify(ex.data)}}`);
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @backstage/backend-defaults
|
||||
|
||||
## 0.1.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- d6dbf1792b: Added `lifecycleFactory` to default service factories.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-app-api@0.2.4-next.0
|
||||
- @backstage/backend-plugin-api@0.1.5-next.0
|
||||
|
||||
## 0.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-defaults",
|
||||
"description": "Backend defaults used by Backstage backend apps",
|
||||
"version": "0.1.3",
|
||||
"version": "0.1.4-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# example-backend-next
|
||||
|
||||
## 0.0.6-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-backend@1.8.1-next.0
|
||||
- @backstage/plugin-catalog-backend@1.6.0-next.0
|
||||
- @backstage/plugin-app-backend@0.3.39-next.0
|
||||
- @backstage/backend-defaults@0.1.4-next.0
|
||||
|
||||
## 0.0.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend-next",
|
||||
"version": "0.0.5",
|
||||
"version": "0.0.6-next.0",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/backend-plugin-api
|
||||
|
||||
## 0.1.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- d6dbf1792b: Added initial support for registering shutdown hooks via `lifecycleServiceRef`.
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.16.1-next.0
|
||||
- @backstage/plugin-permission-common@0.7.2-next.0
|
||||
- @backstage/backend-tasks@0.3.8-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
|
||||
## 0.1.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-plugin-api",
|
||||
"description": "Core API used by Backstage backend plugins",
|
||||
"version": "0.1.4",
|
||||
"version": "0.1.5-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/backend-tasks
|
||||
|
||||
## 0.3.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.16.1-next.0
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 0.3.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-tasks",
|
||||
"description": "Common distributed task management library for Backstage backends",
|
||||
"version": "0.3.7",
|
||||
"version": "0.3.8-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @backstage/backend-test-utils
|
||||
|
||||
## 0.1.31-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/cli@0.21.2-next.0
|
||||
- @backstage/backend-app-api@0.2.4-next.0
|
||||
- @backstage/backend-common@0.16.1-next.0
|
||||
- @backstage/backend-plugin-api@0.1.5-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
|
||||
## 0.1.30
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-test-utils",
|
||||
"description": "Test helpers library for Backstage backends",
|
||||
"version": "0.1.30",
|
||||
"version": "0.1.31-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,51 @@
|
||||
# example-backend
|
||||
|
||||
## 0.2.78-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-scaffolder-backend@1.8.1-next.0
|
||||
- @backstage/catalog-client@1.2.0-next.0
|
||||
- @backstage/plugin-catalog-backend@1.6.0-next.0
|
||||
- @backstage/plugin-events-backend@0.2.0-next.0
|
||||
- @backstage/plugin-search-backend-node@1.0.5-next.0
|
||||
- @backstage/plugin-events-node@0.2.0-next.0
|
||||
- @backstage/backend-common@0.16.1-next.0
|
||||
- @backstage/integration@1.4.1-next.0
|
||||
- @backstage/plugin-app-backend@0.3.39-next.0
|
||||
- @backstage/plugin-auth-backend@0.17.2-next.0
|
||||
- @backstage/plugin-auth-node@0.2.8-next.0
|
||||
- @backstage/plugin-azure-devops-backend@0.3.18-next.0
|
||||
- @backstage/plugin-azure-sites-backend@0.1.1-next.0
|
||||
- @backstage/plugin-code-coverage-backend@0.2.5-next.0
|
||||
- @backstage/plugin-graphql-backend@0.1.29-next.0
|
||||
- @backstage/plugin-jenkins-backend@0.1.29-next.0
|
||||
- @backstage/plugin-permission-backend@0.5.14-next.0
|
||||
- @backstage/plugin-permission-common@0.7.2-next.0
|
||||
- @backstage/plugin-permission-node@0.7.2-next.0
|
||||
- @backstage/plugin-playlist-backend@0.2.2-next.0
|
||||
- @backstage/plugin-proxy-backend@0.2.33-next.0
|
||||
- @backstage/plugin-rollbar-backend@0.1.36-next.0
|
||||
- @backstage/plugin-techdocs-backend@1.4.2-next.0
|
||||
- @backstage/plugin-todo-backend@0.1.36-next.0
|
||||
- @backstage/plugin-kubernetes-backend@0.8.1-next.0
|
||||
- example-app@0.2.78-next.0
|
||||
- @backstage/plugin-scaffolder-backend-module-rails@0.4.7-next.0
|
||||
- @backstage/plugin-badges-backend@0.1.33-next.0
|
||||
- @backstage/plugin-catalog-node@1.2.2-next.0
|
||||
- @backstage/plugin-tech-insights-backend@0.5.5-next.0
|
||||
- @backstage/backend-tasks@0.3.8-next.0
|
||||
- @backstage/catalog-model@1.1.4-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/plugin-kafka-backend@0.2.32-next.0
|
||||
- @backstage/plugin-search-backend@1.1.2-next.0
|
||||
- @backstage/plugin-search-backend-module-elasticsearch@1.0.5-next.0
|
||||
- @backstage/plugin-search-backend-module-pg@0.4.3-next.0
|
||||
- @backstage/plugin-search-common@1.1.2-next.0
|
||||
- @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.23-next.0
|
||||
- @backstage/plugin-tech-insights-node@0.3.7-next.0
|
||||
|
||||
## 0.2.77
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend",
|
||||
"version": "0.2.77",
|
||||
"version": "0.2.78-next.0",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
# @backstage/catalog-client
|
||||
|
||||
## 1.2.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 00d90b520a: **BREAKING PRODUCERS**: Added a new `getEntitiesByRefs` endpoint to `CatalogApi`, for efficient batch fetching of entities by ref.
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/catalog-model@1.1.4-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 1.1.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/catalog-client",
|
||||
"description": "An isomorphic client for the catalog backend",
|
||||
"version": "1.1.2",
|
||||
"version": "1.2.0-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @backstage/catalog-model
|
||||
|
||||
## 1.1.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 1.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/catalog-model",
|
||||
"description": "Types and validators that help describe the model of a Backstage Catalog",
|
||||
"version": "1.1.3",
|
||||
"version": "1.1.4-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @backstage/cli
|
||||
|
||||
## 0.21.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 91d050c140: changed tests created by create-plugin to follow eslint-rules best practices particularly testing-library/prefer-screen-queries and testing-library/render-result-naming-convention
|
||||
- 459a3457e1: Bump `msw` version in default plugin/app templates
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/config-loader@1.1.7-next.0
|
||||
- @backstage/release-manifests@0.0.8-next.0
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/cli-common@0.1.10
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 0.21.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/cli",
|
||||
"description": "CLI for developing Backstage plugins and apps",
|
||||
"version": "0.21.0",
|
||||
"version": "0.21.2-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/config-loader
|
||||
|
||||
## 1.1.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/cli-common@0.1.10
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 1.1.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/config-loader",
|
||||
"description": "Config loading functionality used by Backstage backend, and CLI",
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.7-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.cjs.js",
|
||||
@@ -45,7 +45,7 @@
|
||||
"json-schema-merge-allof": "^0.8.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
"node-fetch": "^2.6.7",
|
||||
"typescript-json-schema": "^0.54.0",
|
||||
"typescript-json-schema": "^0.55.0",
|
||||
"yaml": "^2.0.0",
|
||||
"yup": "^0.32.9"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @backstage/config
|
||||
|
||||
## 1.0.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/types@1.0.2-next.0
|
||||
|
||||
## 1.0.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/config",
|
||||
"description": "Config API used by Backstage core, backend, and CLI",
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.5-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.cjs.js",
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @backstage/core-app-api
|
||||
|
||||
## 1.2.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- 19356df560: Updated dependency `zen-observable` to `^0.9.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/version-bridge@1.0.2
|
||||
|
||||
## 1.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/core-app-api",
|
||||
"description": "Core app API used by Backstage apps",
|
||||
"version": "1.2.0",
|
||||
"version": "1.2.1-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -89,6 +89,6 @@ describe('AppIdentityProxy', () => {
|
||||
});
|
||||
|
||||
await proxy.signOut();
|
||||
expect(location.href).toBe('/foo');
|
||||
expect(window.location.href).toBe('/foo');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -124,6 +124,6 @@ export class AppIdentityProxy implements IdentityApi {
|
||||
|
||||
async signOut(): Promise<void> {
|
||||
await this.waitForTarget.then(target => target.signOut());
|
||||
location.href = this.signOutTargetUrl;
|
||||
window.location.href = this.signOutTargetUrl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ export class DefaultAuthConnector<AuthSession>
|
||||
const scope = this.joinScopesFunc(scopes);
|
||||
const popupUrl = await this.buildUrl('/start', {
|
||||
scope,
|
||||
origin: location.origin,
|
||||
origin: window.location.origin,
|
||||
});
|
||||
|
||||
const payload = await showLoginPopup({
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
import React from 'react';
|
||||
import { FeatureFlagged } from './FeatureFlagged';
|
||||
import { render } from '@testing-library/react';
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import { LocalStorageFeatureFlags } from '../apis';
|
||||
import { TestApiProvider } from '@backstage/test-utils';
|
||||
import { featureFlagsApiRef } from '@backstage/core-plugin-api';
|
||||
@@ -35,7 +35,7 @@ describe('FeatureFlagged', () => {
|
||||
.spyOn(mockFeatureFlagsApi, 'isActive')
|
||||
.mockImplementation(() => true);
|
||||
|
||||
const { queryByText } = render(
|
||||
render(
|
||||
<Wrapper>
|
||||
<div>
|
||||
<FeatureFlagged with="hello-flag">
|
||||
@@ -45,14 +45,14 @@ describe('FeatureFlagged', () => {
|
||||
</Wrapper>,
|
||||
);
|
||||
|
||||
expect(queryByText('BACKSTAGE!')).toBeInTheDocument();
|
||||
expect(screen.getByText('BACKSTAGE!')).toBeInTheDocument();
|
||||
});
|
||||
it('should not render contents when the feature flag is disabled', async () => {
|
||||
jest
|
||||
.spyOn(mockFeatureFlagsApi, 'isActive')
|
||||
.mockImplementation(() => false);
|
||||
|
||||
const { queryByText } = render(
|
||||
render(
|
||||
<Wrapper>
|
||||
<div>
|
||||
<FeatureFlagged with="hello-flag">
|
||||
@@ -62,7 +62,7 @@ describe('FeatureFlagged', () => {
|
||||
</Wrapper>,
|
||||
);
|
||||
|
||||
expect(queryByText('BACKSTAGE!')).not.toBeInTheDocument();
|
||||
expect(screen.queryByText('BACKSTAGE!')).not.toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
describe('without', () => {
|
||||
@@ -71,7 +71,7 @@ describe('FeatureFlagged', () => {
|
||||
.spyOn(mockFeatureFlagsApi, 'isActive')
|
||||
.mockImplementation(() => true);
|
||||
|
||||
const { queryByText } = render(
|
||||
render(
|
||||
<Wrapper>
|
||||
<div>
|
||||
<FeatureFlagged without="hello-flag">
|
||||
@@ -81,14 +81,14 @@ describe('FeatureFlagged', () => {
|
||||
</Wrapper>,
|
||||
);
|
||||
|
||||
expect(queryByText('BACKSTAGE!')).not.toBeInTheDocument();
|
||||
expect(screen.queryByText('BACKSTAGE!')).not.toBeInTheDocument();
|
||||
});
|
||||
it('should render contents when the feature flag is disabled', async () => {
|
||||
jest
|
||||
.spyOn(mockFeatureFlagsApi, 'isActive')
|
||||
.mockImplementation(() => false);
|
||||
|
||||
const { queryByText } = render(
|
||||
render(
|
||||
<Wrapper>
|
||||
<div>
|
||||
<FeatureFlagged without="hello-flag">
|
||||
@@ -98,7 +98,7 @@ describe('FeatureFlagged', () => {
|
||||
</Wrapper>,
|
||||
);
|
||||
|
||||
expect(queryByText('BACKSTAGE!')).toBeInTheDocument();
|
||||
expect(screen.getByText('BACKSTAGE!')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @backstage/core-components
|
||||
|
||||
## 0.12.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- ea4a5be8f3: Create a variable for minimum height and add a prop named 'fit' for determining if the graph height should grow or be contained.
|
||||
- 64a579a998: Add items prop to SupportButton. This prop can be used to override the items that would otherwise be grabbed from the config.
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- 19356df560: Updated dependency `zen-observable` to `^0.9.0`.
|
||||
- 17a8e32f39: Updated dependency `rc-progress` to `3.4.1`.
|
||||
- dfc8edf9c5: Internal refactor to avoid usage of deprecated symbols.
|
||||
- Updated dependencies
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
- @backstage/theme@0.2.16
|
||||
- @backstage/version-bridge@1.0.2
|
||||
|
||||
## 0.12.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/core-components",
|
||||
"description": "Core components used by Backstage plugins and apps",
|
||||
"version": "0.12.0",
|
||||
"version": "0.12.1-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { screen } from '@testing-library/react';
|
||||
import { AlertDisplay } from './AlertDisplay';
|
||||
import { alertApiRef } from '@backstage/core-plugin-api';
|
||||
import { AlertApiForwarder } from '@backstage/core-app-api';
|
||||
@@ -34,7 +35,7 @@ describe('<AlertDisplay />', () => {
|
||||
});
|
||||
|
||||
it('renders with message', async () => {
|
||||
const { queryByText } = await renderInTestApp(
|
||||
await renderInTestApp(
|
||||
<TestApiProvider
|
||||
apis={[
|
||||
[
|
||||
@@ -52,7 +53,7 @@ describe('<AlertDisplay />', () => {
|
||||
</TestApiProvider>,
|
||||
);
|
||||
|
||||
expect(queryByText(TEST_MESSAGE)).toBeInTheDocument();
|
||||
expect(screen.getByText(TEST_MESSAGE)).toBeInTheDocument();
|
||||
});
|
||||
|
||||
describe('with multiple messages', () => {
|
||||
@@ -73,23 +74,23 @@ describe('<AlertDisplay />', () => {
|
||||
] as const;
|
||||
|
||||
it('renders first message', async () => {
|
||||
const { queryByText } = await renderInTestApp(
|
||||
await renderInTestApp(
|
||||
<TestApiProvider apis={apis}>
|
||||
<AlertDisplay />
|
||||
</TestApiProvider>,
|
||||
);
|
||||
|
||||
expect(queryByText('message one')).toBeInTheDocument();
|
||||
expect(screen.getByText('message one')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('renders a count of remaining messages', async () => {
|
||||
const { queryByText } = await renderInTestApp(
|
||||
await renderInTestApp(
|
||||
<TestApiProvider apis={apis}>
|
||||
<AlertDisplay />
|
||||
</TestApiProvider>,
|
||||
);
|
||||
|
||||
expect(queryByText('(2 older messages)')).toBeInTheDocument();
|
||||
expect(screen.getByText('(2 older messages)')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
+2
-2
@@ -155,7 +155,7 @@ function useScrollDistance(
|
||||
return [scrollLeft, scrollRight];
|
||||
}
|
||||
|
||||
// Used to animate scrolling. Returns a single setScrollTarger function, when called with e.g. 200,
|
||||
// Used to animate scrolling. Returns a single setScrollTarget function, when called with e.g. 200,
|
||||
// the element pointer to by the ref will be scrolled 200px forwards over time.
|
||||
function useSmoothScroll(
|
||||
ref: React.MutableRefObject<HTMLElement | undefined>,
|
||||
@@ -169,7 +169,7 @@ function useSmoothScroll(
|
||||
return;
|
||||
}
|
||||
|
||||
const startTime = performance.now();
|
||||
const startTime = window.performance.now();
|
||||
const id = requestAnimationFrame(frameTime => {
|
||||
if (!ref.current) {
|
||||
return;
|
||||
|
||||
@@ -60,11 +60,11 @@ describe('RealLogViewer', () => {
|
||||
await userEvent.keyboard('{shift>}{enter}{/shift}');
|
||||
expect(rendered.getByText('3/3')).toBeInTheDocument();
|
||||
|
||||
expect(rendered.queryByText('Some Log Line')).toBeInTheDocument();
|
||||
expect(rendered.getByText('Some Log Line')).toBeInTheDocument();
|
||||
await userEvent.keyboard('{meta>}{enter}{/meta}');
|
||||
expect(rendered.queryByText('Some Log Line')).not.toBeInTheDocument();
|
||||
await userEvent.keyboard('{meta>}{enter}{/meta}');
|
||||
expect(rendered.queryByText('Some Log Line')).toBeInTheDocument();
|
||||
expect(rendered.getByText('Some Log Line')).toBeInTheDocument();
|
||||
|
||||
// Tab down to line #2 and click
|
||||
await userEvent.tab();
|
||||
|
||||
@@ -14,15 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { fireEvent, screen } from '@testing-library/react';
|
||||
import { configApiRef } from '@backstage/core-plugin-api';
|
||||
import {
|
||||
MockConfigApi,
|
||||
renderInTestApp,
|
||||
TestApiProvider,
|
||||
} from '@backstage/test-utils';
|
||||
import { act, fireEvent, screen } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
import { SupportButton } from './SupportButton';
|
||||
import { configApiRef } from '@backstage/core-plugin-api';
|
||||
|
||||
const configApi = new MockConfigApi({
|
||||
app: {
|
||||
@@ -45,8 +45,9 @@ const POPOVER_ID = 'support-button-popover';
|
||||
describe('<SupportButton />', () => {
|
||||
it('renders without exploding', async () => {
|
||||
await renderInTestApp(<SupportButton />);
|
||||
|
||||
expect(screen.getByTestId(SUPPORT_BUTTON_ID)).toBeInTheDocument();
|
||||
await expect(
|
||||
screen.findByTestId(SUPPORT_BUTTON_ID),
|
||||
).resolves.toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('supports passing a title', async () => {
|
||||
@@ -96,11 +97,13 @@ describe('<SupportButton />', () => {
|
||||
it('shows popover on click', async () => {
|
||||
await renderInTestApp(<SupportButton />);
|
||||
|
||||
const supportButton = screen.getByTestId(SUPPORT_BUTTON_ID);
|
||||
expect(supportButton).toBeInTheDocument();
|
||||
await expect(
|
||||
screen.findByTestId(SUPPORT_BUTTON_ID),
|
||||
).resolves.toBeInTheDocument();
|
||||
await act(async () => {
|
||||
fireEvent.click(screen.getByTestId(SUPPORT_BUTTON_ID));
|
||||
});
|
||||
|
||||
fireEvent.click(supportButton);
|
||||
|
||||
expect(screen.getByTestId(POPOVER_ID)).toBeInTheDocument();
|
||||
await expect(screen.findByTestId(POPOVER_ID)).resolves.toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { renderInTestApp } from '@backstage/test-utils';
|
||||
import { act, fireEvent } from '@testing-library/react';
|
||||
import React from 'react';
|
||||
@@ -65,14 +66,14 @@ describe('RoutedTabs', () => {
|
||||
expect(rendered.queryByText('tabbed-test-content')).not.toBeInTheDocument();
|
||||
|
||||
expect(rendered.getByText('tabbed-test-title-2')).toBeInTheDocument();
|
||||
expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
expect(rendered.getByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
|
||||
const thirdTab = rendered.queryAllByRole('tab')[2];
|
||||
act(() => {
|
||||
fireEvent.click(thirdTab);
|
||||
});
|
||||
expect(rendered.getByText('tabbed-test-title-3')).toBeInTheDocument();
|
||||
expect(rendered.queryByText('tabbed-test-content-3')).toBeInTheDocument();
|
||||
expect(rendered.getByText('tabbed-test-content-3')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
describe('correctly delegates nested links', () => {
|
||||
@@ -113,9 +114,9 @@ describe('RoutedTabs', () => {
|
||||
expect(
|
||||
rendered.queryByText('tabbed-test-content'),
|
||||
).not.toBeInTheDocument();
|
||||
expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
expect(rendered.getByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
expect(
|
||||
rendered.queryByText('tabbed-test-nested-content-2'),
|
||||
rendered.getByText('tabbed-test-nested-content-2'),
|
||||
).toBeInTheDocument();
|
||||
});
|
||||
|
||||
@@ -125,7 +126,7 @@ describe('RoutedTabs', () => {
|
||||
expect(
|
||||
rendered.queryByText('tabbed-test-content'),
|
||||
).not.toBeInTheDocument();
|
||||
expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
expect(rendered.getByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
expect(
|
||||
rendered.queryByText('tabbed-test-nested-content-2'),
|
||||
).not.toBeInTheDocument();
|
||||
@@ -142,7 +143,7 @@ describe('RoutedTabs', () => {
|
||||
expect(rendered.queryByText('tabbed-test-content')).not.toBeInTheDocument();
|
||||
|
||||
expect(rendered.getByText('tabbed-test-title-2')).toBeInTheDocument();
|
||||
expect(rendered.queryByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
expect(rendered.getByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('redirects to the top level when no route is matching the url', async () => {
|
||||
|
||||
@@ -79,6 +79,6 @@ describe('TabbedLayout', () => {
|
||||
expect(queryByText('tabbed-test-content')).not.toBeInTheDocument();
|
||||
|
||||
expect(getByText('tabbed-test-title-2')).toBeInTheDocument();
|
||||
expect(queryByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
expect(getByText('tabbed-test-content-2')).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -43,7 +43,7 @@ describe('<ComponentContextMenu />', () => {
|
||||
await fireEvent.click(rendered.queryByText('Some label') as Node);
|
||||
expect(onClickFunction).toHaveBeenCalled();
|
||||
// We do not expect the dropdown to disappear after click
|
||||
expect(rendered.queryByText('Some label')).toBeInTheDocument();
|
||||
expect(rendered.getByText('Some label')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('Disabled', async () => {
|
||||
@@ -80,7 +80,7 @@ describe('<ComponentContextMenu />', () => {
|
||||
await fireEvent.click(rendered.queryByText('Secondary label') as Node);
|
||||
expect(onClickFunction).toHaveBeenCalled();
|
||||
// We do not expect the dropdown to disappear after click
|
||||
expect(rendered.queryByText('Some label')).toBeInTheDocument();
|
||||
expect(rendered.getByText('Some label')).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it('should close when hitting escape', async () => {
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/core-plugin-api
|
||||
|
||||
## 1.1.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- 19356df560: Updated dependency `zen-observable` to `^0.9.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/version-bridge@1.0.2
|
||||
|
||||
## 1.1.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/core-plugin-api",
|
||||
"description": "Core API used by Backstage plugins",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @backstage/create-app
|
||||
|
||||
## 0.4.35-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Bumped create-app version.
|
||||
- Updated dependencies
|
||||
- @backstage/cli-common@0.1.10
|
||||
|
||||
## 0.4.34
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/create-app",
|
||||
"description": "A CLI that helps you create your own Backstage app",
|
||||
"version": "0.4.34",
|
||||
"version": "0.4.35-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
# @backstage/dev-utils
|
||||
|
||||
## 1.0.9-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 19356df560: Updated dependency `zen-observable` to `^0.9.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.12.1-next.0
|
||||
- @backstage/core-app-api@1.2.1-next.0
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/integration-react@1.1.7-next.0
|
||||
- @backstage/test-utils@1.2.3-next.0
|
||||
- @backstage/plugin-catalog-react@1.2.2-next.0
|
||||
- @backstage/app-defaults@1.0.9-next.0
|
||||
- @backstage/catalog-model@1.1.4-next.0
|
||||
- @backstage/theme@0.2.16
|
||||
|
||||
## 1.0.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/dev-utils",
|
||||
"description": "Utilities for developing Backstage plugins.",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# @backstage/errors
|
||||
|
||||
## 1.1.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/types@1.0.2-next.0
|
||||
|
||||
## 1.1.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/errors",
|
||||
"description": "Common utilities for error handling within Backstage",
|
||||
"version": "1.1.3",
|
||||
"version": "1.1.4-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @backstage/integration-react
|
||||
|
||||
## 1.1.7-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.12.1-next.0
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/integration@1.4.1-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/theme@0.2.16
|
||||
|
||||
## 1.1.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/integration-react",
|
||||
"description": "Frontend package for managing integrations towards external systems",
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.7-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# @backstage/integration
|
||||
|
||||
## 1.4.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- 34b039ca9f: Added `integrations.github.apps.allowedInstallationOwners` to the configuration schema.
|
||||
- Updated dependencies
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
|
||||
## 1.4.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/integration",
|
||||
"description": "Helpers for managing integrations towards external systems",
|
||||
"version": "1.4.0",
|
||||
"version": "1.4.1-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @backstage/release-manifests
|
||||
|
||||
## 0.0.8-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
|
||||
## 0.0.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/release-manifests",
|
||||
"description": "Helper library for receiving release manifests",
|
||||
"version": "0.0.7",
|
||||
"version": "0.0.8-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# @backstage/repo-tools
|
||||
|
||||
## 0.1.0-next.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- 99713fd671: Introducing repo-tools package
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.1.4-next.0
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/repo-tools",
|
||||
"description": "CLI for Backstage repo tooling ",
|
||||
"version": "0.0.0",
|
||||
"version": "0.1.0-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,24 @@
|
||||
# techdocs-cli-embedded-app
|
||||
|
||||
## 0.2.77-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-techdocs-react@1.0.7-next.0
|
||||
- @backstage/cli@0.21.2-next.0
|
||||
- @backstage/core-components@0.12.1-next.0
|
||||
- @backstage/core-app-api@1.2.1-next.0
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/integration-react@1.1.7-next.0
|
||||
- @backstage/test-utils@1.2.3-next.0
|
||||
- @backstage/plugin-techdocs@1.4.1-next.0
|
||||
- @backstage/plugin-catalog@1.6.2-next.0
|
||||
- @backstage/app-defaults@1.0.9-next.0
|
||||
- @backstage/catalog-model@1.1.4-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/theme@0.2.16
|
||||
|
||||
## 0.2.76
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "techdocs-cli-embedded-app",
|
||||
"version": "0.2.76",
|
||||
"version": "0.2.77-next.0",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @techdocs/cli
|
||||
|
||||
## 1.2.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.16.1-next.0
|
||||
- @backstage/catalog-model@1.1.4-next.0
|
||||
- @backstage/cli-common@0.1.10
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/plugin-techdocs-node@1.4.3-next.0
|
||||
|
||||
## 1.2.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@techdocs/cli",
|
||||
"description": "Utility CLI for managing TechDocs sites in Backstage.",
|
||||
"version": "1.2.3",
|
||||
"version": "1.2.4-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @backstage/test-utils
|
||||
|
||||
## 1.2.3-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
||||
- 19356df560: Updated dependency `zen-observable` to `^0.9.0`.
|
||||
- Updated dependencies
|
||||
- @backstage/core-app-api@1.2.1-next.0
|
||||
- @backstage/core-plugin-api@1.1.1-next.0
|
||||
- @backstage/plugin-permission-common@0.7.2-next.0
|
||||
- @backstage/types@1.0.2-next.0
|
||||
- @backstage/config@1.0.5-next.0
|
||||
- @backstage/theme@0.2.16
|
||||
- @backstage/plugin-permission-react@0.4.8-next.0
|
||||
|
||||
## 1.2.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -25,6 +25,7 @@ import { JsonObject } from '@backstage/types';
|
||||
import { JsonValue } from '@backstage/types';
|
||||
import { Observable } from '@backstage/types';
|
||||
import { PermissionApi } from '@backstage/plugin-permission-react';
|
||||
import { PropsWithChildren } from 'react';
|
||||
import { ReactElement } from 'react';
|
||||
import { ReactNode } from 'react';
|
||||
import { RenderOptions } from '@testing-library/react';
|
||||
@@ -165,6 +166,11 @@ export class MockPermissionApi implements PermissionApi {
|
||||
): Promise<EvaluatePermissionResponse>;
|
||||
}
|
||||
|
||||
// @alpha
|
||||
export const MockPluginProvider: ({
|
||||
children,
|
||||
}: PropsWithChildren<{}>) => JSX.Element;
|
||||
|
||||
// @public
|
||||
export class MockStorageApi implements StorageApi {
|
||||
// (undocumented)
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
{
|
||||
"name": "@backstage/test-utils",
|
||||
"description": "Utilities to test Backstage plugins and apps.",
|
||||
"version": "1.2.2",
|
||||
"version": "1.2.3-next.0",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
"types": "dist/index.d.ts"
|
||||
"types": "dist/index.d.ts",
|
||||
"alphaTypes": "dist/index.alpha.d.ts"
|
||||
},
|
||||
"backstage": {
|
||||
"role": "web-library"
|
||||
@@ -23,7 +24,7 @@
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"scripts": {
|
||||
"build": "backstage-cli package build",
|
||||
"build": "backstage-cli package build --experimental-type-build",
|
||||
"lint": "backstage-cli package lint",
|
||||
"test": "backstage-cli package test",
|
||||
"prepack": "backstage-cli package prepack",
|
||||
@@ -60,6 +61,7 @@
|
||||
"msw": "^0.49.0"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
"dist",
|
||||
"alpha"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ export {
|
||||
export type { TestAppOptions } from './appWrappers';
|
||||
export * from './msw';
|
||||
export * from './logCollector';
|
||||
export * from './providers';
|
||||
export * from './testingLibrary';
|
||||
export { TestApiProvider, TestApiRegistry } from './TestApiProvider';
|
||||
export type { TestApiProviderProps } from './TestApiProvider';
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2020 The Backstage Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import React, { PropsWithChildren } from 'react';
|
||||
import { createPlugin, PluginProvider } from '@backstage/core-plugin-api';
|
||||
|
||||
/**
|
||||
* Mock for PluginProvider to use in unit tests
|
||||
* @alpha
|
||||
*/
|
||||
export const MockPluginProvider = ({ children }: PropsWithChildren<{}>) => {
|
||||
type TestInputPluginOptions = {};
|
||||
type TestPluginOptions = {};
|
||||
const plugin = createPlugin({
|
||||
id: 'my-plugin',
|
||||
__experimentalConfigure(_: TestInputPluginOptions): TestPluginOptions {
|
||||
return {};
|
||||
},
|
||||
});
|
||||
|
||||
return <PluginProvider plugin={plugin}>{children}</PluginProvider>;
|
||||
};
|
||||
@@ -1,5 +1,11 @@
|
||||
# @backstage/types
|
||||
|
||||
## 1.0.2-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 19356df560: Updated dependency `zen-observable` to `^0.9.0`.
|
||||
|
||||
## 1.0.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/types",
|
||||
"description": "Common TypeScript types used within Backstage",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -19,7 +19,9 @@ function getGlobalObject() {
|
||||
if (typeof window !== 'undefined' && window.Math === Math) {
|
||||
return window;
|
||||
}
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
if (typeof self !== 'undefined' && self.Math === Math) {
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
return self;
|
||||
}
|
||||
// eslint-disable-next-line no-new-func
|
||||
|
||||
Reference in New Issue
Block a user