@backstage/create-app 0.4.12 → 0.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,149 @@
1
1
  # @backstage/create-app
2
2
 
3
+ ## 0.4.13
4
+
5
+ ### Patch Changes
6
+
7
+ - fb08e2f285: Updated the configuration of the `app-backend` plugin to enable the static asset store by passing on `database` from the plugin environment to `createRouter`.
8
+
9
+ To apply this change to an existing app, make the following change to `packages/backend/src/plugins/app.ts`:
10
+
11
+ ```diff
12
+ export default async function createPlugin({
13
+ logger,
14
+ config,
15
+ + database,
16
+ }: PluginEnvironment): Promise<Router> {
17
+ return await createRouter({
18
+ logger,
19
+ config,
20
+ + database,
21
+ appPackageName: 'app',
22
+ });
23
+ }
24
+ ```
25
+
26
+ - 7ba416be78: You can now add `SidebarGroup`s to the current `Sidebar`. This will not affect how the current sidebar is displayed, but allows a customization on how the `MobileSidebar` on smaller screens will look like. A `SidebarGroup` will be displayed with the given icon in the `MobileSidebar`.
27
+
28
+ A `SidebarGroup` can either link to an existing page (e.g. `/search` or `/settings`) or wrap components, which will be displayed in a full-screen overlay menu (e.g. `Menu`).
29
+
30
+ ```diff
31
+ <Sidebar>
32
+ <SidebarLogo />
33
+ + <SidebarGroup label="Search" icon={<SearchIcon />} to="/search">
34
+ <SidebarSearchModal />
35
+ + </SidebarGroup>
36
+ <SidebarDivider />
37
+ + <SidebarGroup label="Menu" icon={<MenuIcon />}>
38
+ <SidebarItem icon={HomeIcon} to="catalog" text="Home" />
39
+ <SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
40
+ <SidebarDivider />
41
+ <SidebarScrollWrapper>
42
+ <SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
43
+ </SidebarScrollWrapper>
44
+ + </SidebarGroup>
45
+ <SidebarSpace />
46
+ <SidebarDivider />
47
+ + <SidebarGroup
48
+ + label="Settings"
49
+ + icon={<UserSettingsSignInAvatar />}
50
+ + to="/settings"
51
+ + >
52
+ <SidebarSettings />
53
+ + </SidebarGroup>
54
+ </Sidebar>
55
+ ```
56
+
57
+ Additionally, you can order the groups differently in the `MobileSidebar` than in the usual `Sidebar` simply by giving a group a priority. The groups will be displayed in descending order from left to right.
58
+
59
+ ```diff
60
+ <SidebarGroup
61
+ label="Settings"
62
+ icon={<UserSettingsSignInAvatar />}
63
+ to="/settings"
64
+ + priority={1}
65
+ >
66
+ <SidebarSettings />
67
+ </SidebarGroup>
68
+ ```
69
+
70
+ If you decide against adding `SidebarGroup`s to your `Sidebar` the `MobileSidebar` will contain one default menu item, which will open a full-screen overlay menu displaying all the content of the current `Sidebar`.
71
+
72
+ More information on the `SidebarGroup` & the `MobileSidebar` component can be found in the changeset for the `core-components`.
73
+
74
+ - 08fa6a604a: The app template has been updated to add an explicit dependency on `typescript` in the root `package.json`. This is because it was removed as a dependency of `@backstage/cli` in order to decouple the TypeScript versioning in Backstage projects.
75
+
76
+ To apply this change in an existing app, add a `typescript` dependency to your `package.json` in the project root:
77
+
78
+ ```json
79
+ "dependencies": {
80
+ ...
81
+ "typescript": "~4.5.4",
82
+ }
83
+ ```
84
+
85
+ We recommend using a `~` version range since TypeScript releases do not adhere to semver.
86
+
87
+ It may be the case that you end up with errors if you upgrade the TypeScript version. This is because there was a change to TypeScript not long ago that defaulted the type of errors caught in `catch` blocks to `unknown`. You can work around this by adding `"useUnknownInCatchVariables": false` to the `"compilerOptions"` in your `tsconfig.json`:
88
+
89
+ ```json
90
+ "compilerOptions": {
91
+ ...
92
+ "useUnknownInCatchVariables": false
93
+ }
94
+ ```
95
+
96
+ Another option is to use the utilities from `@backstage/errors` to assert the type of errors caught in `catch` blocks:
97
+
98
+ ```ts
99
+ import { assertError, isError } from '@backstage/errors';
100
+
101
+ try {
102
+ ...
103
+ } catch (error) {
104
+ assertError(error);
105
+ ...
106
+ // OR
107
+ if (isError(error)) {
108
+ ...
109
+ }
110
+ }
111
+ ```
112
+
113
+ - Updated dependencies
114
+ - @backstage/plugin-tech-radar@0.5.3-next.0
115
+ - @backstage/plugin-auth-backend@0.7.0-next.0
116
+ - @backstage/core-components@0.8.5-next.0
117
+ - @backstage/plugin-api-docs@0.6.23-next.0
118
+ - @backstage/plugin-catalog-backend@0.21.0-next.0
119
+ - @backstage/plugin-permission-common@0.4.0-next.0
120
+ - @backstage/cli@0.12.0-next.0
121
+ - @backstage/core-plugin-api@0.6.0-next.0
122
+ - @backstage/plugin-catalog@0.7.9-next.0
123
+ - @backstage/plugin-user-settings@0.3.17-next.0
124
+ - @backstage/backend-common@0.10.4-next.0
125
+ - @backstage/config@0.1.13-next.0
126
+ - @backstage/plugin-app-backend@0.3.22-next.0
127
+ - @backstage/core-app-api@0.5.0-next.0
128
+ - @backstage/plugin-catalog-import@0.7.10-next.0
129
+ - @backstage/plugin-scaffolder@0.11.19-next.0
130
+ - @backstage/plugin-search@0.5.6-next.0
131
+ - @backstage/plugin-techdocs@0.12.15-next.0
132
+ - @backstage/plugin-permission-node@0.4.0-next.0
133
+ - @backstage/catalog-model@0.9.10-next.0
134
+ - @backstage/integration-react@0.1.19-next.0
135
+ - @backstage/plugin-explore@0.3.26-next.0
136
+ - @backstage/plugin-github-actions@0.4.32-next.0
137
+ - @backstage/plugin-lighthouse@0.2.35-next.0
138
+ - @backstage/plugin-scaffolder-backend@0.15.21-next.0
139
+ - @backstage/backend-tasks@0.1.4-next.0
140
+ - @backstage/catalog-client@0.5.5-next.0
141
+ - @backstage/test-utils@0.2.3-next.0
142
+ - @backstage/plugin-proxy-backend@0.2.16-next.0
143
+ - @backstage/plugin-rollbar-backend@0.1.19-next.0
144
+ - @backstage/plugin-search-backend@0.3.1-next.0
145
+ - @backstage/plugin-techdocs-backend@0.12.4-next.0
146
+
3
147
  ## 0.4.12
