@backstage/plugin-scaffolder 1.36.2-next.1 → 1.36.2-next.2

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,27 @@
1
1
  # @backstage/plugin-scaffolder
2
2
 
3
+ ## 1.36.2-next.2
4
+
5
+ ### Patch Changes
6
+
7
+ - e5af44c: Replaced deprecated `humanizeEntityRef` usage with the Catalog Presentation API.
8
+ - Updated dependencies
9
+ - @backstage/ui@0.14.0-next.2
10
+ - @backstage/errors@1.3.0-next.0
11
+ - @backstage/core-components@0.18.9-next.1
12
+ - @backstage/plugin-catalog-react@2.1.2-next.2
13
+ - @backstage/integration@2.0.1-next.0
14
+ - @backstage/catalog-client@1.14.1-next.0
15
+ - @backstage/catalog-model@1.7.8-next.0
16
+ - @backstage/core-plugin-api@1.12.5-next.2
17
+ - @backstage/frontend-plugin-api@0.16.0-next.2
18
+ - @backstage/plugin-scaffolder-common@2.0.1-next.0
19
+ - @backstage/plugin-scaffolder-react@1.20.1-next.2
20
+ - @backstage/plugin-techdocs-react@1.3.10-next.2
21
+ - @backstage/integration-react@1.2.17-next.1
22
+ - @backstage/plugin-catalog-common@1.1.9-next.0
23
+ - @backstage/plugin-permission-react@0.4.42-next.1
24
+
3
25
  ## 1.36.2-next.1
4
26
 
5
27
  ### Patch Changes
@@ -5,7 +5,7 @@ import { useNavigate } from 'react-router-dom';
5
5
  import useAsync from 'react-use/esm/useAsync';
6
6
  import { makeStyles } from '@material-ui/core/styles';
7
7
  import { useApi, alertApiRef, useRouteRef } from '@backstage/core-plugin-api';
8
- import { catalogApiRef, humanizeEntityRef } from '@backstage/plugin-catalog-react';
8
+ import { catalogApiRef, entityPresentationApiRef } from '@backstage/plugin-catalog-react';
9
9
  import { editRouteRef } from '../../../routes.esm.js';
10
10
  import { TemplateEditorLayout, TemplateEditorLayoutToolbar, TemplateEditorPanels, TemplateEditorLayoutPreview, TemplateEditorLayoutFiles } from './TemplateEditorLayout.esm.js';
11
11
  import { TemplateEditorToolbar } from './TemplateEditorToolbar.esm.js';
