@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 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
@@ -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, cloneElement } from 'react';
24
+ import { cloneElement, Fragment as Fragment$1 } from 'react';
25
25
  import { scaffolderTranslationRef } from '../../translation.esm.js';
26
26
 
27
- const getTypes = (properties) => {
28
- if (!properties.type) {
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 (properties.type !== "array") {
32
- return [properties.type].flat();
37
+ if (schema.type !== "array") {
38
+ return [schema.type].flat();
33
39
  }
34
40
  return [
35
- `${properties.type}(${properties.items?.type ?? "unknown"})`
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: getTypes(schema).some((t) => t.includes("object")),
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.map(
172
- (type, index) => type.includes("object") || info.hasEnum && index === 0 ? /* @__PURE__ */ jsx(
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 = strategy === "root" || !context.parent ? getSubschemas(schema) : {};
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
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [
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
- typeof el.schema !== "boolean" && (info.canSubschema || info.hasEnum) && /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(
299
- TableCell,
300
- {
301
- style: { paddingBottom: 0, paddingTop: 0 },
302
- colSpan: columns.length,
303
- children: /* @__PURE__ */ jsx(
304
- Collapse,
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
- in: isExpanded[id],
307
- timeout: "auto",
308
- unmountOnExit: true,
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
- ] }, id);
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}_sub${index}`
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,MAAM,QAAA,GAAW,CAAC,UAA4B,KAAA;AAC5C,EAAI,IAAA,CAAC,WAAW,IAAM,EAAA;AACpB,IAAA,OAAO,CAAC,SAAS,CAAA;AAAA;AAEnB,EAAI,IAAA,UAAA,CAAW,SAAS,OAAS,EAAA;AAC/B,IAAA,OAAO,CAAC,UAAA,CAAW,IAAI,CAAA,CAAE,IAAK,EAAA;AAAA;AAEhC,EAAO,OAAA;AAAA,IACL,GAAG,UAAW,CAAA,IAAI,IACf,UAAW,CAAA,KAAA,EAAmC,QAAQ,SACzD,CAAA,CAAA;AAAA,GACF;AACF,CAAA;AAEA,MAAM,aAAA,GAAgB,CACpB,MAC4C,KAAA;AAC5C,EAAI,IAAA,OAAO,WAAW,SAAW,EAAA;AAC/B,IAAA,OAAO,EAAC;AAAA;AAEV,EAAA,MAAM,OAAgD,EAAC;AAEvD,EAAA,MAAM,yBAA4B,GAAA,CAAC,OAAS,EAAA,OAAA,EAAS,OAAO,OAAO,CAAA;AAInE,EAAA,MAAM,aAA6B,EAAC;AAEpC,EAAA,KAAA,MAAW,CAAC,GAAK,EAAA,KAAK,KAAK,MAAO,CAAA,OAAA,CAAQ,MAAM,CAG3C,EAAA;AACH,IAAI,IAAA,yBAAA,CAA0B,QAAS,CAAA,GAA2B,CAAG,EAAA;AACnE,MAAI,IAAA,CAAA;AACJ,MAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,QAAI,IAAA,CAAC,MAAM,MAAQ,EAAA;AACjB,UAAA;AAAA;AAEF,QAAI,CAAA,GAAA,KAAA;AAAA,iBACK,KAAO,EAAA;AAChB,QAAA,CAAA,GAAI,CAAC,KAAK,CAAA;AAAA,OACL,MAAA;AACL,QAAA;AAAA;AAEF,MAAA,UAAA,CAAW,GAA2B,CAAI,GAAA,CAAA;AAAA,KACrC,MAAA;AACL,MAAA,IAAA,CAAK,GAAuD,CAAI,GAAA,KAAA;AAAA;AAClE;AAEF,EAAA,OAAO,MAAO,CAAA,WAAA;AAAA,IACZ,MAAA,CAAO,QAAQ,UAAU,CAAA,CAAE,IAAI,CAAC,CAAC,GAAK,EAAA,GAAG,CAAM,KAAA;AAC7C,MAAM,MAAA,eAAA,GAAkB,GAAI,CAAA,GAAA,CAAI,CAAO,GAAA,KAAA;AACrC,QAAA,IAAI,OAAO,GAAA,KAAQ,SAAa,IAAA,GAAA,CAAI,QAAU,EAAA;AAC5C,UAAA,MAAM,aAAwC,EAAC;AAC/C,UAAA,IAAI,OAAO,UAAY,EAAA;AACrB,YAAW,KAAA,MAAA,CAAA,IAAK,IAAI,QAAU,EAAA;AAC5B,cAAI,IAAA,CAAA,IAAK,OAAO,UAAY,EAAA;AAC1B,gBAAA,UAAA,CAAW,CAAC,CAAA,GAAI,MAAO,CAAA,UAAA,CAAW,CAAC,CAAA;AAAA;AACrC;AACF;AAEF,UAAO,MAAA,CAAA,MAAA,CAAO,UAAY,EAAA,GAAA,CAAI,UAAU,CAAA;AACxC,UAAO,OAAA;AAAA,YACL,GAAG,IAAA;AAAA,YACH,GAAG,GAAA;AAAA,YACH;AAAA,WACF;AAAA;AAEF,QAAO,OAAA,GAAA;AAAA,OACR,CAAA;AACD,MAAO,OAAA,CAAC,KAAK,eAAe,CAAA;AAAA,KAC7B;AAAA,GACH;AACF,CAAA;AAEA,MAAM,kBAAkB,UAAW,CAAA;AAAA,EACjC,WAAa,EAAA;AAAA,IACX,KAAO,EAAA,KAAA;AAAA,IACP,UAAY,EAAA,QAAA;AAAA,IACZ,QAAU,EAAA,YAAA;AAAA,IACV,qBAAuB,EAAA;AAAA,MACrB,UAAY,EAAA;AAAA;AACd,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR,UAAY,EAAA;AAAA;AAEhB,CAAC,CAAA;AAoBD,MAAM,UAAA,GAAa,CACjB,OAAA,EACA,OACG,KAAA;AACH,EAAO,OAAA,OAAA,CAAQ,MAAM,CAAG,EAAA,OAAA,CAAQ,QAAQ,CAAI,CAAA,EAAA,OAAA,CAAQ,GAAG,CAAA,CAAA,GAAK,OAAQ,CAAA,QAAA;AACtE,CAAA;AAEA,MAAM,UAAa,GAAA;AAAA,EACjB,GAAK,EAAA,MAAA;AAAA,EACL,KAAA,EAAO,CAAK,CAAA,KAAA,CAAA,CAAE,6BAA6B,CAAA;AAAA,EAC3C,MAAA,EAAQ,CAAC,OAAA,EAA8B,OAAiC,KAAA;AACtE,IACE,uBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,UAAA,CAAW,OAAQ,CAAA,OAAA,CAAQ,IAAM,EAAA;AAAA,UAC1C,CAAC,OAAA,CAAQ,OAAQ,CAAA,YAAY,GAAG,OAAQ,CAAA;AAAA,SACzC,CAAA;AAAA,QAEA,QAAQ,EAAA,OAAA,CAAA;AAAA;AAAA,KACX;AAAA;AAGN,CAAA;AAEA,MAAM,WAAc,GAAA;AAAA,EAClB,GAAK,EAAA,OAAA;AAAA,EACL,KAAA,EAAO,CAAK,CAAA,KAAA,CAAA,CAAE,8BAA8B,CAAA;AAAA,EAC5C,MAAA,EAAQ,CAAC,OACP,qBAAA,GAAA,CAAC,mBAAgB,OAAU,EAAA,OAAA,CAAQ,MAAuB,CAAA,KAAA,IAAS,EAAI,EAAA;AAE3E,CAAA;AAEA,MAAM,iBAAoB,GAAA;AAAA,EACxB,GAAK,EAAA,aAAA;AAAA,EACL,KAAA,EAAO,CAAK,CAAA,KAAA,CAAA,CAAE,oCAAoC,CAAA;AAAA,EAClD,MAAA,EAAQ,CAAC,OACP,qBAAA,GAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAU,OAAQ,CAAA,MAAA,CAAuB,WAAe,IAAA;AAAA;AAAA,GAC1D;AAAA,EAEF,SAAW,EAAA;AACb,CAAA;AAEA,MAAM,QAAA,GAAW,CAAC,MAAwB,KAAA;AACxC,EAAI,IAAA,MAAA,CAAO,SAAS,OAAS,EAAA;AAC3B,IAAA,IAAI,MAAO,CAAA,KAAA,IAAS,OAAO,MAAA,CAAO,UAAU,SAAW,EAAA;AACrD,MAAA,IAAI,KAAM,CAAA,OAAA,CAAQ,MAAO,CAAA,KAAK,CAAG,EAAA;AAC/B,QAAA,MAAM,aAAgB,GAAA,MAAA,CAAO,KAC1B,CAAA,MAAA,CAAO,CAAK,CAAA,KAAA,OAAO,CAAM,KAAA,QAAA,IAAY,MAAU,IAAA,CAAC,CAChD,CAAA,GAAA,CAAI,OAAK,CAAgB,CAAA;AAC5B,QAAA,IAAI,cAAc,MAAQ,EAAA;AACxB,UAAO,OAAA,aAAA,CAAc,CAAC,CAAE,CAAA,IAAA;AAAA;AAC1B,OACK,MAAA;AACL,QAAA,OAAO,OAAO,KAAO,EAAA,IAAA;AAAA;AACvB;AAEF,IAAO,OAAA,KAAA,CAAA;AAAA;AAET,EAAA,OAAO,MAAO,CAAA,IAAA;AAChB,CAAA;AAEA,MAAM,aAAA,GAAgB,CACpB,MAIG,KAAA;AACH,EAAI,IAAA,OAAO,WAAW,SAAW,EAAA;AAC/B,IAAA,OAAO,EAAE,YAAA,EAAc,KAAO,EAAA,OAAA,EAAS,KAAM,EAAA;AAAA;AAE/C,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,SAAS,MAAM,CAAA,CAAE,KAAK,CAAK,CAAA,KAAA,CAAA,CAAE,QAAS,CAAA,QAAQ,CAAC,CAAA;AAAA,IAC7D,OAAS,EAAA,CAAC,CAAC,QAAA,CAAS,MAAM;AAAA,GAC5B;AACF,CAAA;AAEA,MAAM,UAAa,GAAA;AAAA,EACjB,GAAK,EAAA,MAAA;AAAA,EACL,KAAA,EAAO,CAAK,CAAA,KAAA,CAAA,CAAE,6BAA6B,CAAA;AAAA,EAC3C,MAAA,EAAQ,CAAC,OAAA,EAA8B,OAAiC,KAAA;AACtE,IAAI,IAAA,OAAO,OAAQ,CAAA,MAAA,KAAW,SAAW,EAAA;AACvC,MAAA,uBAAQ,GAAA,CAAA,UAAA,EAAA,EAAY,QAAQ,EAAA,OAAA,CAAA,MAAA,GAAS,QAAQ,MAAO,EAAA,CAAA;AAAA;AAEtD,IAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,OAAA,CAAQ,MAAM,CAAA;AACrC,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,OAAQ,CAAA,QAAA;AAC5C,IAAM,MAAA,EAAA,GAAK,UAAW,CAAA,OAAA,EAAS,OAAO,CAAA;AACtC,IAAM,MAAA,IAAA,GAAO,aAAc,CAAA,OAAA,CAAQ,MAAM,CAAA;AACzC,IAAA,uCAEK,QAAM,EAAA,KAAA,CAAA,GAAA;AAAA,MAAI,CAAC,IAAM,EAAA,KAAA,KAChB,IAAK,CAAA,QAAA,CAAS,QAAQ,CAAM,IAAA,IAAA,CAAK,OAAW,IAAA,KAAA,KAAU,CACpD,mBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,aAAA,EAAa,UAAU,EAAE,CAAA,CAAA;AAAA,UACzB,KAAO,EAAA,IAAA;AAAA,UAEP,IAAA,EAAM,WAAW,EAAE,CAAA,uBAAK,cAAe,EAAA,EAAA,CAAA,uBAAM,cAAe,EAAA,EAAA,CAAA;AAAA,UAC5D,OAAQ,EAAA,UAAA;AAAA,UACR,OAAA,EAAS,MACP,aAAA,CAAc,CAAa,SAAA,KAAA;AACzB,YAAO,OAAA;AAAA,cACL,GAAG,SAAA;AAAA,cACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE;AAAA,aACvB;AAAA,WACD;AAAA,SAAA;AAAA,QATE;AAAA,0BAaN,GAAA,CAAA,IAAA,EAAA,EAAK,OAAO,IAAiB,EAAA,OAAA,EAAQ,cAAd,IAAyB;AAAA,KAGvD,EAAA,CAAA;AAAA;AAGN,CAAA;AAEO,MAAM,aAIR,CAAC;AAAA,EACJ,CAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAGM,KAAA;AACJ,EACE,uBAAA,GAAA,CAAC,QAAM,GAAG,KAAA,EACP,YAAE,GAAI,CAAA,CAAC,GAAG,CAAM,KAAA;AACf,IAAA,IAAI,KACF,mBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAa,UAAU,CAAC,CAAA,CAAA;AAAA,QACxB,SAAA,EAAW,UAAW,CAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,QAEjC,QAAA,EAAA,IAAA,CAAK,UAAU,CAAC;AAAA;AAAA,KACnB;AAEF,IAAI,IAAA,CAAA,KAAM,QAAQ,CAAC,QAAA,EAAU,OAAO,CAAE,CAAA,QAAA,CAAS,OAAO,CAAC,CAAG,EAAA;AACxD,MAAA,KAAA,mBAEK,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,QAAA,KAAA;AAAA,wBACD,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,KACE,kBAAA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,aAAA,EAAa,UAAU,CAAC,CAAA,CAAA;AAAA,gBACxB,SAAA,EAAW,UAAW,CAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,gBAClC,KAAA,EAAO,EAAE,UAAA,EAAY,UAAW,EAAA;AAAA,gBAE/B,QAAK,EAAA,IAAA,CAAA,SAAA,CAAU,CAAG,EAAA,KAAA,CAAA,EAAW,CAAC;AAAA;AAAA,aACjC;AAAA,YAGF,QAAA,kBAAA,GAAA,CAAC,cAAW,aAAa,EAAA,CAAA,UAAA,EAAa,CAAC,CACrC,CAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA;AAAA;AAAA;AACF,OACF,EAAA,CAAA;AAAA;AAGJ,IAAO,uBAAA,GAAA,CAAC,QAAkB,EAAA,EAAA,QAAA,EAAA,KAAA,EAAA,EAAJ,CAAU,CAAA;AAAA,GACjC,CACH,EAAA,CAAA;AAEJ;AAEA,MAAM,iBAAiB,UAAW,CAAA;AAAA,EAChC,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,MAAA;AAAA,IACP,SAAW,EAAA,QAAA;AAAA,IACX,SAAW,EAAA;AAAA,MACT,KAAO,EAAA,MAAA;AAAA,MACP,WAAa,EAAA;AAAA;AACf;AAEJ,CAAC,CAAA;AAEM,MAAM,eAAe,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAIM,KAAA;AACJ,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAA,MAAM,eAAe,eAAgB,EAAA;AACrC,EAAA,MAAM,UAAU,MAAM;AACpB,IAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,MAAM,MAAA,UAAA,GACJ,aAAa,MAAU,IAAA,CAAC,QAAQ,MAAS,GAAA,aAAA,CAAc,MAAM,CAAA,GAAI,EAAC;AACpE,MAAI,IAAA,OAAA;AACJ,MAAI,IAAA,QAAA;AACJ,MAAA,IAAI,aAAa,MAAQ,EAAA;AACvB,QAAW,QAAA,GAAA,CAAC,EAAE,MAAA,EAAQ,CAAA;AACtB,QAAA,OAAA,GAAU,CAAC,UAAU,CAAA;AACrB,QAAA,IAAI,OAAO,WAAa,EAAA;AACtB,UAAA,OAAA,CAAQ,QAAQ,iBAAiB,CAAA;AAAA;AAEnC,QAAA,IAAI,OAAO,KAAO,EAAA;AAChB,UAAA,OAAA,CAAQ,QAAQ,WAAW,CAAA;AAAA;AAC7B,OACF,MAAA,IAAW,OAAO,UAAY,EAAA;AAC5B,QAAA,OAAA,GAAU,CAAC,UAAA,EAAY,WAAa,EAAA,iBAAA,EAAmB,UAAU,CAAA;AACjE,QAAW,QAAA,GAAA,MAAA,CAAO,OAAQ,CAAA,MAAA,CAAO,UAAW,CAAA,CAAE,IAAI,CAAC,CAAC,GAAK,EAAA,CAAC,CAAO,MAAA;AAAA,UAC/D,MAAQ,EAAA,CAAA;AAAA,UACR,GAAA;AAAA,UACA,QAAU,EAAA,MAAA,CAAO,QAAU,EAAA,QAAA,CAAS,GAAG;AAAA,SACvC,CAAA,CAAA;AAAA,iBACO,CAAC,MAAA,CAAO,IAAK,CAAA,UAAU,EAAE,MAAQ,EAAA;AAC1C,QAAO,OAAA,KAAA,CAAA;AAAA;AAET,MAAM,MAAA,CAAC,UAAU,CAAA,GAAI,OAAQ,CAAA,QAAA;AAE7B,MAAA,uBAEK,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,QAAA,OAAA,IAAW,4BACT,GAAA,CAAA,cAAA,EAAA,EAAe,WAAW,KAAO,EAAA,SAAA,EAAW,YAAY,MACvD,EAAA,QAAA,kBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAa,EAAA,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,QAAQ,QAAQ,CAAA,CAAA;AAAA,YAC5C,IAAK,EAAA,OAAA;AAAA,YAEL,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,aACC,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA,EACE,kBAAQ,GAAI,CAAA,CAAC,KAAK,KACjB,qBAAA,GAAA;AAAA,gBAAC,SAAA;AAAA,gBAAA;AAAA,kBAEC,SAAW,EAAA,YAAA,CAAa,GAAI,CAAA,SAAA,IAAa,UAAU,CAAA;AAAA,kBAElD,QAAA,EAAA,GAAA,CAAI,MAAM,CAAC;AAAA,iBAAA;AAAA,gBAHP;AAAA,eAKR,GACH,CACF,EAAA,CAAA;AAAA,8BACC,GAAA,CAAA,SAAA,EAAA,EACE,QAAS,EAAA,QAAA,CAAA,GAAA,CAAI,CAAM,EAAA,KAAA;AAClB,gBAAM,MAAA,EAAA,GAAK,UAAW,CAAA,EAAA,EAAI,OAAO,CAAA;AACjC,gBAAM,MAAA,IAAA,GAAO,aAAc,CAAA,EAAA,CAAG,MAAM,CAAA;AACpC,gBACE,uBAAA,IAAA,CAACA,YAAA,EACC,QAAA,EAAA;AAAA,kCAAC,GAAA,CAAA,QAAA,EAAA,EAAS,eAAa,CAAG,EAAA,QAAQ,QAAQ,EAAE,CAAA,CAAA,EACzC,QAAS,EAAA,OAAA,CAAA,GAAA,CAAI,CACZ,GAAA,qBAAA,GAAA;AAAA,oBAAC,SAAA;AAAA,oBAAA;AAAA,sBAEC,SACE,EAAA,YAAA,CAAa,GAAI,CAAA,SAAA,IAAa,UAAU,CAAA;AAAA,sBAGzC,QAAA,EAAA,GAAA,CAAI,MAAO,CAAA,EAAA,EAAI,OAAO;AAAA,qBAAA;AAAA,oBALlB,GAAI,CAAA;AAAA,mBAOZ,CACH,EAAA,CAAA;AAAA,kBACC,OAAO,GAAG,MAAW,KAAA,SAAA,KACnB,KAAK,YAAgB,IAAA,IAAA,CAAK,OACzB,CAAA,oBAAA,GAAA,CAAC,QACC,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,oBAAC,SAAA;AAAA,oBAAA;AAAA,sBACC,KAAO,EAAA,EAAE,aAAe,EAAA,CAAA,EAAG,YAAY,CAAE,EAAA;AAAA,sBACzC,SAAS,OAAS,CAAA,MAAA;AAAA,sBAElB,QAAA,kBAAA,GAAA;AAAA,wBAAC,QAAA;AAAA,wBAAA;AAAA,0BACC,EAAA,EAAI,WAAW,EAAE,CAAA;AAAA,0BACjB,OAAQ,EAAA,MAAA;AAAA,0BACR,aAAa,EAAA,IAAA;AAAA,0BAEb,QAAA,kBAAA,IAAA;AAAA,4BAAC,GAAA;AAAA,4BAAA;AAAA,8BACC,aAAA,EAAa,aAAa,EAAE,CAAA,CAAA;AAAA,8BAC5B,EAAA,EAAI,EAAE,MAAA,EAAQ,CAAE,EAAA;AAAA,8BAEf,QAAA,EAAA;AAAA,gCAAA,IAAA,CAAK,YACJ,oBAAA,GAAA;AAAA,kCAAC,YAAA;AAAA,kCAAA;AAAA,oCACC,QAAS,EAAA,YAAA;AAAA,oCACT,OAAS,EAAA;AAAA,sCACP,GAAG,OAAA;AAAA,sCACH,QAAU,EAAA,EAAA;AAAA,sCACV,MAAQ,EAAA;AAAA,qCACV;AAAA,oCACA,MAAA,EACE,GAAG,MAAO,CAAA,IAAA,KAAS,UACd,EAAG,CAAA,MAAA,CAAO,QAGX,EAAG,CAAA;AAAA;AAAA,iCAEX;AAAA,gCAED,IAAA,CAAK,2BAED,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,kCAAA,YAAA;AAAA,oCACC,OAAA,CAAQ,SAAS,CAAC,CAAA;AAAA,oCAClB,EAAC;AAAA,oCACD;AAAA,mCACF;AAAA,kDACA,GAAA;AAAA,oCAAC,UAAA;AAAA,oCAAA;AAAA,sCACC,aAAA,EAAa,QAAQ,EAAE,CAAA,CAAA;AAAA,sCACvB,CAAA,EAAG,QAAS,CAAA,EAAA,CAAG,MAAM,CAAA;AAAA,sCACrB,SAAS,OAAQ,CAAA;AAAA;AAAA;AACnB,iCACF,EAAA;AAAA;AAAA;AAAA;AAEJ;AAAA;AACF;AAAA,mBAEJ,EAAA;AAAA,iBAAA,EAAA,EA/DS,EAiEf,CAAA;AAAA,eAEH,CACH,EAAA;AAAA;AAAA;AAAA,SAEJ,EAAA,CAAA;AAAA,QAED,MAAA,CAAO,KAAK,UAAU,CAAA,CAAE,IAAI,CAC3B,EAAA,qBAAA,IAAA,CAACA,YAAA,EACE,QAAA,EAAA;AAAA,UAAA,YAAA,CAAa,QAAQ,QAAS,CAAA,CAAC,CAAG,EAAA,IAAI,EAAE,CAAA;AAAA,UACxC,WAAW,EAAE,CAAA,CAAE,GAAI,CAAA,CAAC,KAAK,KACxB,qBAAA,GAAA;AAAA,YAAC,YAAA;AAAA,YAAA;AAAA,cAEE,GAAG;AAAA,gBACF,QAAA;AAAA,gBACA,OAAS,EAAA;AAAA,kBACP,GAAG,OAAA;AAAA,kBACH,QAAU,EAAA,CAAA,EAAG,OAAQ,CAAA,QAAQ,OAAO,KAAK,CAAA;AAAA,iBAC3C;AAAA,gBACA,MAAQ,EAAA;AAAA;AACV,aAAA;AAAA,YARK;AAAA,WAUR;AAAA,SAAA,EAAA,EAdY,EAef,CACD;AAAA,OACH,EAAA,CAAA;AAAA;AAGJ,IAAO,OAAA,KAAA,CAAA;AAAA,GACN,GAAA;AACH,EAAO,OAAA,MAAA,oBAAW,GAAA,CAAA,UAAA,EAAA,EAAW,QAAiB,EAAA,mBAAA,EAAA,CAAA;AAChD;;;;"}
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.0",
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": "^1.10.0",
74
- "@backstage/catalog-model": "^1.7.4",
75
- "@backstage/core-compat-api": "^0.4.2",
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.2",
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.0",
84
- "@backstage/plugin-permission-react": "^0.4.34",
85
- "@backstage/plugin-scaffolder-common": "^1.5.11",
86
- "@backstage/plugin-scaffolder-react": "^1.16.0",
87
- "@backstage/types": "^1.2.1",
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": "^0.32.1",
121
- "@backstage/core-app-api": "^1.17.0",
122
- "@backstage/dev-utils": "^1.1.10",
123
- "@backstage/plugin-catalog": "^1.30.0",
124
- "@backstage/plugin-permission-common": "^0.9.0",
125
- "@backstage/test-utils": "^1.7.8",
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",