@backstage/plugin-scaffolder 1.31.0 → 1.31.1-next.1
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 +34 -0
- package/dist/alpha/plugin.esm.js +1 -0
- package/dist/alpha/plugin.esm.js.map +1 -1
- package/dist/components/RenderSchema/RenderSchema.esm.js +73 -64
- package/dist/components/RenderSchema/RenderSchema.esm.js.map +1 -1
- package/dist/plugins/scaffolder/package.json.esm.js +163 -0
- package/dist/plugins/scaffolder/package.json.esm.js.map +1 -0
- package/package.json +22 -22
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# @backstage/plugin-scaffolder
|
|
2
2
|
|
|
3
|
+
## 1.31.1-next.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @backstage/catalog-client@1.10.1-next.0
|
|
9
|
+
- @backstage/plugin-catalog-react@1.18.1-next.1
|
|
10
|
+
- @backstage/plugin-scaffolder-react@1.16.1-next.1
|
|
11
|
+
- @backstage/catalog-model@1.7.4
|
|
12
|
+
- @backstage/core-compat-api@0.4.3-next.1
|
|
13
|
+
- @backstage/core-components@0.17.2
|
|
14
|
+
- @backstage/core-plugin-api@1.10.7
|
|
15
|
+
- @backstage/errors@1.2.7
|
|
16
|
+
- @backstage/frontend-plugin-api@0.10.3-next.0
|
|
17
|
+
- @backstage/integration@1.17.0
|
|
18
|
+
- @backstage/integration-react@1.2.7
|
|
19
|
+
- @backstage/types@1.2.1
|
|
20
|
+
- @backstage/plugin-catalog-common@1.1.4
|
|
21
|
+
- @backstage/plugin-permission-react@0.4.34
|
|
22
|
+
- @backstage/plugin-scaffolder-common@1.5.11
|
|
23
|
+
|
|
24
|
+
## 1.31.1-next.0
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- d781b33: render details for composite property schemas
|
|
29
|
+
- 18c64e9: Added the `info.packageJson` option to the plugin instance for the new frontend system.
|
|
30
|
+
- Updated dependencies
|
|
31
|
+
- @backstage/frontend-plugin-api@0.10.3-next.0
|
|
32
|
+
- @backstage/core-compat-api@0.4.3-next.0
|
|
33
|
+
- @backstage/plugin-scaffolder-react@1.16.1-next.0
|
|
34
|
+
- @backstage/plugin-catalog-react@1.18.1-next.0
|
|
35
|
+
- @backstage/integration-react@1.2.7
|
|
36
|
+
|
|
3
37
|
## 1.31.0
|
|
4
38
|
|
|
5
39
|
### Minor Changes
|
package/dist/alpha/plugin.esm.js
CHANGED
|
@@ -8,6 +8,7 @@ import { formDecoratorsApi } from './api/FormDecoratorsApi.esm.js';
|
|
|
8
8
|
|
|
9
9
|
var plugin = createFrontendPlugin({
|
|
10
10
|
pluginId: "scaffolder",
|
|
11
|
+
info: { packageJson: () => import('../plugins/scaffolder/package.json.esm.js') },
|
|
11
12
|
routes: convertLegacyRouteRefs({
|
|
12
13
|
root: rootRouteRef,
|
|
13
14
|
selectedTemplate: selectedTemplateRouteRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.esm.js","sources":["../../src/alpha/plugin.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 { convertLegacyRouteRefs } from '@backstage/core-compat-api';\nimport { createFrontendPlugin } from '@backstage/frontend-plugin-api';\nimport {\n rootRouteRef,\n actionsRouteRef,\n editRouteRef,\n registerComponentRouteRef,\n scaffolderListTaskRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n templatingExtensionsRouteRef,\n viewTechDocRouteRef,\n} from '../routes';\nimport {\n repoUrlPickerFormField,\n scaffolderNavItem,\n scaffolderPage,\n scaffolderApi,\n} from './extensions';\nimport { formFieldsApi } from '@backstage/plugin-scaffolder-react/alpha';\nimport { formDecoratorsApi } from './api';\n\n/** @alpha */\nexport default createFrontendPlugin({\n pluginId: 'scaffolder',\n routes: convertLegacyRouteRefs({\n root: rootRouteRef,\n selectedTemplate: selectedTemplateRouteRef,\n ongoingTask: scaffolderTaskRouteRef,\n actions: actionsRouteRef,\n listTasks: scaffolderListTaskRouteRef,\n edit: editRouteRef,\n templatingExtensions: templatingExtensionsRouteRef,\n }),\n externalRoutes: convertLegacyRouteRefs({\n registerComponent: registerComponentRouteRef,\n viewTechDoc: viewTechDocRouteRef,\n }),\n extensions: [\n scaffolderApi,\n scaffolderPage,\n scaffolderNavItem,\n formDecoratorsApi,\n formFieldsApi,\n repoUrlPickerFormField,\n ],\n});\n"],"names":[],"mappings":";;;;;;;;AAuCA,aAAe,oBAAqB,CAAA;AAAA,EAClC,QAAU,EAAA,YAAA;AAAA,EACV,QAAQ,sBAAuB,CAAA;AAAA,IAC7B,IAAM,EAAA,YAAA;AAAA,IACN,gBAAkB,EAAA,wBAAA;AAAA,IAClB,WAAa,EAAA,sBAAA;AAAA,IACb,OAAS,EAAA,eAAA;AAAA,IACT,SAAW,EAAA,0BAAA;AAAA,IACX,IAAM,EAAA,YAAA;AAAA,IACN,oBAAsB,EAAA;AAAA,GACvB,CAAA;AAAA,EACD,gBAAgB,sBAAuB,CAAA;AAAA,IACrC,iBAAmB,EAAA,yBAAA;AAAA,IACnB,WAAa,EAAA;AAAA,GACd,CAAA;AAAA,EACD,UAAY,EAAA;AAAA,IACV,aAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA;AAEJ,CAAC,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.esm.js","sources":["../../src/alpha/plugin.tsx"],"sourcesContent":["/*\n * Copyright 2024 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 { convertLegacyRouteRefs } from '@backstage/core-compat-api';\nimport { createFrontendPlugin } from '@backstage/frontend-plugin-api';\nimport {\n rootRouteRef,\n actionsRouteRef,\n editRouteRef,\n registerComponentRouteRef,\n scaffolderListTaskRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n templatingExtensionsRouteRef,\n viewTechDocRouteRef,\n} from '../routes';\nimport {\n repoUrlPickerFormField,\n scaffolderNavItem,\n scaffolderPage,\n scaffolderApi,\n} from './extensions';\nimport { formFieldsApi } from '@backstage/plugin-scaffolder-react/alpha';\nimport { formDecoratorsApi } from './api';\n\n/** @alpha */\nexport default createFrontendPlugin({\n pluginId: 'scaffolder',\n info: { packageJson: () => import('../../package.json') },\n routes: convertLegacyRouteRefs({\n root: rootRouteRef,\n selectedTemplate: selectedTemplateRouteRef,\n ongoingTask: scaffolderTaskRouteRef,\n actions: actionsRouteRef,\n listTasks: scaffolderListTaskRouteRef,\n edit: editRouteRef,\n templatingExtensions: templatingExtensionsRouteRef,\n }),\n externalRoutes: convertLegacyRouteRefs({\n registerComponent: registerComponentRouteRef,\n viewTechDoc: viewTechDocRouteRef,\n }),\n extensions: [\n scaffolderApi,\n scaffolderPage,\n scaffolderNavItem,\n formDecoratorsApi,\n formFieldsApi,\n repoUrlPickerFormField,\n ],\n});\n"],"names":[],"mappings":";;;;;;;;AAuCA,aAAe,oBAAqB,CAAA;AAAA,EAClC,QAAU,EAAA,YAAA;AAAA,EACV,MAAM,EAAE,WAAA,EAAa,MAAM,OAAO,2CAAoB,CAAE,EAAA;AAAA,EACxD,QAAQ,sBAAuB,CAAA;AAAA,IAC7B,IAAM,EAAA,YAAA;AAAA,IACN,gBAAkB,EAAA,wBAAA;AAAA,IAClB,WAAa,EAAA,sBAAA;AAAA,IACb,OAAS,EAAA,eAAA;AAAA,IACT,SAAW,EAAA,0BAAA;AAAA,IACX,IAAM,EAAA,YAAA;AAAA,IACN,oBAAsB,EAAA;AAAA,GACvB,CAAA;AAAA,EACD,gBAAgB,sBAAuB,CAAA;AAAA,IACrC,iBAAmB,EAAA,yBAAA;AAAA,IACnB,WAAa,EAAA;AAAA,GACd,CAAA;AAAA,EACD,UAAY,EAAA;AAAA,IACV,aAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA;AAEJ,CAAC,CAAA;;;;"}
|
|
@@ -21,18 +21,24 @@ import ExpandLessIcon from '@material-ui/icons/ExpandLess';
|
|
|
21
21
|
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
|
|
22
22
|
import WrapText from '@material-ui/icons/WrapText';
|
|
23
23
|
import classNames from 'classnames';
|
|
24
|
-
import { Fragment as Fragment$1
|
|
24
|
+
import { cloneElement, Fragment as Fragment$1 } from 'react';
|
|
25
25
|
import { scaffolderTranslationRef } from '../../translation.esm.js';
|
|
26
26
|
|
|
27
|
-
const
|
|
28
|
-
|
|
27
|
+
const compositeSchemaProperties = ["allOf", "anyOf", "not", "oneOf"];
|
|
28
|
+
const getTypes = (schema) => {
|
|
29
|
+
if (!schema.type) {
|
|
30
|
+
if (Object.getOwnPropertyNames(schema).some(
|
|
31
|
+
(p) => compositeSchemaProperties.includes(p)
|
|
32
|
+
)) {
|
|
33
|
+
return void 0;
|
|
34
|
+
}
|
|
29
35
|
return ["unknown"];
|
|
30
36
|
}
|
|
31
|
-
if (
|
|
32
|
-
return [
|
|
37
|
+
if (schema.type !== "array") {
|
|
38
|
+
return [schema.type].flat();
|
|
33
39
|
}
|
|
34
40
|
return [
|
|
35
|
-
`${
|
|
41
|
+
`${schema.type}(${schema.items?.type ?? "unknown"})`
|
|
36
42
|
];
|
|
37
43
|
};
|
|
38
44
|
const getSubschemas = (schema) => {
|
|
@@ -40,7 +46,6 @@ const getSubschemas = (schema) => {
|
|
|
40
46
|
return {};
|
|
41
47
|
}
|
|
42
48
|
const base = {};
|
|
43
|
-
const compositeSchemaProperties = ["allOf", "anyOf", "not", "oneOf"];
|
|
44
49
|
const subschemas = {};
|
|
45
50
|
for (const [key, value] of Object.entries(schema)) {
|
|
46
51
|
if (compositeSchemaProperties.includes(key)) {
|
|
@@ -153,7 +158,9 @@ const inspectSchema = (schema) => {
|
|
|
153
158
|
return { canSubschema: false, hasEnum: false };
|
|
154
159
|
}
|
|
155
160
|
return {
|
|
156
|
-
canSubschema:
|
|
161
|
+
canSubschema: Object.getOwnPropertyNames(schema).some(
|
|
162
|
+
(p) => compositeSchemaProperties.includes(p)
|
|
163
|
+
) || getTypes(schema).some((t) => t.includes("object")),
|
|
157
164
|
hasEnum: !!enumFrom(schema)
|
|
158
165
|
};
|
|
159
166
|
};
|
|
@@ -168,8 +175,8 @@ const typeColumn = {
|
|
|
168
175
|
const [isExpanded, setIsExpanded] = context.expanded;
|
|
169
176
|
const id = generateId(element, context);
|
|
170
177
|
const info = inspectSchema(element.schema);
|
|
171
|
-
return /* @__PURE__ */ jsx(Fragment, { children: types
|
|
172
|
-
(type, index) =>
|
|
178
|
+
return /* @__PURE__ */ jsx(Fragment, { children: types?.map(
|
|
179
|
+
(type, index) => info.canSubschema || info.hasEnum && index === 0 ? /* @__PURE__ */ jsx(
|
|
173
180
|
Chip,
|
|
174
181
|
{
|
|
175
182
|
"data-testid": `expand_${id}`,
|
|
@@ -245,7 +252,7 @@ const RenderSchema = ({
|
|
|
245
252
|
const columnStyles = useColumnStyles();
|
|
246
253
|
const result = (() => {
|
|
247
254
|
if (typeof schema === "object") {
|
|
248
|
-
const subschemas =
|
|
255
|
+
const subschemas = getSubschemas(schema);
|
|
249
256
|
let columns;
|
|
250
257
|
let elements;
|
|
251
258
|
if (strategy === "root") {
|
|
@@ -286,7 +293,7 @@ const RenderSchema = ({
|
|
|
286
293
|
/* @__PURE__ */ jsx(TableBody, { children: elements.map((el) => {
|
|
287
294
|
const id = generateId(el, context);
|
|
288
295
|
const info = inspectSchema(el.schema);
|
|
289
|
-
|
|
296
|
+
const rows = [
|
|
290
297
|
/* @__PURE__ */ jsx(TableRow, { "data-testid": `${strategy}-row_${id}`, children: columns.map((col) => /* @__PURE__ */ jsx(
|
|
291
298
|
TableCell,
|
|
292
299
|
{
|
|
@@ -294,59 +301,61 @@ const RenderSchema = ({
|
|
|
294
301
|
children: col.render(el, context)
|
|
295
302
|
},
|
|
296
303
|
col.key
|
|
297
|
-
)) })
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
304
|
+
)) })
|
|
305
|
+
];
|
|
306
|
+
if (typeof el.schema !== "boolean" && (info.canSubschema || info.hasEnum)) {
|
|
307
|
+
let details = /* @__PURE__ */ jsxs(Box, { "data-testid": `expansion_${id}`, sx: { margin: 1 }, children: [
|
|
308
|
+
info.canSubschema && /* @__PURE__ */ jsx(
|
|
309
|
+
RenderSchema,
|
|
310
|
+
{
|
|
311
|
+
strategy: "properties",
|
|
312
|
+
context: {
|
|
313
|
+
...context,
|
|
314
|
+
parentId: id,
|
|
315
|
+
parent: context
|
|
316
|
+
},
|
|
317
|
+
schema: el.schema.type === "array" ? el.schema.items : el.schema
|
|
318
|
+
}
|
|
319
|
+
),
|
|
320
|
+
info.hasEnum && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
321
|
+
cloneElement(
|
|
322
|
+
context.headings[0],
|
|
323
|
+
{},
|
|
324
|
+
"Valid values:"
|
|
325
|
+
),
|
|
326
|
+
/* @__PURE__ */ jsx(
|
|
327
|
+
RenderEnum,
|
|
305
328
|
{
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
children: /* @__PURE__ */ jsxs(
|
|
310
|
-
Box,
|
|
311
|
-
{
|
|
312
|
-
"data-testid": `expansion_${id}`,
|
|
313
|
-
sx: { margin: 1 },
|
|
314
|
-
children: [
|
|
315
|
-
info.canSubschema && /* @__PURE__ */ jsx(
|
|
316
|
-
RenderSchema,
|
|
317
|
-
{
|
|
318
|
-
strategy: "properties",
|
|
319
|
-
context: {
|
|
320
|
-
...context,
|
|
321
|
-
parentId: id,
|
|
322
|
-
parent: context
|
|
323
|
-
},
|
|
324
|
-
schema: el.schema.type === "array" ? el.schema.items : el.schema
|
|
325
|
-
}
|
|
326
|
-
),
|
|
327
|
-
info.hasEnum && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
328
|
-
cloneElement(
|
|
329
|
-
context.headings[0],
|
|
330
|
-
{},
|
|
331
|
-
"Valid values:"
|
|
332
|
-
),
|
|
333
|
-
/* @__PURE__ */ jsx(
|
|
334
|
-
RenderEnum,
|
|
335
|
-
{
|
|
336
|
-
"data-testid": `enum_${id}`,
|
|
337
|
-
e: enumFrom(el.schema),
|
|
338
|
-
classes: context.classes
|
|
339
|
-
}
|
|
340
|
-
)
|
|
341
|
-
] })
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
)
|
|
329
|
+
"data-testid": `enum_${id}`,
|
|
330
|
+
e: enumFrom(el.schema),
|
|
331
|
+
classes: context.classes
|
|
345
332
|
}
|
|
346
333
|
)
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
|
|
334
|
+
] })
|
|
335
|
+
] });
|
|
336
|
+
if (getTypes(el.schema)) {
|
|
337
|
+
details = /* @__PURE__ */ jsx(
|
|
338
|
+
Collapse,
|
|
339
|
+
{
|
|
340
|
+
in: isExpanded[id],
|
|
341
|
+
timeout: "auto",
|
|
342
|
+
unmountOnExit: true,
|
|
343
|
+
children: details
|
|
344
|
+
}
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
rows.push(
|
|
348
|
+
/* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(
|
|
349
|
+
TableCell,
|
|
350
|
+
{
|
|
351
|
+
style: { paddingBottom: 0, paddingTop: 0 },
|
|
352
|
+
colSpan: columns.length,
|
|
353
|
+
children: details
|
|
354
|
+
}
|
|
355
|
+
) })
|
|
356
|
+
);
|
|
357
|
+
}
|
|
358
|
+
return /* @__PURE__ */ jsx(Fragment$1, { children: rows }, id);
|
|
350
359
|
}) })
|
|
351
360
|
]
|
|
352
361
|
}
|
|
@@ -356,11 +365,11 @@ const RenderSchema = ({
|
|
|
356
365
|
subschemas[sk].map((sub, index) => /* @__PURE__ */ jsx(
|
|
357
366
|
RenderSchema,
|
|
358
367
|
{
|
|
368
|
+
strategy: typeof sub !== "boolean" && "properties" in sub ? strategy : "root",
|
|
359
369
|
...{
|
|
360
|
-
strategy,
|
|
361
370
|
context: {
|
|
362
371
|
...context,
|
|
363
|
-
parentId: `${context.parentId}
|
|
372
|
+
parentId: `${context.parentId}_${sk}${index}`
|
|
364
373
|
},
|
|
365
374
|
schema: sub
|
|
366
375
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderSchema.esm.js","sources":["../../../src/components/RenderSchema/RenderSchema.tsx"],"sourcesContent":["/*\n * Copyright 2025 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 */\nimport { MarkdownContent } from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Box from '@material-ui/core/Box';\nimport Chip from '@material-ui/core/Chip';\nimport Collapse from '@material-ui/core/Collapse';\nimport IconButton from '@material-ui/core/IconButton';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport Paper from '@material-ui/core/Paper';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ClassNameMap } from '@material-ui/core/styles/withStyles';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport WrapText from '@material-ui/icons/WrapText';\nimport classNames from 'classnames';\nimport {\n JSONSchema7,\n JSONSchema7Definition,\n JSONSchema7Type,\n} from 'json-schema';\nimport { FC, JSX, cloneElement, Fragment } from 'react';\nimport { scaffolderTranslationRef } from '../../translation';\nimport { SchemaRenderContext, SchemaRenderStrategy } from './types';\nimport { TranslationMessages } from '../TemplatingExtensionsPage/types';\n\nconst getTypes = (properties: JSONSchema7) => {\n if (!properties.type) {\n return ['unknown'];\n }\n if (properties.type !== 'array') {\n return [properties.type].flat();\n }\n return [\n `${properties.type}(${\n (properties.items as JSONSchema7 | undefined)?.type ?? 'unknown'\n })`,\n ];\n};\n\nconst getSubschemas = (\n schema: JSONSchema7Definition,\n): Record<string, JSONSchema7Definition[]> => {\n if (typeof schema === 'boolean') {\n return {};\n }\n const base: Omit<JSONSchema7, keyof subSchemasType> = {};\n\n const compositeSchemaProperties = ['allOf', 'anyOf', 'not', 'oneOf'] as const;\n type subSchemasType = {\n [K in (typeof compositeSchemaProperties)[number]]?: JSONSchema7Definition[];\n };\n const subschemas: subSchemasType = {};\n\n for (const [key, value] of Object.entries(schema) as [\n keyof JSONSchema7,\n any,\n ][]) {\n if (compositeSchemaProperties.includes(key as keyof subSchemasType)) {\n let v;\n if (Array.isArray(value)) {\n if (!value.length) {\n continue;\n }\n v = value;\n } else if (value) {\n v = [value];\n } else {\n continue;\n }\n subschemas[key as keyof subSchemasType] = v as any;\n } else {\n base[key as Exclude<keyof JSONSchema7, keyof subSchemasType>] = value;\n }\n }\n return Object.fromEntries(\n Object.entries(subschemas).map(([key, sub]) => {\n const mergedSubschema = sub.map(alt => {\n if (typeof alt !== 'boolean' && alt.required) {\n const properties: JSONSchema7['properties'] = {};\n if (schema.properties) {\n for (const k of alt.required) {\n if (k in schema.properties) {\n properties[k] = schema.properties[k];\n }\n }\n }\n Object.assign(properties, alt.properties);\n return {\n ...base,\n ...alt,\n properties,\n };\n }\n return alt;\n });\n return [key, mergedSubschema];\n }),\n );\n};\n\nconst useColumnStyles = makeStyles({\n description: {\n width: '40%',\n whiteSpace: 'normal',\n wordWrap: 'break-word',\n '&.MuiTableCell-root': {\n whiteSpace: 'normal',\n },\n },\n standard: {\n whiteSpace: 'normal',\n },\n});\n\ntype SchemaRenderElement = {\n schema: JSONSchema7Definition;\n key?: string;\n required?: boolean;\n};\n\ntype RenderColumn = (\n element: SchemaRenderElement,\n context: SchemaRenderContext,\n) => JSX.Element;\n\ntype Column = {\n key: string;\n title: (t: TranslationMessages<typeof scaffolderTranslationRef>) => string;\n render: RenderColumn;\n className?: keyof ReturnType<typeof useColumnStyles>;\n};\n\nconst generateId = (\n element: SchemaRenderElement,\n context: SchemaRenderContext,\n) => {\n return element.key ? `${context.parentId}.${element.key}` : context.parentId;\n};\n\nconst nameColumn = {\n key: 'name',\n title: t => t('renderSchema.tableCell.name'),\n render: (element: SchemaRenderElement, context: SchemaRenderContext) => {\n return (\n <div\n className={classNames(context.classes.code, {\n [context.classes.codeRequired]: element.required,\n })}\n >\n {element.key}\n </div>\n );\n },\n} as Column;\n\nconst titleColumn = {\n key: 'title',\n title: t => t('renderSchema.tableCell.title'),\n render: (element: SchemaRenderElement) => (\n <MarkdownContent content={(element.schema as JSONSchema7).title ?? ''} />\n ),\n} as Column;\n\nconst descriptionColumn = {\n key: 'description',\n title: t => t('renderSchema.tableCell.description'),\n render: (element: SchemaRenderElement) => (\n <MarkdownContent\n content={(element.schema as JSONSchema7).description ?? ''}\n />\n ),\n className: 'description',\n} as Column;\n\nconst enumFrom = (schema: JSONSchema7) => {\n if (schema.type === 'array') {\n if (schema.items && typeof schema.items !== 'boolean') {\n if (Array.isArray(schema.items)) {\n const itemsWithEnum = schema.items\n .filter(e => typeof e === 'object' && 'enum' in e)\n .map(e => e as JSONSchema7);\n if (itemsWithEnum.length) {\n return itemsWithEnum[0].enum;\n }\n } else {\n return schema.items?.enum;\n }\n }\n return undefined;\n }\n return schema.enum;\n};\n\nconst inspectSchema = (\n schema: JSONSchema7Definition,\n): {\n canSubschema: boolean;\n hasEnum: boolean;\n} => {\n if (typeof schema === 'boolean') {\n return { canSubschema: false, hasEnum: false };\n }\n return {\n canSubschema: getTypes(schema).some(t => t.includes('object')),\n hasEnum: !!enumFrom(schema),\n };\n};\n\nconst typeColumn = {\n key: 'type',\n title: t => t('renderSchema.tableCell.type'),\n render: (element: SchemaRenderElement, context: SchemaRenderContext) => {\n if (typeof element.schema === 'boolean') {\n return <Typography>{element.schema ? 'any' : 'none'}</Typography>;\n }\n const types = getTypes(element.schema);\n const [isExpanded, setIsExpanded] = context.expanded;\n const id = generateId(element, context);\n const info = inspectSchema(element.schema);\n return (\n <>\n {types.map((type, index) =>\n type.includes('object') || (info.hasEnum && index === 0) ? (\n <Chip\n data-testid={`expand_${id}`}\n label={type}\n key={type}\n icon={isExpanded[id] ? <ExpandLessIcon /> : <ExpandMoreIcon />}\n variant=\"outlined\"\n onClick={() =>\n setIsExpanded(prevState => {\n return {\n ...prevState,\n [id]: !!!prevState[id],\n };\n })\n }\n />\n ) : (\n <Chip label={type} key={type} variant=\"outlined\" />\n ),\n )}\n </>\n );\n },\n} as Column;\n\nexport const RenderEnum: FC<{\n e: JSONSchema7Type[];\n classes: ClassNameMap;\n [key: string]: any;\n}> = ({\n e,\n classes,\n ...props\n}: {\n e: JSONSchema7Type[];\n classes: ClassNameMap;\n}) => {\n return (\n <List {...props}>\n {e.map((v, i) => {\n let inner: JSX.Element = (\n <Typography\n data-testid={`enum_el${i}`}\n className={classNames(classes.code)}\n >\n {JSON.stringify(v)}\n </Typography>\n );\n if (v !== null && ['object', 'array'].includes(typeof v)) {\n inner = (\n <>\n {inner}\n <Tooltip\n title={\n <Typography\n data-testid={`pretty_${i}`}\n className={classNames(classes.code)}\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {JSON.stringify(v, undefined, 2)}\n </Typography>\n }\n >\n <IconButton data-testid={`wrap-text_${i}`}>\n <WrapText />\n </IconButton>\n </Tooltip>\n </>\n );\n }\n return <ListItem key={i}>{inner}</ListItem>;\n })}\n </List>\n );\n};\n\nconst useTableStyles = makeStyles({\n schema: {\n width: '100%',\n overflowX: 'hidden',\n '& table': {\n width: '100%',\n tableLayout: 'fixed',\n },\n },\n});\n\nexport const RenderSchema = ({\n strategy,\n context,\n schema,\n}: {\n strategy: SchemaRenderStrategy;\n context: SchemaRenderContext;\n schema?: JSONSchema7Definition;\n}) => {\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const tableStyles = useTableStyles();\n const columnStyles = useColumnStyles();\n const result = (() => {\n if (typeof schema === 'object') {\n const subschemas =\n strategy === 'root' || !context.parent ? getSubschemas(schema) : {};\n let columns: Column[] | undefined;\n let elements: SchemaRenderElement[] | undefined;\n if (strategy === 'root') {\n elements = [{ schema }];\n columns = [typeColumn];\n if (schema.description) {\n columns.unshift(descriptionColumn);\n }\n if (schema.title) {\n columns.unshift(titleColumn);\n }\n } else if (schema.properties) {\n columns = [nameColumn, titleColumn, descriptionColumn, typeColumn];\n elements = Object.entries(schema.properties!).map(([key, v]) => ({\n schema: v,\n key,\n required: schema.required?.includes(key),\n }));\n } else if (!Object.keys(subschemas).length) {\n return undefined;\n }\n const [isExpanded] = context.expanded;\n\n return (\n <>\n {columns && elements && (\n <TableContainer component={Paper} className={tableStyles.schema}>\n <Table\n data-testid={`${strategy}_${context.parentId}`}\n size=\"small\"\n >\n <TableHead>\n <TableRow>\n {columns.map((col, index) => (\n <TableCell\n key={index}\n className={columnStyles[col.className ?? 'standard']}\n >\n {col.title(t)}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {elements.map(el => {\n const id = generateId(el, context);\n const info = inspectSchema(el.schema);\n return (\n <Fragment key={id}>\n <TableRow data-testid={`${strategy}-row_${id}`}>\n {columns!.map(col => (\n <TableCell\n key={col.key}\n className={\n columnStyles[col.className ?? 'standard']\n }\n >\n {col.render(el, context)}\n </TableCell>\n ))}\n </TableRow>\n {typeof el.schema !== 'boolean' &&\n (info.canSubschema || info.hasEnum) && (\n <TableRow>\n <TableCell\n style={{ paddingBottom: 0, paddingTop: 0 }}\n colSpan={columns!.length}\n >\n <Collapse\n in={isExpanded[id]}\n timeout=\"auto\"\n unmountOnExit\n >\n <Box\n data-testid={`expansion_${id}`}\n sx={{ margin: 1 }}\n >\n {info.canSubschema && (\n <RenderSchema\n strategy=\"properties\"\n context={{\n ...context,\n parentId: id,\n parent: context,\n }}\n schema={\n el.schema.type === 'array'\n ? (el.schema.items as\n | JSONSchema7\n | undefined)\n : el.schema\n }\n />\n )}\n {info.hasEnum && (\n <>\n {cloneElement(\n context.headings[0],\n {},\n 'Valid values:',\n )}\n <RenderEnum\n data-testid={`enum_${id}`}\n e={enumFrom(el.schema)!}\n classes={context.classes}\n />\n </>\n )}\n </Box>\n </Collapse>\n </TableCell>\n </TableRow>\n )}\n </Fragment>\n );\n })}\n </TableBody>\n </Table>\n </TableContainer>\n )}\n {Object.keys(subschemas).map(sk => (\n <Fragment key={sk}>\n {cloneElement(context.headings[0], {}, sk)}\n {subschemas[sk].map((sub, index) => (\n <RenderSchema\n key={index}\n {...{\n strategy,\n context: {\n ...context,\n parentId: `${context.parentId}_sub${index}`,\n },\n schema: sub,\n }}\n />\n ))}\n </Fragment>\n ))}\n </>\n );\n }\n return undefined;\n })();\n return result ?? <Typography>No schema defined</Typography>;\n};\n"],"names":["Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RenderSchema.esm.js","sources":["../../../src/components/RenderSchema/RenderSchema.tsx"],"sourcesContent":["/*\n * Copyright 2025 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 */\nimport { MarkdownContent } from '@backstage/core-components';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Box from '@material-ui/core/Box';\nimport Chip from '@material-ui/core/Chip';\nimport Collapse from '@material-ui/core/Collapse';\nimport IconButton from '@material-ui/core/IconButton';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport Paper from '@material-ui/core/Paper';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ClassNameMap } from '@material-ui/core/styles/withStyles';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport WrapText from '@material-ui/icons/WrapText';\nimport classNames from 'classnames';\nimport {\n JSONSchema7,\n JSONSchema7Definition,\n JSONSchema7Type,\n} from 'json-schema';\nimport { FC, JSX, cloneElement, Fragment, ReactElement } from 'react';\nimport { scaffolderTranslationRef } from '../../translation';\nimport { SchemaRenderContext, SchemaRenderStrategy } from './types';\nimport { TranslationMessages } from '../TemplatingExtensionsPage/types';\n\nconst compositeSchemaProperties = ['allOf', 'anyOf', 'not', 'oneOf'] as const;\n\ntype subSchemasType = {\n [K in (typeof compositeSchemaProperties)[number]]?: JSONSchema7Definition[];\n};\n\nconst getTypes = (schema: JSONSchema7) => {\n if (!schema.type) {\n if (\n Object.getOwnPropertyNames(schema).some(p =>\n compositeSchemaProperties.includes(p as any),\n )\n ) {\n return undefined;\n }\n return ['unknown'];\n }\n if (schema.type !== 'array') {\n return [schema.type].flat();\n }\n return [\n `${schema.type}(${\n (schema.items as JSONSchema7 | undefined)?.type ?? 'unknown'\n })`,\n ];\n};\n\nconst getSubschemas = (schema: JSONSchema7Definition): subSchemasType => {\n if (typeof schema === 'boolean') {\n return {};\n }\n const base: Omit<JSONSchema7, keyof subSchemasType> = {};\n\n const subschemas: subSchemasType = {};\n\n for (const [key, value] of Object.entries(schema) as [\n keyof JSONSchema7,\n any,\n ][]) {\n if (compositeSchemaProperties.includes(key as keyof subSchemasType)) {\n let v;\n if (Array.isArray(value)) {\n if (!value.length) {\n continue;\n }\n v = value;\n } else if (value) {\n v = [value];\n } else {\n continue;\n }\n subschemas[key as keyof subSchemasType] = v as any;\n } else {\n base[key as Exclude<keyof JSONSchema7, keyof subSchemasType>] = value;\n }\n }\n return Object.fromEntries(\n Object.entries(subschemas).map(([key, sub]) => {\n const mergedSubschema = sub.map(alt => {\n if (typeof alt !== 'boolean' && alt.required) {\n const properties: JSONSchema7['properties'] = {};\n if (schema.properties) {\n for (const k of alt.required) {\n if (k in schema.properties) {\n properties[k] = schema.properties[k];\n }\n }\n }\n Object.assign(properties, alt.properties);\n return {\n ...base,\n ...alt,\n properties,\n };\n }\n return alt;\n });\n return [key, mergedSubschema];\n }),\n );\n};\n\nconst useColumnStyles = makeStyles({\n description: {\n width: '40%',\n whiteSpace: 'normal',\n wordWrap: 'break-word',\n '&.MuiTableCell-root': {\n whiteSpace: 'normal',\n },\n },\n standard: {\n whiteSpace: 'normal',\n },\n});\n\ntype SchemaRenderElement = {\n schema: JSONSchema7Definition;\n key?: string;\n required?: boolean;\n};\n\ntype RenderColumn = (\n element: SchemaRenderElement,\n context: SchemaRenderContext,\n) => JSX.Element;\n\ntype Column = {\n key: string;\n title: (t: TranslationMessages<typeof scaffolderTranslationRef>) => string;\n render: RenderColumn;\n className?: keyof ReturnType<typeof useColumnStyles>;\n};\n\nconst generateId = (\n element: SchemaRenderElement,\n context: SchemaRenderContext,\n) => {\n return element.key ? `${context.parentId}.${element.key}` : context.parentId;\n};\n\nconst nameColumn = {\n key: 'name',\n title: t => t('renderSchema.tableCell.name'),\n render: (element: SchemaRenderElement, context: SchemaRenderContext) => {\n return (\n <div\n className={classNames(context.classes.code, {\n [context.classes.codeRequired]: element.required,\n })}\n >\n {element.key}\n </div>\n );\n },\n} as Column;\n\nconst titleColumn = {\n key: 'title',\n title: t => t('renderSchema.tableCell.title'),\n render: (element: SchemaRenderElement) => (\n <MarkdownContent content={(element.schema as JSONSchema7).title ?? ''} />\n ),\n} as Column;\n\nconst descriptionColumn = {\n key: 'description',\n title: t => t('renderSchema.tableCell.description'),\n render: (element: SchemaRenderElement) => (\n <MarkdownContent\n content={(element.schema as JSONSchema7).description ?? ''}\n />\n ),\n className: 'description',\n} as Column;\n\nconst enumFrom = (schema: JSONSchema7) => {\n if (schema.type === 'array') {\n if (schema.items && typeof schema.items !== 'boolean') {\n if (Array.isArray(schema.items)) {\n const itemsWithEnum = schema.items\n .filter(e => typeof e === 'object' && 'enum' in e)\n .map(e => e as JSONSchema7);\n if (itemsWithEnum.length) {\n return itemsWithEnum[0].enum;\n }\n } else {\n return schema.items?.enum;\n }\n }\n return undefined;\n }\n return schema.enum;\n};\n\nconst inspectSchema = (\n schema: JSONSchema7Definition,\n): {\n canSubschema: boolean;\n hasEnum: boolean;\n} => {\n if (typeof schema === 'boolean') {\n return { canSubschema: false, hasEnum: false };\n }\n return {\n canSubschema:\n Object.getOwnPropertyNames(schema).some(p =>\n compositeSchemaProperties.includes(p as any),\n ) || getTypes(schema)!.some(t => t.includes('object')),\n hasEnum: !!enumFrom(schema),\n };\n};\n\nconst typeColumn = {\n key: 'type',\n title: t => t('renderSchema.tableCell.type'),\n render: (element: SchemaRenderElement, context: SchemaRenderContext) => {\n if (typeof element.schema === 'boolean') {\n return <Typography>{element.schema ? 'any' : 'none'}</Typography>;\n }\n const types = getTypes(element.schema);\n const [isExpanded, setIsExpanded] = context.expanded;\n const id = generateId(element, context);\n const info = inspectSchema(element.schema);\n return (\n <>\n {types?.map((type, index) =>\n info.canSubschema || (info.hasEnum && index === 0) ? (\n <Chip\n data-testid={`expand_${id}`}\n label={type}\n key={type}\n icon={isExpanded[id] ? <ExpandLessIcon /> : <ExpandMoreIcon />}\n variant=\"outlined\"\n onClick={() =>\n setIsExpanded(prevState => {\n return {\n ...prevState,\n [id]: !!!prevState[id],\n };\n })\n }\n />\n ) : (\n <Chip label={type} key={type} variant=\"outlined\" />\n ),\n )}\n </>\n );\n },\n} as Column;\n\nexport const RenderEnum: FC<{\n e: JSONSchema7Type[];\n classes: ClassNameMap;\n [key: string]: any;\n}> = ({\n e,\n classes,\n ...props\n}: {\n e: JSONSchema7Type[];\n classes: ClassNameMap;\n}) => {\n return (\n <List {...props}>\n {e.map((v, i) => {\n let inner: JSX.Element = (\n <Typography\n data-testid={`enum_el${i}`}\n className={classNames(classes.code)}\n >\n {JSON.stringify(v)}\n </Typography>\n );\n if (v !== null && ['object', 'array'].includes(typeof v)) {\n inner = (\n <>\n {inner}\n <Tooltip\n title={\n <Typography\n data-testid={`pretty_${i}`}\n className={classNames(classes.code)}\n style={{ whiteSpace: 'pre-wrap' }}\n >\n {JSON.stringify(v, undefined, 2)}\n </Typography>\n }\n >\n <IconButton data-testid={`wrap-text_${i}`}>\n <WrapText />\n </IconButton>\n </Tooltip>\n </>\n );\n }\n return <ListItem key={i}>{inner}</ListItem>;\n })}\n </List>\n );\n};\n\nconst useTableStyles = makeStyles({\n schema: {\n width: '100%',\n overflowX: 'hidden',\n '& table': {\n width: '100%',\n tableLayout: 'fixed',\n },\n },\n});\n\nexport const RenderSchema = ({\n strategy,\n context,\n schema,\n}: {\n strategy: SchemaRenderStrategy;\n context: SchemaRenderContext;\n schema?: JSONSchema7Definition;\n}) => {\n const { t } = useTranslationRef(scaffolderTranslationRef);\n const tableStyles = useTableStyles();\n const columnStyles = useColumnStyles();\n const result = (() => {\n if (typeof schema === 'object') {\n const subschemas = getSubschemas(schema);\n let columns: Column[] | undefined;\n let elements: SchemaRenderElement[] | undefined;\n if (strategy === 'root') {\n elements = [{ schema }];\n columns = [typeColumn];\n if (schema.description) {\n columns.unshift(descriptionColumn);\n }\n if (schema.title) {\n columns.unshift(titleColumn);\n }\n } else if (schema.properties) {\n columns = [nameColumn, titleColumn, descriptionColumn, typeColumn];\n elements = Object.entries(schema.properties!).map(([key, v]) => ({\n schema: v,\n key,\n required: schema.required?.includes(key),\n }));\n } else if (!Object.keys(subschemas).length) {\n return undefined;\n }\n const [isExpanded] = context.expanded;\n\n return (\n <>\n {columns && elements && (\n <TableContainer component={Paper} className={tableStyles.schema}>\n <Table\n data-testid={`${strategy}_${context.parentId}`}\n size=\"small\"\n >\n <TableHead>\n <TableRow>\n {columns.map((col, index) => (\n <TableCell\n key={index}\n className={columnStyles[col.className ?? 'standard']}\n >\n {col.title(t)}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {elements.map(el => {\n const id = generateId(el, context);\n const info = inspectSchema(el.schema);\n const rows = [\n <TableRow data-testid={`${strategy}-row_${id}`}>\n {columns!.map(col => (\n <TableCell\n key={col.key}\n className={\n columnStyles[col.className ?? 'standard']\n }\n >\n {col.render(el, context)}\n </TableCell>\n ))}\n </TableRow>,\n ];\n if (\n typeof el.schema !== 'boolean' &&\n (info.canSubschema || info.hasEnum)\n ) {\n let details: ReactElement = (\n <Box data-testid={`expansion_${id}`} sx={{ margin: 1 }}>\n {info.canSubschema && (\n <RenderSchema\n strategy=\"properties\"\n context={{\n ...context,\n parentId: id,\n parent: context,\n }}\n schema={\n el.schema.type === 'array'\n ? (el.schema.items as JSONSchema7 | undefined)\n : el.schema\n }\n />\n )}\n {info.hasEnum && (\n <>\n {cloneElement(\n context.headings[0],\n {},\n 'Valid values:',\n )}\n <RenderEnum\n data-testid={`enum_${id}`}\n e={enumFrom(el.schema)!}\n classes={context.classes}\n />\n </>\n )}\n </Box>\n );\n if (getTypes(el.schema)) {\n details = (\n <Collapse\n in={isExpanded[id]}\n timeout=\"auto\"\n unmountOnExit\n >\n {details}\n </Collapse>\n );\n }\n rows.push(\n <TableRow>\n <TableCell\n style={{ paddingBottom: 0, paddingTop: 0 }}\n colSpan={columns!.length}\n >\n {details}\n </TableCell>\n </TableRow>,\n );\n }\n return <Fragment key={id}>{rows}</Fragment>;\n })}\n </TableBody>\n </Table>\n </TableContainer>\n )}\n {(Object.keys(subschemas) as Array<keyof subSchemasType>).map(sk => (\n <Fragment key={sk}>\n {cloneElement(context.headings[0], {}, sk)}\n {subschemas[sk]!.map((sub, index) => (\n <RenderSchema\n key={index}\n strategy={\n typeof sub !== 'boolean' && 'properties' in sub\n ? strategy\n : 'root'\n }\n {...{\n context: {\n ...context,\n parentId: `${context.parentId}_${sk}${index}`,\n },\n schema: sub,\n }}\n />\n ))}\n </Fragment>\n ))}\n </>\n );\n }\n return undefined;\n })();\n return result ?? <Typography>No schema defined</Typography>;\n};\n"],"names":["Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
var name = "@backstage/plugin-scaffolder";
|
|
2
|
+
var version = "1.31.1-next.1";
|
|
3
|
+
var description = "The Backstage plugin that helps you create new things";
|
|
4
|
+
var backstage = {
|
|
5
|
+
role: "frontend-plugin",
|
|
6
|
+
pluginId: "scaffolder",
|
|
7
|
+
pluginPackages: [
|
|
8
|
+
"@backstage/plugin-scaffolder",
|
|
9
|
+
"@backstage/plugin-scaffolder-backend",
|
|
10
|
+
"@backstage/plugin-scaffolder-common",
|
|
11
|
+
"@backstage/plugin-scaffolder-node",
|
|
12
|
+
"@backstage/plugin-scaffolder-node-test-utils",
|
|
13
|
+
"@backstage/plugin-scaffolder-react"
|
|
14
|
+
]
|
|
15
|
+
};
|
|
16
|
+
var publishConfig = {
|
|
17
|
+
access: "public"
|
|
18
|
+
};
|
|
19
|
+
var keywords = [
|
|
20
|
+
"backstage"
|
|
21
|
+
];
|
|
22
|
+
var homepage = "https://backstage.io";
|
|
23
|
+
var repository = {
|
|
24
|
+
type: "git",
|
|
25
|
+
url: "https://github.com/backstage/backstage",
|
|
26
|
+
directory: "plugins/scaffolder"
|
|
27
|
+
};
|
|
28
|
+
var license = "Apache-2.0";
|
|
29
|
+
var sideEffects = false;
|
|
30
|
+
var exports = {
|
|
31
|
+
".": "./src/index.ts",
|
|
32
|
+
"./alpha": "./src/alpha/index.ts",
|
|
33
|
+
"./package.json": "./package.json"
|
|
34
|
+
};
|
|
35
|
+
var main = "src/index.ts";
|
|
36
|
+
var types = "src/index.ts";
|
|
37
|
+
var typesVersions = {
|
|
38
|
+
"*": {
|
|
39
|
+
alpha: [
|
|
40
|
+
"src/alpha/index.ts"
|
|
41
|
+
],
|
|
42
|
+
"package.json": [
|
|
43
|
+
"package.json"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var files = [
|
|
48
|
+
"dist"
|
|
49
|
+
];
|
|
50
|
+
var scripts = {
|
|
51
|
+
build: "backstage-cli package build",
|
|
52
|
+
clean: "backstage-cli package clean",
|
|
53
|
+
lint: "backstage-cli package lint",
|
|
54
|
+
prepack: "backstage-cli package prepack",
|
|
55
|
+
postpack: "backstage-cli package postpack",
|
|
56
|
+
start: "backstage-cli package start",
|
|
57
|
+
test: "backstage-cli package test"
|
|
58
|
+
};
|
|
59
|
+
var dependencies = {
|
|
60
|
+
"@backstage/catalog-client": "workspace:^",
|
|
61
|
+
"@backstage/catalog-model": "workspace:^",
|
|
62
|
+
"@backstage/core-compat-api": "workspace:^",
|
|
63
|
+
"@backstage/core-components": "workspace:^",
|
|
64
|
+
"@backstage/core-plugin-api": "workspace:^",
|
|
65
|
+
"@backstage/errors": "workspace:^",
|
|
66
|
+
"@backstage/frontend-plugin-api": "workspace:^",
|
|
67
|
+
"@backstage/integration": "workspace:^",
|
|
68
|
+
"@backstage/integration-react": "workspace:^",
|
|
69
|
+
"@backstage/plugin-catalog-common": "workspace:^",
|
|
70
|
+
"@backstage/plugin-catalog-react": "workspace:^",
|
|
71
|
+
"@backstage/plugin-permission-react": "workspace:^",
|
|
72
|
+
"@backstage/plugin-scaffolder-common": "workspace:^",
|
|
73
|
+
"@backstage/plugin-scaffolder-react": "workspace:^",
|
|
74
|
+
"@backstage/types": "workspace:^",
|
|
75
|
+
"@codemirror/language": "^6.0.0",
|
|
76
|
+
"@codemirror/legacy-modes": "^6.1.0",
|
|
77
|
+
"@codemirror/view": "^6.0.0",
|
|
78
|
+
"@material-ui/core": "^4.12.2",
|
|
79
|
+
"@material-ui/icons": "^4.9.1",
|
|
80
|
+
"@material-ui/lab": "4.0.0-alpha.61",
|
|
81
|
+
"@microsoft/fetch-event-source": "^2.0.1",
|
|
82
|
+
"@react-hookz/web": "^24.0.0",
|
|
83
|
+
"@rjsf/core": "5.23.2",
|
|
84
|
+
"@rjsf/material-ui": "5.23.2",
|
|
85
|
+
"@rjsf/utils": "5.23.2",
|
|
86
|
+
"@rjsf/validator-ajv8": "5.23.2",
|
|
87
|
+
"@uiw/react-codemirror": "^4.9.3",
|
|
88
|
+
classnames: "^2.2.6",
|
|
89
|
+
"git-url-parse": "^15.0.0",
|
|
90
|
+
"humanize-duration": "^3.25.1",
|
|
91
|
+
"idb-keyval": "5.1.5",
|
|
92
|
+
"json-schema": "^0.4.0",
|
|
93
|
+
"json-schema-library": "^9.0.0",
|
|
94
|
+
jszip: "^3.10.1",
|
|
95
|
+
lodash: "^4.17.21",
|
|
96
|
+
luxon: "^3.0.0",
|
|
97
|
+
qs: "^6.9.4",
|
|
98
|
+
"react-resizable": "^3.0.5",
|
|
99
|
+
"react-use": "^17.2.4",
|
|
100
|
+
"react-window": "^1.8.10",
|
|
101
|
+
yaml: "^2.0.0",
|
|
102
|
+
"zen-observable": "^0.10.0",
|
|
103
|
+
zod: "^3.22.4",
|
|
104
|
+
"zod-to-json-schema": "^3.20.4"
|
|
105
|
+
};
|
|
106
|
+
var devDependencies = {
|
|
107
|
+
"@backstage/cli": "workspace:^",
|
|
108
|
+
"@backstage/core-app-api": "workspace:^",
|
|
109
|
+
"@backstage/dev-utils": "workspace:^",
|
|
110
|
+
"@backstage/plugin-catalog": "workspace:^",
|
|
111
|
+
"@backstage/plugin-permission-common": "workspace:^",
|
|
112
|
+
"@backstage/test-utils": "workspace:^",
|
|
113
|
+
"@testing-library/dom": "^10.0.0",
|
|
114
|
+
"@testing-library/jest-dom": "^6.0.0",
|
|
115
|
+
"@testing-library/react": "^16.0.0",
|
|
116
|
+
"@testing-library/user-event": "^14.0.0",
|
|
117
|
+
"@types/humanize-duration": "^3.18.1",
|
|
118
|
+
"@types/json-schema": "^7.0.9",
|
|
119
|
+
"@types/react": "^18.0.0",
|
|
120
|
+
"@types/react-resizable": "^3.0.8",
|
|
121
|
+
"@types/react-window": "^1.8.8",
|
|
122
|
+
msw: "^1.0.0",
|
|
123
|
+
react: "^18.0.2",
|
|
124
|
+
"react-dom": "^18.0.2",
|
|
125
|
+
"react-router-dom": "^6.3.0",
|
|
126
|
+
swr: "^2.0.0"
|
|
127
|
+
};
|
|
128
|
+
var peerDependencies = {
|
|
129
|
+
"@types/react": "^17.0.0 || ^18.0.0",
|
|
130
|
+
react: "^17.0.0 || ^18.0.0",
|
|
131
|
+
"react-dom": "^17.0.0 || ^18.0.0",
|
|
132
|
+
"react-router-dom": "^6.3.0"
|
|
133
|
+
};
|
|
134
|
+
var peerDependenciesMeta = {
|
|
135
|
+
"@types/react": {
|
|
136
|
+
optional: true
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
var _package = {
|
|
140
|
+
name: name,
|
|
141
|
+
version: version,
|
|
142
|
+
description: description,
|
|
143
|
+
backstage: backstage,
|
|
144
|
+
publishConfig: publishConfig,
|
|
145
|
+
keywords: keywords,
|
|
146
|
+
homepage: homepage,
|
|
147
|
+
repository: repository,
|
|
148
|
+
license: license,
|
|
149
|
+
sideEffects: sideEffects,
|
|
150
|
+
exports: exports,
|
|
151
|
+
main: main,
|
|
152
|
+
types: types,
|
|
153
|
+
typesVersions: typesVersions,
|
|
154
|
+
files: files,
|
|
155
|
+
scripts: scripts,
|
|
156
|
+
dependencies: dependencies,
|
|
157
|
+
devDependencies: devDependencies,
|
|
158
|
+
peerDependencies: peerDependencies,
|
|
159
|
+
peerDependenciesMeta: peerDependenciesMeta
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
export { backstage, _package as default, dependencies, description, devDependencies, exports, files, homepage, keywords, license, main, name, peerDependencies, peerDependenciesMeta, publishConfig, repository, scripts, sideEffects, types, typesVersions, version };
|
|
163
|
+
//# sourceMappingURL=package.json.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-scaffolder",
|
|
3
|
-
"version": "1.31.
|
|
3
|
+
"version": "1.31.1-next.1",
|
|
4
4
|
"description": "The Backstage plugin that helps you create new things",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -70,21 +70,21 @@
|
|
|
70
70
|
"test": "backstage-cli package test"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@backstage/catalog-client": "
|
|
74
|
-
"@backstage/catalog-model": "
|
|
75
|
-
"@backstage/core-compat-api": "
|
|
76
|
-
"@backstage/core-components": "
|
|
77
|
-
"@backstage/core-plugin-api": "
|
|
78
|
-
"@backstage/errors": "
|
|
79
|
-
"@backstage/frontend-plugin-api": "
|
|
80
|
-
"@backstage/integration": "
|
|
81
|
-
"@backstage/integration-react": "
|
|
82
|
-
"@backstage/plugin-catalog-common": "
|
|
83
|
-
"@backstage/plugin-catalog-react": "
|
|
84
|
-
"@backstage/plugin-permission-react": "
|
|
85
|
-
"@backstage/plugin-scaffolder-common": "
|
|
86
|
-
"@backstage/plugin-scaffolder-react": "
|
|
87
|
-
"@backstage/types": "
|
|
73
|
+
"@backstage/catalog-client": "1.10.1-next.0",
|
|
74
|
+
"@backstage/catalog-model": "1.7.4",
|
|
75
|
+
"@backstage/core-compat-api": "0.4.3-next.1",
|
|
76
|
+
"@backstage/core-components": "0.17.2",
|
|
77
|
+
"@backstage/core-plugin-api": "1.10.7",
|
|
78
|
+
"@backstage/errors": "1.2.7",
|
|
79
|
+
"@backstage/frontend-plugin-api": "0.10.3-next.0",
|
|
80
|
+
"@backstage/integration": "1.17.0",
|
|
81
|
+
"@backstage/integration-react": "1.2.7",
|
|
82
|
+
"@backstage/plugin-catalog-common": "1.1.4",
|
|
83
|
+
"@backstage/plugin-catalog-react": "1.18.1-next.1",
|
|
84
|
+
"@backstage/plugin-permission-react": "0.4.34",
|
|
85
|
+
"@backstage/plugin-scaffolder-common": "1.5.11",
|
|
86
|
+
"@backstage/plugin-scaffolder-react": "1.16.1-next.1",
|
|
87
|
+
"@backstage/types": "1.2.1",
|
|
88
88
|
"@codemirror/language": "^6.0.0",
|
|
89
89
|
"@codemirror/legacy-modes": "^6.1.0",
|
|
90
90
|
"@codemirror/view": "^6.0.0",
|
|
@@ -117,12 +117,12 @@
|
|
|
117
117
|
"zod-to-json-schema": "^3.20.4"
|
|
118
118
|
},
|
|
119
119
|
"devDependencies": {
|
|
120
|
-
"@backstage/cli": "
|
|
121
|
-
"@backstage/core-app-api": "
|
|
122
|
-
"@backstage/dev-utils": "
|
|
123
|
-
"@backstage/plugin-catalog": "
|
|
124
|
-
"@backstage/plugin-permission-common": "
|
|
125
|
-
"@backstage/test-utils": "
|
|
120
|
+
"@backstage/cli": "0.32.2-next.0",
|
|
121
|
+
"@backstage/core-app-api": "1.17.0",
|
|
122
|
+
"@backstage/dev-utils": "1.1.11-next.1",
|
|
123
|
+
"@backstage/plugin-catalog": "1.31.0-next.1",
|
|
124
|
+
"@backstage/plugin-permission-common": "0.9.0",
|
|
125
|
+
"@backstage/test-utils": "1.7.8",
|
|
126
126
|
"@testing-library/dom": "^10.0.0",
|
|
127
127
|
"@testing-library/jest-dom": "^6.0.0",
|
|
128
128
|
"@testing-library/react": "^16.0.0",
|