@@ -87,6 +87,7 @@ const TemplateFormPreviewer = ({
87
87
  const classes = useStyles();
88
88
  const alertApi = useApi(alertApiRef);
89
89
  const catalogApi = useApi(catalogApiRef);
90
+ const entityPresentationApi = useApi(entityPresentationApiRef);
90
91
  const navigate = useNavigate();
91
92
  const editLink = useRouteRef(editRouteRef);
92
93
  const [errorText, setErrorText] = useState();
@@ -108,20 +109,23 @@ const TemplateFormPreviewer = ({
108
109
  "spec.steps",
109
110
  "spec.output"
110
111
  ]
111
- }).then(
112
- ({ items }) => setTemplateOptions(
113
- items.map((template) => ({
114
- label: template.metadata.title ?? humanizeEntityRef(template, { defaultKind: "template" }),
112
+ }).then(async ({ items }) => {
113
+ const options = await Promise.all(
114
+ items.map(async (template) => ({
115
+ label: (await entityPresentationApi.forEntity(template, {
116
+ defaultKind: "template"
117
+ }).promise).primaryTitle,
115
118
  value: template
116
119
  }))
117
- )
118
- ).catch(
120
+ );
121
+ setTemplateOptions(options);
122
+ }).catch(
119
123
  (e) => alertApi.post({
120
124
  message: `Error loading existing templates: ${e.message}`,
121
125
  severity: "error"
122
126
  })
123
127
  ),
124
- [catalogApi]
128
+ [catalogApi, entityPresentationApi, alertApi]
125
129
  );
126
130
  const handleSelectChange = useCallback(
127
131
  // TODO(Rugvip): Afaik this should be Entity, but didn't want to make runtime changes while fixing types
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateFormPreviewer.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateFormPreviewer.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport yaml from 'yaml';\nimport { useCallback, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport useAsync from 'react-use/esm/useAsync';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { alertApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';\nimport {\n catalogApiRef,\n humanizeEntityRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n LayoutOptions,\n FieldExtensionOptions,\n FormProps,\n} from '@backstage/plugin-scaffolder-react';\n\nimport { editRouteRef } from '../../../routes';\n\nimport {\n TemplateEditorLayout,\n TemplateEditorLayoutToolbar,\n TemplateEditorLayoutFiles,\n TemplateEditorLayoutPreview,\n TemplateEditorPanels,\n} from './TemplateEditorLayout';\nimport { TemplateEditorToolbar } from './TemplateEditorToolbar';\nimport { TemplateEditorToolbarFileMenu } from './TemplateEditorToolbarFileMenu';\nimport {\n TemplateOption,\n TemplateEditorToolbarTemplatesMenu,\n} from './TemplateEditorToolbarTemplatesMenu';\nimport { TemplateEditorForm } from './TemplateEditorForm';\nimport { TemplateEditorTextArea } from './TemplateEditorTextArea';\n\nconst EXAMPLE_TEMPLATE_PARAMS_YAML = `# Edit the template parameters below to see how they will render in the scaffolder form UI\nparameters:\n - title: Fill in some steps\n required:\n - name\n properties:\n name:\n title: Name\n type: string\n description: Unique name of the component\n owner:\n title: Owner\n type: string\n description: Owner of the component\n ui:field: OwnerPicker\n ui:options:\n catalogFilter:\n kind: Group\n - title: Choose a location\n required:\n - repoUrl\n properties:\n repoUrl:\n title: Repository Location\n type: string\n ui:field: RepoUrlPicker\n ui:options:\n allowedHosts:\n - github.com\nsteps:\n - id: fetch-base\n name: Fetch Base\n action: fetch:template\n input:\n url: ./template\n values:\n name: \\${{parameters.name}}\n`;\n\n/** @public */\nexport type ScaffolderTemplateFormPreviewerClassKey =\n | 'root'\n | 'toolbar'\n | 'controls'\n | 'textArea'\n | 'preview';\n\nconst useStyles = makeStyles(\n theme => ({\n root: {\n height: '100%',\n gridArea: 'pageContent',\n display: 'grid',\n gridTemplateAreas: `\n \"toolbar\"\n \"textArea\"\n \"preview\"\n `,\n [theme.breakpoints.up('md')]: {\n gridTemplateAreas: `\n \"toolbar toolbar\"\n \"textArea preview\"\n `,\n gridTemplateRows: 'auto 1fr',\n gridTemplateColumns: '1fr',\n },\n },\n files: {\n gridArea: 'textArea',\n },\n }),\n { name: 'ScaffolderTemplateFormPreviewer' },\n);\n\nexport const TemplateFormPreviewer = ({\n defaultPreviewTemplate = EXAMPLE_TEMPLATE_PARAMS_YAML,\n customFieldExtensions = [],\n layouts = [],\n formProps,\n}: {\n defaultPreviewTemplate?: string;\n customFieldExtensions?: FieldExtensionOptions<any, any>[];\n onClose?: () => void;\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n}) => {\n const classes = useStyles();\n const alertApi = useApi(alertApiRef);\n const catalogApi = useApi(catalogApiRef);\n const navigate = useNavigate();\n const editLink = useRouteRef(editRouteRef);\n\n const [errorText, setErrorText] = useState<string>();\n const [selectedTemplate, setSelectedTemplate] = useState<TemplateOption>();\n const [templateOptions, setTemplateOptions] = useState<TemplateOption[]>([]);\n const [templateYaml, setTemplateYaml] = useState(defaultPreviewTemplate);\n\n const handleCloseDirectory = useCallback(() => {\n navigate(editLink());\n }, [navigate, editLink]);\n\n useAsync(\n () =>\n catalogApi\n .getEntities({\n filter: { kind: 'template' },\n fields: [\n 'kind',\n 'metadata.namespace',\n 'metadata.name',\n 'metadata.title',\n 'spec.parameters',\n 'spec.steps',\n 'spec.output',\n ],\n })\n .then(({ items }) =>\n setTemplateOptions(\n items.map(template => ({\n label:\n template.metadata.title ??\n humanizeEntityRef(template, { defaultKind: 'template' }),\n value: template,\n })),\n ),\n )\n .catch(e =>\n alertApi.post({\n message: `Error loading existing templates: ${e.message}`,\n severity: 'error',\n }),\n ),\n [catalogApi],\n );\n\n const handleSelectChange = useCallback(\n // TODO(Rugvip): Afaik this should be Entity, but didn't want to make runtime changes while fixing types\n (selected: TemplateOption) => {\n setSelectedTemplate(selected);\n setTemplateYaml(yaml.stringify(selected.value.spec));\n },\n [setSelectedTemplate, setTemplateYaml],\n );\n\n return (\n <TemplateEditorLayout classes={{ root: classes.root }}>\n <TemplateEditorLayoutToolbar>\n <TemplateEditorToolbar fieldExtensions={customFieldExtensions}>\n <TemplateEditorToolbarFileMenu\n onCloseDirectory={handleCloseDirectory}\n />\n <TemplateEditorToolbarTemplatesMenu\n options={templateOptions}\n selectedOption={selectedTemplate}\n onSelectOption={handleSelectChange}\n />\n </TemplateEditorToolbar>\n </TemplateEditorLayoutToolbar>\n <TemplateEditorPanels\n autoSaveId=\"template-form-previewer\"\n files={\n <TemplateEditorLayoutFiles classes={{ root: classes.files }}>\n <TemplateEditorTextArea\n content={templateYaml}\n onUpdate={setTemplateYaml}\n errorText={errorText}\n />\n </TemplateEditorLayoutFiles>\n }\n preview={\n <TemplateEditorLayoutPreview>\n <TemplateEditorForm\n content={templateYaml}\n contentIsSpec\n fieldExtensions={customFieldExtensions}\n setErrorText={setErrorText}\n layouts={layouts}\n formProps={formProps}\n />\n </TemplateEditorLayoutPreview>\n }\n />\n </TemplateEditorLayout>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplateFormPreviewer.esm.js","sources":["../../../../src/alpha/components/TemplateEditorPage/TemplateFormPreviewer.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport yaml from 'yaml';\nimport { useCallback, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport useAsync from 'react-use/esm/useAsync';\n\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { alertApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';\nimport {\n catalogApiRef,\n entityPresentationApiRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n LayoutOptions,\n FieldExtensionOptions,\n FormProps,\n} from '@backstage/plugin-scaffolder-react';\n\nimport { editRouteRef } from '../../../routes';\n\nimport {\n TemplateEditorLayout,\n TemplateEditorLayoutToolbar,\n TemplateEditorLayoutFiles,\n TemplateEditorLayoutPreview,\n TemplateEditorPanels,\n} from './TemplateEditorLayout';\nimport { TemplateEditorToolbar } from './TemplateEditorToolbar';\nimport { TemplateEditorToolbarFileMenu } from './TemplateEditorToolbarFileMenu';\nimport {\n TemplateOption,\n TemplateEditorToolbarTemplatesMenu,\n} from './TemplateEditorToolbarTemplatesMenu';\nimport { TemplateEditorForm } from './TemplateEditorForm';\nimport { TemplateEditorTextArea } from './TemplateEditorTextArea';\n\nconst EXAMPLE_TEMPLATE_PARAMS_YAML = `# Edit the template parameters below to see how they will render in the scaffolder form UI\nparameters:\n - title: Fill in some steps\n required:\n - name\n properties:\n name:\n title: Name\n type: string\n description: Unique name of the component\n owner:\n title: Owner\n type: string\n description: Owner of the component\n ui:field: OwnerPicker\n ui:options:\n catalogFilter:\n kind: Group\n - title: Choose a location\n required:\n - repoUrl\n properties:\n repoUrl:\n title: Repository Location\n type: string\n ui:field: RepoUrlPicker\n ui:options:\n allowedHosts:\n - github.com\nsteps:\n - id: fetch-base\n name: Fetch Base\n action: fetch:template\n input:\n url: ./template\n values:\n name: \\${{parameters.name}}\n`;\n\n/** @public */\nexport type ScaffolderTemplateFormPreviewerClassKey =\n | 'root'\n | 'toolbar'\n | 'controls'\n | 'textArea'\n | 'preview';\n\nconst useStyles = makeStyles(\n theme => ({\n root: {\n height: '100%',\n gridArea: 'pageContent',\n display: 'grid',\n gridTemplateAreas: `\n \"toolbar\"\n \"textArea\"\n \"preview\"\n `,\n [theme.breakpoints.up('md')]: {\n gridTemplateAreas: `\n \"toolbar toolbar\"\n \"textArea preview\"\n `,\n gridTemplateRows: 'auto 1fr',\n gridTemplateColumns: '1fr',\n },\n },\n files: {\n gridArea: 'textArea',\n },\n }),\n { name: 'ScaffolderTemplateFormPreviewer' },\n);\n\nexport const TemplateFormPreviewer = ({\n defaultPreviewTemplate = EXAMPLE_TEMPLATE_PARAMS_YAML,\n customFieldExtensions = [],\n layouts = [],\n formProps,\n}: {\n defaultPreviewTemplate?: string;\n customFieldExtensions?: FieldExtensionOptions<any, any>[];\n onClose?: () => void;\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n}) => {\n const classes = useStyles();\n const alertApi = useApi(alertApiRef);\n const catalogApi = useApi(catalogApiRef);\n const entityPresentationApi = useApi(entityPresentationApiRef);\n const navigate = useNavigate();\n const editLink = useRouteRef(editRouteRef);\n\n const [errorText, setErrorText] = useState<string>();\n const [selectedTemplate, setSelectedTemplate] = useState<TemplateOption>();\n const [templateOptions, setTemplateOptions] = useState<TemplateOption[]>([]);\n const [templateYaml, setTemplateYaml] = useState(defaultPreviewTemplate);\n\n const handleCloseDirectory = useCallback(() => {\n navigate(editLink());\n }, [navigate, editLink]);\n\n useAsync(\n () =>\n catalogApi\n .getEntities({\n filter: { kind: 'template' },\n fields: [\n 'kind',\n 'metadata.namespace',\n 'metadata.name',\n 'metadata.title',\n 'spec.parameters',\n 'spec.steps',\n 'spec.output',\n ],\n })\n .then(async ({ items }) => {\n const options = await Promise.all(\n items.map(async template => ({\n label: (\n await entityPresentationApi.forEntity(template, {\n defaultKind: 'template',\n }).promise\n ).primaryTitle,\n value: template,\n })),\n );\n setTemplateOptions(options);\n })\n .catch(e =>\n alertApi.post({\n message: `Error loading existing templates: ${e.message}`,\n severity: 'error',\n }),\n ),\n [catalogApi, entityPresentationApi, alertApi],\n );\n\n const handleSelectChange = useCallback(\n // TODO(Rugvip): Afaik this should be Entity, but didn't want to make runtime changes while fixing types\n (selected: TemplateOption) => {\n setSelectedTemplate(selected);\n setTemplateYaml(yaml.stringify(selected.value.spec));\n },\n [setSelectedTemplate, setTemplateYaml],\n );\n\n return (\n <TemplateEditorLayout classes={{ root: classes.root }}>\n <TemplateEditorLayoutToolbar>\n <TemplateEditorToolbar fieldExtensions={customFieldExtensions}>\n <TemplateEditorToolbarFileMenu\n onCloseDirectory={handleCloseDirectory}\n />\n <TemplateEditorToolbarTemplatesMenu\n options={templateOptions}\n selectedOption={selectedTemplate}\n onSelectOption={handleSelectChange}\n />\n </TemplateEditorToolbar>\n </TemplateEditorLayoutToolbar>\n <TemplateEditorPanels\n autoSaveId=\"template-form-previewer\"\n files={\n <TemplateEditorLayoutFiles classes={{ root: classes.files }}>\n <TemplateEditorTextArea\n content={templateYaml}\n onUpdate={setTemplateYaml}\n errorText={errorText}\n />\n </TemplateEditorLayoutFiles>\n }\n preview={\n <TemplateEditorLayoutPreview>\n <TemplateEditorForm\n content={templateYaml}\n contentIsSpec\n fieldExtensions={customFieldExtensions}\n setErrorText={setErrorText}\n layouts={layouts}\n formProps={formProps}\n />\n </TemplateEditorLayoutPreview>\n }\n />\n </TemplateEditorLayout>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-scaffolder";
2
- var version = "1.36.2-next.1";
2
+ var version = "1.36.2-next.2";
3
3
  var description = "The Backstage plugin that helps you create new things";
4
4
  var backstage = {
5
5
  role: "frontend-plugin",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-scaffolder",
3
- "version": "1.36.2-next.1",
3
+ "version": "1.36.2-next.2",
4
4
  "description": "The Backstage plugin that helps you create new things",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -70,23 +70,23 @@
70
70
  "test": "backstage-cli package test"
71
71
  },
72
72
  "dependencies": {
73
- "@backstage/catalog-client": "1.14.0",
74
- "@backstage/catalog-model": "1.7.7",
75
- "@backstage/core-components": "0.18.9-next.0",
76
- "@backstage/core-plugin-api": "1.12.5-next.1",
77
- "@backstage/errors": "1.2.7",
78
- "@backstage/frontend-plugin-api": "0.16.0-next.1",
79
- "@backstage/integration": "2.0.0",
80
- "@backstage/integration-react": "1.2.17-next.0",
81
- "@backstage/plugin-catalog-common": "1.1.8",
82
- "@backstage/plugin-catalog-react": "2.1.2-next.1",
83
- "@backstage/plugin-permission-react": "0.4.42-next.0",
84
- "@backstage/plugin-scaffolder-common": "2.0.0",
85
- "@backstage/plugin-scaffolder-react": "1.20.1-next.1",
73
+ "@backstage/catalog-client": "1.14.1-next.0",
74
+ "@backstage/catalog-model": "1.7.8-next.0",
75
+ "@backstage/core-components": "0.18.9-next.1",
76
+ "@backstage/core-plugin-api": "1.12.5-next.2",
77
+ "@backstage/errors": "1.3.0-next.0",
78
+ "@backstage/frontend-plugin-api": "0.16.0-next.2",
79
+ "@backstage/integration": "2.0.1-next.0",
80
+ "@backstage/integration-react": "1.2.17-next.1",
81
+ "@backstage/plugin-catalog-common": "1.1.9-next.0",
82
+ "@backstage/plugin-catalog-react": "2.1.2-next.2",
83
+ "@backstage/plugin-permission-react": "0.4.42-next.1",
84
+ "@backstage/plugin-scaffolder-common": "2.0.1-next.0",
85
+ "@backstage/plugin-scaffolder-react": "1.20.1-next.2",
86
86
  "@backstage/plugin-techdocs-common": "0.1.1",
87
- "@backstage/plugin-techdocs-react": "1.3.10-next.1",
87
+ "@backstage/plugin-techdocs-react": "1.3.10-next.2",
88
88
  "@backstage/types": "1.2.2",
89
- "@backstage/ui": "0.14.0-next.1",
89
+ "@backstage/ui": "0.14.0-next.2",
90
90
  "@codemirror/language": "^6.0.0",
91
91
  "@codemirror/legacy-modes": "^6.1.0",
92
92
  "@codemirror/view": "^6.0.0",
@@ -119,14 +119,14 @@
119
119
  "zod-to-json-schema": "^3.25.1"
120
120
  },
121
121
  "devDependencies": {
122
- "@backstage/cli": "0.36.1-next.1",
123
- "@backstage/core-app-api": "1.20.0-next.1",
124
- "@backstage/dev-utils": "1.1.22-next.1",
125
- "@backstage/frontend-test-utils": "0.5.2-next.1",
126
- "@backstage/plugin-catalog": "2.0.2-next.1",
127
- "@backstage/plugin-permission-common": "0.9.7",
128
- "@backstage/plugin-techdocs": "1.17.3-next.1",
129
- "@backstage/test-utils": "1.7.17-next.1",
122
+ "@backstage/cli": "0.36.1-next.2",
123
+ "@backstage/core-app-api": "1.20.0-next.2",
124
+ "@backstage/dev-utils": "1.1.22-next.2",
125
+ "@backstage/frontend-test-utils": "0.5.2-next.2",
126
+ "@backstage/plugin-catalog": "2.0.2-next.2",
127
+ "@backstage/plugin-permission-common": "0.9.8-next.0",
128
+ "@backstage/plugin-techdocs": "1.17.3-next.2",
129
+ "@backstage/test-utils": "1.7.17-next.2",
130
130
  "@testing-library/dom": "^10.0.0",
131
131
  "@testing-library/jest-dom": "^6.0.0",
132
132
  "@testing-library/react": "^16.0.0",