4
148
 
5
149
  ### Patch Changes
@@ -16,7 +160,7 @@
16
160
 
17
161
  function makeCreateEnv(config: Config) {
18
162
  ...
19
- + const permissions = ServerPerimssionClient.fromConfig(config, {
163
+ + const permissions = ServerPermissionClient.fromConfig(config, {
20
164
  + discovery,
21
165
  + tokenManager,
22
166
  + });
package/dist/index.cjs.js CHANGED
@@ -55,85 +55,85 @@ ${chalk__default["default"].red(`${error}`)}
55
55
  }
56
56
  }
57
57
 
58
- var version$D = "0.4.12";
58
+ var version$D = "0.4.13";
59
59
 
60
- var version$C = "0.1.4";
60
+ var version$C = "0.1.5-next.0";
61
61
 
62
- var version$B = "0.10.3";
62
+ var version$B = "0.10.4-next.0";
63
63
 
64
- var version$A = "0.1.3";
64
+ var version$A = "0.1.4-next.0";
65
65
 
66
- var version$z = "0.5.4";
66
+ var version$z = "0.5.5-next.0";
67
67
 
68
- var version$y = "0.9.9";
68
+ var version$y = "0.9.10-next.0";
69
69
 
70
- var version$x = "0.11.0";
70
+ var version$x = "0.12.0-next.0";
71
71
 
72
- var version$w = "0.1.12";
72
+ var version$w = "0.1.13-next.0";
73
73
 
74
- var version$v = "0.4.0";
74
+ var version$v = "0.5.0-next.0";
75
75
 
76
- var version$u = "0.8.4";
76
+ var version$u = "0.8.5-next.0";
77
77
 
78
- var version$t = "0.5.0";
78
+ var version$t = "0.6.0-next.0";
79
79
 
80
80
  var version$s = "0.2.0";
81
81
 
82
- var version$r = "0.1.18";
82
+ var version$r = "0.1.19-next.0";
83
83
 
84
- var version$q = "0.2.2";
84
+ var version$q = "0.2.3-next.0";
85
85
 
86
86
  var version$p = "0.2.14";
87
87
 
88
- var version$o = "0.6.22";
88
+ var version$o = "0.6.23-next.0";
89
89
 
90
- var version$n = "0.3.21";
90
+ var version$n = "0.3.22-next.0";
91
91
 
92
- var version$m = "0.6.2";
92
+ var version$m = "0.7.0-next.0";
93
93
 
94
- var version$l = "0.7.8";
94
+ var version$l = "0.7.9-next.0";
95
95
 
96
- var version$k = "0.6.11";
96
+ var version$k = "0.6.12-next.0";
97
97
 
98
- var version$j = "0.20.0";
98
+ var version$j = "0.21.0-next.0";
99
99
 
100
- var version$i = "0.7.9";
100
+ var version$i = "0.7.10-next.0";
101
101
 
102
- var version$h = "0.2.34";
102
+ var version$h = "0.2.35-next.0";
103
103
 
104
- var version$g = "0.3.25";
104
+ var version$g = "0.3.26-next.0";
105
105
 
106
- var version$f = "0.4.31";
106
+ var version$f = "0.4.32-next.0";
107
107
 
108
- var version$e = "0.2.34";
108
+ var version$e = "0.2.35-next.0";
109
109
 
110
- var version$d = "0.3.34";
110
+ var version$d = "0.3.35-next.0";
111
111
 
112
- var version$c = "0.3.1";
112
+ var version$c = "0.4.0-next.0";
113
113
 
114
- var version$b = "0.3.0";
114
+ var version$b = "0.4.0-next.0";
115
115
 
116
- var version$a = "0.2.15";
116
+ var version$a = "0.2.16-next.0";
117
117
 
118
- var version$9 = "0.1.18";
118
+ var version$9 = "0.1.19-next.0";
119
119
 
120
- var version$8 = "0.11.18";
120
+ var version$8 = "0.11.19-next.0";
121
121
 
122
- var version$7 = "0.15.20";
122
+ var version$7 = "0.15.21-next.0";
123
123
 
124
- var version$6 = "0.5.5";
124
+ var version$6 = "0.5.6-next.0";
125
125
 
126
- var version$5 = "0.3.0";
126
+ var version$5 = "0.3.1-next.0";
127
127
 
128
128
  var version$4 = "0.4.4";
129
129
 
130
- var version$3 = "0.5.2";
130
+ var version$3 = "0.5.3-next.0";
131
131
 
132
- var version$2 = "0.12.14";
132
+ var version$2 = "0.12.15-next.0";
133
133
 
134
- var version$1 = "0.12.3";
134
+ var version$1 = "0.12.4-next.0";
135
135
 
136
- var version = "0.3.16";
136
+ var version = "0.3.17-next.0";
137
137
 
138
138
  const packageVersions = {
139
139
  "@backstage/app-defaults": version$C,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@backstage/create-app",
3
3
  "description": "A CLI that helps you create your own Backstage app",
4
- "version": "0.4.12",
4
+ "version": "0.4.13",
5
5
  "private": false,
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -57,5 +57,5 @@
57
57
  "dist",
58
58
  "templates"
59
59
  ],
60
- "gitHead": "da66c61bdd63cdb3f0f0cd2e26dc9e6454d93c7b"
60
+ "gitHead": "31184691d5a38cb78b091c8f7ad6db80604519a6"
61
61
  }
@@ -34,7 +34,8 @@
34
34
  "@spotify/prettier-config": "^12.0.0",
35
35
  "concurrently": "^6.0.0",
36
36
  "lerna": "^4.0.0",
37
- "prettier": "^2.3.2"
37
+ "prettier": "^2.3.2",
38
+ "typescript": "~4.5.4"
38
39
  },
39
40
  "prettier": "@spotify/prettier-config",
40
41
  "lint-staged": {
@@ -24,21 +24,27 @@ import CreateComponentIcon from '@material-ui/icons/AddCircleOutline';
24
24
  import LogoFull from './LogoFull';
25
25
  import LogoIcon from './LogoIcon';
26
26
  import { NavLink } from 'react-router-dom';
27
- import { Settings as SidebarSettings } from '@backstage/plugin-user-settings';
27
+ import {
28
+ Settings as SidebarSettings,
29
+ UserSettingsSignInAvatar,
30
+ } from '@backstage/plugin-user-settings';
28
31
  import {
29
32
  SidebarSearchModal,
30
33
  SearchContextProvider,
31
34
  } from '@backstage/plugin-search';
32
35
  import {
33
36
  Sidebar,
34
- SidebarPage,
35
37
  sidebarConfig,
36
38
  SidebarContext,
37
- SidebarItem,
38
39
  SidebarDivider,
39
- SidebarSpace,
40
+ SidebarGroup,
41
+ SidebarItem,
42
+ SidebarPage,
40
43
  SidebarScrollWrapper,
44
+ SidebarSpace,
41
45
  } from '@backstage/core-components';
46
+ import MenuIcon from '@material-ui/icons/Menu';
47
+ import SearchIcon from '@material-ui/icons/Search';
42
48
 
43
49
  const useSidebarLogoStyles = makeStyles({
44
50
  root: {
@@ -77,23 +83,33 @@ export const Root = ({ children }: PropsWithChildren<{}>) => (
77
83
  <SidebarPage>
78
84
  <Sidebar>
79
85
  <SidebarLogo />
80
- <SearchContextProvider>
81
- <SidebarSearchModal />
82
- </SearchContextProvider>
86
+ <SidebarGroup label="Search" icon={<SearchIcon />} to="/search">
87
+ <SearchContextProvider>
88
+ <SidebarSearchModal />
89
+ </SearchContextProvider>{' '}
90
+ </SidebarGroup>
83
91
  <SidebarDivider />
84
- {/* Global nav, not org-specific */}
85
- <SidebarItem icon={HomeIcon} to="catalog" text="Home" />
86
- <SidebarItem icon={ExtensionIcon} to="api-docs" text="APIs" />
87
- <SidebarItem icon={LibraryBooks} to="docs" text="Docs" />
88
- <SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
89
- {/* End global nav */}
90
- <SidebarDivider />
91
- <SidebarScrollWrapper>
92
- <SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
93
- </SidebarScrollWrapper>
92
+ <SidebarGroup label="Menu" icon={<MenuIcon />}>
93
+ {/* Global nav, not org-specific */}
94
+ <SidebarItem icon={HomeIcon} to="catalog" text="Home" />
95
+ <SidebarItem icon={ExtensionIcon} to="api-docs" text="APIs" />
96
+ <SidebarItem icon={LibraryBooks} to="docs" text="Docs" />
97
+ <SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
98
+ {/* End global nav */}
99
+ <SidebarDivider />
100
+ <SidebarScrollWrapper>
101
+ <SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
102
+ </SidebarScrollWrapper>
103
+ </SidebarGroup>
94
104
  <SidebarSpace />
95
105
  <SidebarDivider />
96
- <SidebarSettings />
106
+ <SidebarGroup
107
+ label="Settings"
108
+ icon={<UserSettingsSignInAvatar />}
109
+ to="/settings"
110
+ >
111
+ <SidebarSettings />
112
+ </SidebarGroup>
97
113
  </Sidebar>
98
114
  {children}
99
115
  </SidebarPage>
@@ -5,10 +5,12 @@ import { PluginEnvironment } from '../types';
5
5
  export default async function createPlugin({
6
6
  logger,
7
7
  config,
8
+ database,
8
9
  }: PluginEnvironment): Promise<Router> {
9
10
  return await createRouter({
10
11
  logger,
11
12
  config,
13
+ database,
12
14
  appPackageName: 'app',
13
15
  });
14
16
  }