@backstage/plugin-scaffolder 1.33.1-next.0 → 1.34.0-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.
@@ -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, 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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"}
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 if (!(base?.type === 'object' || 'properties' in base)) {\n return subschemas;\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 if ('type' in schema || !Object.keys(subschemas).length) {\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 }\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Router.esm.js","sources":["../../../src/components/Router/Router.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ComponentType, PropsWithChildren } from 'react';\nimport { Routes, Route, useOutlet } from 'react-router-dom';\n\nimport {\n FieldExtensionOptions,\n FormProps,\n ReviewStepProps,\n TemplateGroupFilter,\n} from '@backstage/plugin-scaffolder-react';\nimport {\n ScaffolderTaskOutput,\n SecretsContextProvider,\n useCustomFieldExtensions,\n useCustomLayouts,\n} from '@backstage/plugin-scaffolder-react';\n\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from '../../extensions/default';\n\nimport {\n actionsRouteRef,\n editorRouteRef,\n customFieldsRouteRef,\n editRouteRef,\n scaffolderListTaskRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n templateFormRouteRef,\n templatingExtensionsRouteRef,\n} from '../../routes';\n\nimport { ActionsPage } from '../../components/ActionsPage';\nimport { ListTasksPage } from '../../components/ListTasksPage';\n\nimport {\n TemplateListPageProps,\n TemplateWizardPageProps,\n} from '@backstage/plugin-scaffolder/alpha';\nimport { TemplateListPage, TemplateWizardPage } from '../../alpha/components';\nimport { OngoingTask } from '../OngoingTask';\nimport {\n TemplateFormPage,\n TemplateIntroPage,\n TemplateEditorPage,\n CustomFieldsPage,\n} from '../../alpha/components/TemplateEditorPage';\nimport { RequirePermission } from '@backstage/plugin-permission-react';\nimport { templateManagementPermission } from '@backstage/plugin-scaffolder-common/alpha';\nimport { useApp } from '@backstage/core-plugin-api';\nimport { FormField, OpaqueFormField } from '@internal/scaffolder';\nimport { useAsync, useMountEffect } from '@react-hookz/web';\nimport { TemplatingExtensionsPage } from '../TemplatingExtensionsPage';\n\n/**\n * The Props for the Scaffolder Router\n *\n * @public\n */\nexport type RouterProps = {\n components?: {\n ReviewStepComponent?: ComponentType<ReviewStepProps>;\n TemplateCardComponent?: ComponentType<{\n template: TemplateEntityV1beta3;\n }>;\n TaskPageComponent?: ComponentType<PropsWithChildren<{}>>;\n EXPERIMENTAL_TemplateOutputsComponent?: ComponentType<{\n output?: ScaffolderTaskOutput;\n }>;\n EXPERIMENTAL_TemplateListPageComponent?: ComponentType<TemplateListPageProps>;\n EXPERIMENTAL_TemplateWizardPageComponent?: ComponentType<TemplateWizardPageProps>;\n };\n groups?: TemplateGroupFilter[];\n templateFilter?: (entity: TemplateEntityV1beta3) => boolean;\n headerOptions?: {\n pageTitleOverride?: string;\n title?: string;\n subtitle?: string;\n };\n defaultPreviewTemplate?: string;\n formProps?: FormProps;\n contextMenu?: {\n /** Whether to show a link to the template editor */\n editor?: boolean;\n /** Whether to show a link to the actions documentation */\n actions?: boolean;\n /** Whether to show a link to the tasks page */\n tasks?: boolean;\n /** Whether to show a link to the create page (on /create subroutes) */\n create?: boolean;\n };\n};\n\n/**\n * Internal router with additional props that aren't available in the public API\n * for the old frontend system.\n *\n * @internal\n */\nexport const InternalRouter = (\n props: PropsWithChildren<\n RouterProps & { formFieldLoaders?: Array<() => Promise<FormField>> }\n >,\n) => {\n const {\n components: {\n TemplateCardComponent,\n TaskPageComponent = OngoingTask,\n ReviewStepComponent,\n EXPERIMENTAL_TemplateOutputsComponent: TemplateOutputsComponent,\n EXPERIMENTAL_TemplateListPageComponent:\n TemplateListPageComponent = TemplateListPage,\n EXPERIMENTAL_TemplateWizardPageComponent:\n TemplateWizardPageComponent = TemplateWizardPage,\n } = {},\n } = props;\n const outlet = useOutlet() || props.children;\n const customFieldExtensions = useCustomFieldExtensions(outlet);\n const loadedFieldExtensions = useFormFieldLoaders(props.formFieldLoaders);\n\n const app = useApp();\n const { NotFoundErrorPage } = app.getComponents();\n\n const fieldExtensions = [\n ...customFieldExtensions,\n ...loadedFieldExtensions,\n ...DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS.filter(\n ({ name }) =>\n !customFieldExtensions.some(\n customFieldExtension => customFieldExtension.name === name,\n ),\n ),\n ] as FieldExtensionOptions[];\n\n const customLayouts = useCustomLayouts(outlet);\n\n return (\n <Routes>\n <Route\n path=\"/\"\n element={\n <TemplateListPageComponent\n TemplateCardComponent={TemplateCardComponent}\n contextMenu={props.contextMenu}\n groups={props.groups}\n templateFilter={props.templateFilter}\n headerOptions={props.headerOptions}\n />\n }\n />\n <Route\n path={selectedTemplateRouteRef.path}\n element={\n <SecretsContextProvider>\n <TemplateWizardPageComponent\n headerOptions={props.headerOptions}\n customFieldExtensions={fieldExtensions}\n layouts={customLayouts}\n components={{ ReviewStepComponent }}\n formProps={props.formProps}\n />\n </SecretsContextProvider>\n }\n />\n <Route\n path={scaffolderTaskRouteRef.path}\n element={\n <TaskPageComponent\n TemplateOutputsComponent={TemplateOutputsComponent}\n />\n }\n />\n <Route\n path={editRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <TemplateIntroPage />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n <Route\n path={customFieldsRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <CustomFieldsPage fieldExtensions={fieldExtensions} />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n <Route\n path={templateFormRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <TemplateFormPage\n layouts={customLayouts}\n formProps={props.formProps}\n fieldExtensions={fieldExtensions}\n />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n\n <Route\n path={actionsRouteRef.path}\n element={<ActionsPage contextMenu={props.contextMenu} />}\n />\n <Route\n path={scaffolderListTaskRouteRef.path}\n element={<ListTasksPage contextMenu={props.contextMenu} />}\n />\n <Route\n path={editorRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <TemplateEditorPage\n layouts={customLayouts}\n formProps={props.formProps}\n fieldExtensions={fieldExtensions}\n />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n <Route\n path={templatingExtensionsRouteRef.path}\n element={<TemplatingExtensionsPage />}\n />\n <Route path=\"*\" element={<NotFoundErrorPage />} />\n </Routes>\n );\n};\n\n/**\n * The Scaffolder Router\n *\n * @public\n */\nexport const Router = (props: PropsWithChildren<RouterProps>) => {\n return <InternalRouter {...props} />;\n};\n\nfunction useFormFieldLoaders(\n formFieldLoaders?: Array<() => Promise<FormField>>,\n) {\n const [{ result: loadedFieldExtensions }, { execute }] =\n useAsync(async () => {\n const loaded = await Promise.all(\n (formFieldLoaders ?? []).map(loader => loader()),\n );\n return loaded.map(f => OpaqueFormField.toInternal(f));\n }, []);\n useMountEffect(execute);\n return loadedFieldExtensions;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Router.esm.js","sources":["../../../src/components/Router/Router.tsx"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ComponentType, PropsWithChildren } from 'react';\nimport { Routes, Route, useOutlet } from 'react-router-dom';\n\nimport {\n FieldExtensionOptions,\n FormProps,\n ReviewStepProps,\n TemplateGroupFilter,\n} from '@backstage/plugin-scaffolder-react';\nimport {\n ScaffolderTaskOutput,\n SecretsContextProvider,\n useCustomFieldExtensions,\n useCustomLayouts,\n} from '@backstage/plugin-scaffolder-react';\n\nimport { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';\nimport { DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS } from '../../extensions/default';\n\nimport {\n actionsRouteRef,\n editorRouteRef,\n customFieldsRouteRef,\n editRouteRef,\n scaffolderListTaskRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n templateFormRouteRef,\n templatingExtensionsRouteRef,\n} from '../../routes';\n\nimport { ActionsPage } from '../../components/ActionsPage';\nimport { ListTasksPage } from '../../components/ListTasksPage';\n\nimport {\n TemplateListPageProps,\n TemplateWizardPageProps,\n} from '@backstage/plugin-scaffolder/alpha';\nimport { TemplateListPage, TemplateWizardPage } from '../../alpha/components';\nimport { OngoingTask } from '../OngoingTask';\nimport {\n TemplateFormPage,\n TemplateIntroPage,\n TemplateEditorPage,\n CustomFieldsPage,\n} from '../../alpha/components/TemplateEditorPage';\nimport { RequirePermission } from '@backstage/plugin-permission-react';\nimport { templateManagementPermission } from '@backstage/plugin-scaffolder-common/alpha';\nimport { useApp } from '@backstage/core-plugin-api';\nimport { OpaqueFormField } from '@internal/scaffolder';\nimport { useAsync, useMountEffect } from '@react-hookz/web';\nimport { TemplatingExtensionsPage } from '../TemplatingExtensionsPage';\nimport { FormField } from '@backstage/plugin-scaffolder-react/alpha';\n\n/**\n * The Props for the Scaffolder Router\n *\n * @public\n */\nexport type RouterProps = {\n components?: {\n ReviewStepComponent?: ComponentType<ReviewStepProps>;\n TemplateCardComponent?: ComponentType<{\n template: TemplateEntityV1beta3;\n }>;\n TaskPageComponent?: ComponentType<PropsWithChildren<{}>>;\n EXPERIMENTAL_TemplateOutputsComponent?: ComponentType<{\n output?: ScaffolderTaskOutput;\n }>;\n EXPERIMENTAL_TemplateListPageComponent?: ComponentType<TemplateListPageProps>;\n EXPERIMENTAL_TemplateWizardPageComponent?: ComponentType<TemplateWizardPageProps>;\n };\n groups?: TemplateGroupFilter[];\n templateFilter?: (entity: TemplateEntityV1beta3) => boolean;\n headerOptions?: {\n pageTitleOverride?: string;\n title?: string;\n subtitle?: string;\n };\n defaultPreviewTemplate?: string;\n formProps?: FormProps;\n contextMenu?: {\n /** Whether to show a link to the template editor */\n editor?: boolean;\n /** Whether to show a link to the actions documentation */\n actions?: boolean;\n /** Whether to show a link to the tasks page */\n tasks?: boolean;\n /** Whether to show a link to the create page (on /create subroutes) */\n create?: boolean;\n };\n};\n\n/**\n * Internal router with additional props that aren't available in the public API\n * for the old frontend system.\n *\n * @internal\n */\nexport const InternalRouter = (\n props: PropsWithChildren<\n RouterProps & { formFieldLoaders?: Array<() => Promise<FormField>> }\n >,\n) => {\n const {\n components: {\n TemplateCardComponent,\n TaskPageComponent = OngoingTask,\n ReviewStepComponent,\n EXPERIMENTAL_TemplateOutputsComponent: TemplateOutputsComponent,\n EXPERIMENTAL_TemplateListPageComponent:\n TemplateListPageComponent = TemplateListPage,\n EXPERIMENTAL_TemplateWizardPageComponent:\n TemplateWizardPageComponent = TemplateWizardPage,\n } = {},\n } = props;\n const outlet = useOutlet() || props.children;\n const customFieldExtensions = useCustomFieldExtensions(outlet);\n const loadedFieldExtensions = useFormFieldLoaders(props.formFieldLoaders);\n\n const app = useApp();\n const { NotFoundErrorPage } = app.getComponents();\n\n const fieldExtensions = [\n ...customFieldExtensions,\n ...loadedFieldExtensions,\n ...DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS.filter(\n ({ name }) =>\n !customFieldExtensions.some(\n customFieldExtension => customFieldExtension.name === name,\n ),\n ),\n ] as FieldExtensionOptions[];\n\n const customLayouts = useCustomLayouts(outlet);\n\n return (\n <Routes>\n <Route\n path=\"/\"\n element={\n <TemplateListPageComponent\n TemplateCardComponent={TemplateCardComponent}\n contextMenu={props.contextMenu}\n groups={props.groups}\n templateFilter={props.templateFilter}\n headerOptions={props.headerOptions}\n />\n }\n />\n <Route\n path={selectedTemplateRouteRef.path}\n element={\n <SecretsContextProvider>\n <TemplateWizardPageComponent\n headerOptions={props.headerOptions}\n customFieldExtensions={fieldExtensions}\n layouts={customLayouts}\n components={{ ReviewStepComponent }}\n formProps={props.formProps}\n />\n </SecretsContextProvider>\n }\n />\n <Route\n path={scaffolderTaskRouteRef.path}\n element={\n <TaskPageComponent\n TemplateOutputsComponent={TemplateOutputsComponent}\n />\n }\n />\n <Route\n path={editRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <TemplateIntroPage />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n <Route\n path={customFieldsRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <CustomFieldsPage fieldExtensions={fieldExtensions} />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n <Route\n path={templateFormRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <TemplateFormPage\n layouts={customLayouts}\n formProps={props.formProps}\n fieldExtensions={fieldExtensions}\n />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n\n <Route\n path={actionsRouteRef.path}\n element={<ActionsPage contextMenu={props.contextMenu} />}\n />\n <Route\n path={scaffolderListTaskRouteRef.path}\n element={<ListTasksPage contextMenu={props.contextMenu} />}\n />\n <Route\n path={editorRouteRef.path}\n element={\n <RequirePermission permission={templateManagementPermission}>\n <SecretsContextProvider>\n <TemplateEditorPage\n layouts={customLayouts}\n formProps={props.formProps}\n fieldExtensions={fieldExtensions}\n />\n </SecretsContextProvider>\n </RequirePermission>\n }\n />\n <Route\n path={templatingExtensionsRouteRef.path}\n element={<TemplatingExtensionsPage />}\n />\n <Route path=\"*\" element={<NotFoundErrorPage />} />\n </Routes>\n );\n};\n\n/**\n * The Scaffolder Router\n *\n * @public\n */\nexport const Router = (props: PropsWithChildren<RouterProps>) => {\n return <InternalRouter {...props} />;\n};\n\nfunction useFormFieldLoaders(\n formFieldLoaders?: Array<() => Promise<FormField>>,\n) {\n const [{ result: loadedFieldExtensions }, { execute }] =\n useAsync(async () => {\n const loaded = await Promise.all(\n (formFieldLoaders ?? []).map(loader => loader()),\n );\n return loaded.map(f => OpaqueFormField.toInternal(f));\n }, []);\n useMountEffect(execute);\n return loadedFieldExtensions;\n}\n"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ const BitbucketRepoPicker = (props) => {
39
39
  return;
40
40
  }
41
41
  scaffolderApi.autocomplete({
42
+ context: {},
42
43
  token: accessToken,
43
44
  resource: "workspaces",
44
45
  provider: "bitbucket-cloud"
@@ -1 +1 @@
1
- {"version":3,"file":"BitbucketRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { Select, SelectItem } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { useCallback, useEffect, useState } from 'react';\nimport useDebounce from 'react-use/esm/useDebounce';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { BaseRepoUrlPickerProps } from './types';\n\n/**\n * The underlying component that is rendered in the form for the `BitbucketRepoPicker`\n * field extension.\n *\n * @public\n * @param allowedOwners - Allowed workspaces for the Bitbucket cloud repository\n * @param allowedProjects - Allowed projects for the Bitbucket cloud repository\n *\n */\nexport const BitbucketRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n allowedProjects?: string[];\n accessToken?: string;\n }>,\n) => {\n const {\n allowedOwners = [],\n allowedProjects = [],\n onChange,\n rawErrors,\n state,\n accessToken,\n isDisabled,\n } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const { host, workspace, project } = state;\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners?.map(i => ({ label: i, value: i }))\n : [];\n const projectItems: SelectItem[] = allowedProjects\n ? allowedProjects?.map(i => ({ label: i, value: i }))\n : [];\n\n useEffect(() => {\n if (host === 'bitbucket.org' && allowedOwners.length) {\n onChange({ workspace: allowedOwners[0] });\n }\n }, [allowedOwners, host, onChange]);\n\n const scaffolderApi = useApi(scaffolderApiRef);\n\n const [availableWorkspaces, setAvailableWorkspaces] = useState<string[]>([]);\n const [availableProjects, setAvailableProjects] = useState<string[]>([]);\n\n // Update available workspaces when client is available\n const updateAvailableWorkspaces = useCallback(() => {\n if (\n !scaffolderApi.autocomplete ||\n !accessToken ||\n host !== 'bitbucket.org'\n ) {\n setAvailableWorkspaces([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'workspaces',\n provider: 'bitbucket-cloud',\n })\n .then(({ results }) => {\n setAvailableWorkspaces(results.map(r => r.id));\n })\n .catch(() => {\n setAvailableWorkspaces([]);\n });\n }, [scaffolderApi, accessToken, host]);\n\n useDebounce(updateAvailableWorkspaces, 500, [updateAvailableWorkspaces]);\n\n // Update available projects when client is available and workspace changes\n const updateAvailableProjects = useCallback(() => {\n if (\n !scaffolderApi.autocomplete ||\n !accessToken ||\n host !== 'bitbucket.org' ||\n !workspace\n ) {\n setAvailableProjects([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'projects',\n context: { workspace },\n provider: 'bitbucket-cloud',\n })\n .then(({ results }) => {\n setAvailableProjects(results.map(r => r.id));\n })\n .catch(() => {\n setAvailableProjects([]);\n });\n }, [scaffolderApi, accessToken, host, workspace]);\n\n useDebounce(updateAvailableProjects, 500, [updateAvailableProjects]);\n\n // Update available repositories when client is available and workspace or project changes\n const updateAvailableRepositories = useCallback(() => {\n if (\n !scaffolderApi.autocomplete ||\n !accessToken ||\n host !== 'bitbucket.org' ||\n !workspace ||\n !project\n ) {\n onChange({ availableRepos: [] });\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'repositories',\n context: { workspace, project },\n provider: 'bitbucket-cloud',\n })\n .then(({ results }) => {\n onChange({\n availableRepos: results.map(r => {\n return { name: r.id };\n }),\n });\n })\n .catch(() => {\n onChange({ availableRepos: [] });\n });\n }, [scaffolderApi, accessToken, host, workspace, project, onChange]);\n\n useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);\n\n return (\n <>\n {host === 'bitbucket.org' && (\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !workspace}\n >\n {allowedOwners?.length ? (\n <Select\n native\n label={t('fields.bitbucketRepoPicker.workspaces.title')}\n onChange={s =>\n onChange({ workspace: String(Array.isArray(s) ? s[0] : s) })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={workspace}\n items={ownerItems}\n />\n ) : (\n <Autocomplete\n value={workspace}\n onChange={(_, newValue) => {\n onChange({ workspace: newValue || '' });\n }}\n options={availableWorkspaces}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.bitbucketRepoPicker.workspaces.inputTitle')}\n disabled={isDisabled}\n required\n />\n )}\n disabled={isDisabled}\n freeSolo\n autoSelect\n />\n )}\n <FormHelperText>\n {t('fields.bitbucketRepoPicker.workspaces.description')}\n </FormHelperText>\n </FormControl>\n )}\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !project}\n >\n {allowedProjects?.length ? (\n <Select\n native\n label={t('fields.bitbucketRepoPicker.project.title')}\n onChange={s =>\n onChange({ project: String(Array.isArray(s) ? s[0] : s) })\n }\n disabled={isDisabled || allowedProjects.length === 1}\n selected={project}\n items={projectItems}\n />\n ) : (\n <Autocomplete\n value={project}\n onChange={(_, newValue) => {\n onChange({ project: newValue || '' });\n }}\n options={availableProjects}\n disabled={isDisabled}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.bitbucketRepoPicker.project.inputTitle')}\n disabled={isDisabled}\n required\n />\n )}\n freeSolo\n autoSelect\n />\n )}\n <FormHelperText>\n {t('fields.bitbucketRepoPicker.project.description')}\n </FormHelperText>\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BitbucketRepoPicker.esm.js","sources":["../../../../src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { Select, SelectItem } from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderApiRef } from '@backstage/plugin-scaffolder-react';\nimport FormControl from '@material-ui/core/FormControl';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport { useCallback, useEffect, useState } from 'react';\nimport useDebounce from 'react-use/esm/useDebounce';\nimport { scaffolderTranslationRef } from '../../../translation';\nimport { BaseRepoUrlPickerProps } from './types';\n\n/**\n * The underlying component that is rendered in the form for the `BitbucketRepoPicker`\n * field extension.\n *\n * @public\n * @param allowedOwners - Allowed workspaces for the Bitbucket cloud repository\n * @param allowedProjects - Allowed projects for the Bitbucket cloud repository\n *\n */\nexport const BitbucketRepoPicker = (\n props: BaseRepoUrlPickerProps<{\n allowedOwners?: string[];\n allowedProjects?: string[];\n accessToken?: string;\n }>,\n) => {\n const {\n allowedOwners = [],\n allowedProjects = [],\n onChange,\n rawErrors,\n state,\n accessToken,\n isDisabled,\n } = props;\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const { host, workspace, project } = state;\n const ownerItems: SelectItem[] = allowedOwners\n ? allowedOwners?.map(i => ({ label: i, value: i }))\n : [];\n const projectItems: SelectItem[] = allowedProjects\n ? allowedProjects?.map(i => ({ label: i, value: i }))\n : [];\n\n useEffect(() => {\n if (host === 'bitbucket.org' && allowedOwners.length) {\n onChange({ workspace: allowedOwners[0] });\n }\n }, [allowedOwners, host, onChange]);\n\n const scaffolderApi = useApi(scaffolderApiRef);\n\n const [availableWorkspaces, setAvailableWorkspaces] = useState<string[]>([]);\n const [availableProjects, setAvailableProjects] = useState<string[]>([]);\n\n // Update available workspaces when client is available\n const updateAvailableWorkspaces = useCallback(() => {\n if (\n !scaffolderApi.autocomplete ||\n !accessToken ||\n host !== 'bitbucket.org'\n ) {\n setAvailableWorkspaces([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n context: {},\n token: accessToken,\n resource: 'workspaces',\n provider: 'bitbucket-cloud',\n })\n .then(({ results }) => {\n setAvailableWorkspaces(results.map(r => r.id));\n })\n .catch(() => {\n setAvailableWorkspaces([]);\n });\n }, [scaffolderApi, accessToken, host]);\n\n useDebounce(updateAvailableWorkspaces, 500, [updateAvailableWorkspaces]);\n\n // Update available projects when client is available and workspace changes\n const updateAvailableProjects = useCallback(() => {\n if (\n !scaffolderApi.autocomplete ||\n !accessToken ||\n host !== 'bitbucket.org' ||\n !workspace\n ) {\n setAvailableProjects([]);\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'projects',\n context: { workspace },\n provider: 'bitbucket-cloud',\n })\n .then(({ results }) => {\n setAvailableProjects(results.map(r => r.id));\n })\n .catch(() => {\n setAvailableProjects([]);\n });\n }, [scaffolderApi, accessToken, host, workspace]);\n\n useDebounce(updateAvailableProjects, 500, [updateAvailableProjects]);\n\n // Update available repositories when client is available and workspace or project changes\n const updateAvailableRepositories = useCallback(() => {\n if (\n !scaffolderApi.autocomplete ||\n !accessToken ||\n host !== 'bitbucket.org' ||\n !workspace ||\n !project\n ) {\n onChange({ availableRepos: [] });\n return;\n }\n\n scaffolderApi\n .autocomplete({\n token: accessToken,\n resource: 'repositories',\n context: { workspace, project },\n provider: 'bitbucket-cloud',\n })\n .then(({ results }) => {\n onChange({\n availableRepos: results.map(r => {\n return { name: r.id };\n }),\n });\n })\n .catch(() => {\n onChange({ availableRepos: [] });\n });\n }, [scaffolderApi, accessToken, host, workspace, project, onChange]);\n\n useDebounce(updateAvailableRepositories, 500, [updateAvailableRepositories]);\n\n return (\n <>\n {host === 'bitbucket.org' && (\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !workspace}\n >\n {allowedOwners?.length ? (\n <Select\n native\n label={t('fields.bitbucketRepoPicker.workspaces.title')}\n onChange={s =>\n onChange({ workspace: String(Array.isArray(s) ? s[0] : s) })\n }\n disabled={isDisabled || allowedOwners.length === 1}\n selected={workspace}\n items={ownerItems}\n />\n ) : (\n <Autocomplete\n value={workspace}\n onChange={(_, newValue) => {\n onChange({ workspace: newValue || '' });\n }}\n options={availableWorkspaces}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.bitbucketRepoPicker.workspaces.inputTitle')}\n disabled={isDisabled}\n required\n />\n )}\n disabled={isDisabled}\n freeSolo\n autoSelect\n />\n )}\n <FormHelperText>\n {t('fields.bitbucketRepoPicker.workspaces.description')}\n </FormHelperText>\n </FormControl>\n )}\n <FormControl\n margin=\"normal\"\n required\n error={rawErrors?.length > 0 && !project}\n >\n {allowedProjects?.length ? (\n <Select\n native\n label={t('fields.bitbucketRepoPicker.project.title')}\n onChange={s =>\n onChange({ project: String(Array.isArray(s) ? s[0] : s) })\n }\n disabled={isDisabled || allowedProjects.length === 1}\n selected={project}\n items={projectItems}\n />\n ) : (\n <Autocomplete\n value={project}\n onChange={(_, newValue) => {\n onChange({ project: newValue || '' });\n }}\n options={availableProjects}\n disabled={isDisabled}\n renderInput={params => (\n <TextField\n {...params}\n label={t('fields.bitbucketRepoPicker.project.inputTitle')}\n disabled={isDisabled}\n required\n />\n )}\n freeSolo\n autoSelect\n />\n )}\n <FormHelperText>\n {t('fields.bitbucketRepoPicker.project.description')}\n </FormHelperText>\n </FormControl>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deprecated.esm.js","sources":["../src/deprecated.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file is here to re-export exports from the `@backage/plugin-scaffolder-react` package to keep backwards compatibility.\n * But mark them as deprecated so that any import that is using these exports will be notified that they should use the `-react` package instead.\n * It's a little awkward to get the deprecated notice to show up in the API report, which is why it's all been extracted out to this file.\n */\n\nimport {\n createScaffolderFieldExtension as createScaffolderFieldExtensionTemp,\n ScaffolderFieldExtensions as ScaffolderFieldExtensionsTemp,\n useTemplateSecrets as useTemplateSecretsTemp,\n scaffolderApiRef as scaffolderApiRefTemp,\n createScaffolderLayout as createScaffolderLayoutTemp,\n ScaffolderLayouts as ScaffolderLayoutsTemp,\n type LayoutOptions as LayoutOptionsTemp,\n type LayoutTemplate as LayoutTemplateTemp,\n type ScaffolderApi as ScaffolderApiTemp,\n type ScaffolderUseTemplateSecrets as ScaffolderUseTemplateSecretsTemp,\n type TemplateParameterSchema as TemplateParameterSchemaTemp,\n type CustomFieldExtensionSchema as CustomFieldExtensionSchemaTemp,\n type CustomFieldValidator as CustomFieldValidatorTemp,\n type FieldExtensionOptions as FieldExtensionOptionsTemp,\n type FieldExtensionComponentProps as FieldExtensionComponentPropsTemp,\n type FieldExtensionComponent as FieldExtensionComponentTemp,\n type ListActionsResponse as ListActionsResponseTemp,\n type LogEvent as LogEventTemp,\n type ScaffolderDryRunOptions as ScaffolderDryRunOptionsTemp,\n type ScaffolderDryRunResponse as ScaffolderDryRunResponseTemp,\n type ScaffolderGetIntegrationsListOptions as ScaffolderGetIntegrationsListOptionsTemp,\n type ScaffolderGetIntegrationsListResponse as ScaffolderGetIntegrationsListResponseTemp,\n type ScaffolderOutputLink as ScaffolderOutputLinkTemp,\n type ScaffolderScaffoldOptions as ScaffolderScaffoldOptionsTemp,\n type ScaffolderScaffoldResponse as ScaffolderScaffoldResponseTemp,\n type ScaffolderStreamLogsOptions as ScaffolderStreamLogsOptionsTemp,\n type ScaffolderTask as ScaffolderTaskTemp,\n type ScaffolderTaskOutput as ScaffolderTaskOutputTemp,\n type ScaffolderTaskStatus as ScaffolderTaskStatusTemp,\n} from '@backstage/plugin-scaffolder-react';\n\nimport { rootRouteRef as rootRouteRefTemp } from './routes';\n\n/**\n * @public\n * @deprecated use import from `{@link @backstage/plugin-scaffolder#scaffolderPlugin}.routes.root` instead.\n */\nexport const rootRouteRef = rootRouteRefTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#createScaffolderFieldExtension} instead as this has now been moved.\n */\nexport const createScaffolderFieldExtension =\n createScaffolderFieldExtensionTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderFieldExtensions} instead as this has now been moved.\n */\nexport const ScaffolderFieldExtensions = ScaffolderFieldExtensionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#useTemplateSecrets} instead as this has now been moved.\n */\nexport const useTemplateSecrets = useTemplateSecretsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#scaffolderApiRef} instead as this has now been moved.\n */\nexport const scaffolderApiRef = scaffolderApiRefTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderApi} instead as this has now been moved.\n */\nexport type ScaffolderApi = ScaffolderApiTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderUseTemplateSecrets} instead as this has now been moved.\n */\nexport type ScaffolderUseTemplateSecrets = ScaffolderUseTemplateSecretsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#TemplateParameterSchema} instead as this has now been moved.\n */\nexport type TemplateParameterSchema = TemplateParameterSchemaTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#CustomFieldExtensionSchema} instead as this has now been moved.\n */\nexport type CustomFieldExtensionSchema = CustomFieldExtensionSchemaTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#CustomFieldValidator} instead as this has now been moved.\n */\nexport type CustomFieldValidator<TReturnFieldData> =\n CustomFieldValidatorTemp<TReturnFieldData>;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#FieldExtensionOptions} instead as this has now been moved.\n */\nexport type FieldExtensionOptions = FieldExtensionOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#FieldExtensionComponentProps} instead as this has now been moved.\n */\nexport type FieldExtensionComponentProps<\n TFieldReturnValue,\n TUiOptions extends {} = {},\n> = FieldExtensionComponentPropsTemp<TFieldReturnValue, TUiOptions>;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#FieldExtensionComponent} instead as this has now been moved.\n */\nexport type FieldExtensionComponent<_TReturnValue, _TInputProps> =\n FieldExtensionComponentTemp<_TReturnValue, _TInputProps>;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ListActionsResponse} instead as this has now been moved.\n */\nexport type ListActionsResponse = ListActionsResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LogEvent} instead as this has now been moved.\n */\nexport type LogEvent = LogEventTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderDryRunOptions} instead as this has now been moved.\n */\nexport type ScaffolderDryRunOptions = ScaffolderDryRunOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderDryRunResponse} instead as this has now been moved.\n */\nexport type ScaffolderDryRunResponse = ScaffolderDryRunResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderGetIntegrationsListOptions} instead as this has now been moved.\n */\nexport type ScaffolderGetIntegrationsListOptions =\n ScaffolderGetIntegrationsListOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderGetIntegrationsListResponse} instead as this has now been moved.\n */\nexport type ScaffolderGetIntegrationsListResponse =\n ScaffolderGetIntegrationsListResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderOutputlink} instead as this has now been moved.\n */\nexport type ScaffolderOutputlink = ScaffolderOutputLinkTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderScaffoldOptions} instead as this has now been moved.\n */\nexport type ScaffolderScaffoldOptions = ScaffolderScaffoldOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderScaffoldResponse} instead as this has now been moved.\n */\nexport type ScaffolderScaffoldResponse = ScaffolderScaffoldResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderStreamLogsOptions} instead as this has now been moved.\n */\nexport type ScaffolderStreamLogsOptions = ScaffolderStreamLogsOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderTask} instead as this has now been moved.\n */\nexport type ScaffolderTask = ScaffolderTaskTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderTaskOutput} instead as this has now been moved.\n */\nexport type ScaffolderTaskOutput = ScaffolderTaskOutputTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderTaskStatus} instead as this has now been moved.\n */\nexport type ScaffolderTaskStatus = ScaffolderTaskStatusTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#createScaffolderLayout} instead as this has now been moved.\n */\nexport const createScaffolderLayout = createScaffolderLayoutTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderLayouts} instead as this has now been moved.\n */\nexport const ScaffolderLayouts = ScaffolderLayoutsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutTemplate} instead as this has now been moved.\n */\nexport type LayoutTemplate = LayoutTemplateTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutOptions} instead as this has now been moved.\n */\nexport type LayoutOptions = LayoutOptionsTemp;\n\n/**\n * TaskPageProps for constructing a TaskPage\n * @public\n * @deprecated - this is a useless type that is no longer used.\n */\nexport type TaskPageProps = {\n // Optional loading text shown before a task begins executing.\n loadingText?: string;\n};\n"],"names":["rootRouteRefTemp","createScaffolderFieldExtensionTemp","ScaffolderFieldExtensionsTemp","useTemplateSecretsTemp","scaffolderApiRefTemp","createScaffolderLayoutTemp","ScaffolderLayoutsTemp"],"mappings":";;;AA4DO,MAAM,YAAe,GAAAA;AAKrB,MAAM,8BACX,GAAAC;AAKK,MAAM,yBAA4B,GAAAC;AAKlC,MAAM,kBAAqB,GAAAC;AAK3B,MAAM,gBAAmB,GAAAC;AAqHzB,MAAM,sBAAyB,GAAAC;AAK/B,MAAM,iBAAoB,GAAAC;;;;"}
1
+ {"version":3,"file":"deprecated.esm.js","sources":["../src/deprecated.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file is here to re-export exports from the `@backage/plugin-scaffolder-react` package to keep backwards compatibility.\n * But mark them as deprecated so that any import that is using these exports will be notified that they should use the `-react` package instead.\n * It's a little awkward to get the deprecated notice to show up in the API report, which is why it's all been extracted out to this file.\n */\n\nimport {\n type ScaffolderApi as ScaffolderApiTemp,\n type TemplateParameterSchema as TemplateParameterSchemaTemp,\n type ListActionsResponse as ListActionsResponseTemp,\n type LogEvent as LogEventTemp,\n type ScaffolderDryRunOptions as ScaffolderDryRunOptionsTemp,\n type ScaffolderDryRunResponse as ScaffolderDryRunResponseTemp,\n type ScaffolderGetIntegrationsListOptions as ScaffolderGetIntegrationsListOptionsTemp,\n type ScaffolderGetIntegrationsListResponse as ScaffolderGetIntegrationsListResponseTemp,\n type ScaffolderOutputLink as ScaffolderOutputLinkTemp,\n type ScaffolderScaffoldOptions as ScaffolderScaffoldOptionsTemp,\n type ScaffolderScaffoldResponse as ScaffolderScaffoldResponseTemp,\n type ScaffolderStreamLogsOptions as ScaffolderStreamLogsOptionsTemp,\n type ScaffolderTask as ScaffolderTaskTemp,\n type ScaffolderTaskOutput as ScaffolderTaskOutputTemp,\n type ScaffolderTaskStatus as ScaffolderTaskStatusTemp,\n} from '@backstage/plugin-scaffolder-common';\n\nimport {\n createScaffolderFieldExtension as createScaffolderFieldExtensionTemp,\n ScaffolderFieldExtensions as ScaffolderFieldExtensionsTemp,\n useTemplateSecrets as useTemplateSecretsTemp,\n scaffolderApiRef as scaffolderApiRefTemp,\n createScaffolderLayout as createScaffolderLayoutTemp,\n ScaffolderLayouts as ScaffolderLayoutsTemp,\n type LayoutOptions as LayoutOptionsTemp,\n type LayoutTemplate as LayoutTemplateTemp,\n type ScaffolderUseTemplateSecrets as ScaffolderUseTemplateSecretsTemp,\n type CustomFieldExtensionSchema as CustomFieldExtensionSchemaTemp,\n type CustomFieldValidator as CustomFieldValidatorTemp,\n type FieldExtensionOptions as FieldExtensionOptionsTemp,\n type FieldExtensionComponentProps as FieldExtensionComponentPropsTemp,\n type FieldExtensionComponent as FieldExtensionComponentTemp,\n} from '@backstage/plugin-scaffolder-react';\n\nimport { rootRouteRef as rootRouteRefTemp } from './routes';\n\n/**\n * @public\n * @deprecated use import from `{@link @backstage/plugin-scaffolder#scaffolderPlugin}.routes.root` instead.\n */\nexport const rootRouteRef = rootRouteRefTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#createScaffolderFieldExtension} instead as this has now been moved.\n */\nexport const createScaffolderFieldExtension =\n createScaffolderFieldExtensionTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderFieldExtensions} instead as this has now been moved.\n */\nexport const ScaffolderFieldExtensions = ScaffolderFieldExtensionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#useTemplateSecrets} instead as this has now been moved.\n */\nexport const useTemplateSecrets = useTemplateSecretsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#scaffolderApiRef} instead as this has now been moved.\n */\nexport const scaffolderApiRef = scaffolderApiRefTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderApi} instead as this has now been moved.\n */\nexport type ScaffolderApi = ScaffolderApiTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderUseTemplateSecrets} instead as this has now been moved.\n */\nexport type ScaffolderUseTemplateSecrets = ScaffolderUseTemplateSecretsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#TemplateParameterSchema} instead as this has now been moved.\n */\nexport type TemplateParameterSchema = TemplateParameterSchemaTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#CustomFieldExtensionSchema} instead as this has now been moved.\n */\nexport type CustomFieldExtensionSchema = CustomFieldExtensionSchemaTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#CustomFieldValidator} instead as this has now been moved.\n */\nexport type CustomFieldValidator<TReturnFieldData> =\n CustomFieldValidatorTemp<TReturnFieldData>;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#FieldExtensionOptions} instead as this has now been moved.\n */\nexport type FieldExtensionOptions = FieldExtensionOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#FieldExtensionComponentProps} instead as this has now been moved.\n */\nexport type FieldExtensionComponentProps<\n TFieldReturnValue,\n TUiOptions extends {} = {},\n> = FieldExtensionComponentPropsTemp<TFieldReturnValue, TUiOptions>;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#FieldExtensionComponent} instead as this has now been moved.\n */\nexport type FieldExtensionComponent<_TReturnValue, _TInputProps> =\n FieldExtensionComponentTemp<_TReturnValue, _TInputProps>;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ListActionsResponse} instead as this has now been moved.\n */\nexport type ListActionsResponse = ListActionsResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#LogEvent} instead as this has now been moved.\n */\nexport type LogEvent = LogEventTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderDryRunOptions} instead as this has now been moved.\n */\nexport type ScaffolderDryRunOptions = ScaffolderDryRunOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderDryRunResponse} instead as this has now been moved.\n */\nexport type ScaffolderDryRunResponse = ScaffolderDryRunResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderGetIntegrationsListOptions} instead as this has now been moved.\n */\nexport type ScaffolderGetIntegrationsListOptions =\n ScaffolderGetIntegrationsListOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderGetIntegrationsListResponse} instead as this has now been moved.\n */\nexport type ScaffolderGetIntegrationsListResponse =\n ScaffolderGetIntegrationsListResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderOutputlink} instead as this has now been moved.\n */\nexport type ScaffolderOutputlink = ScaffolderOutputLinkTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderScaffoldOptions} instead as this has now been moved.\n */\nexport type ScaffolderScaffoldOptions = ScaffolderScaffoldOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderScaffoldResponse} instead as this has now been moved.\n */\nexport type ScaffolderScaffoldResponse = ScaffolderScaffoldResponseTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderStreamLogsOptions} instead as this has now been moved.\n */\nexport type ScaffolderStreamLogsOptions = ScaffolderStreamLogsOptionsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTask} instead as this has now been moved.\n */\nexport type ScaffolderTask = ScaffolderTaskTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTaskOutput} instead as this has now been moved.\n */\nexport type ScaffolderTaskOutput = ScaffolderTaskOutputTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTaskStatus} instead as this has now been moved.\n */\nexport type ScaffolderTaskStatus = ScaffolderTaskStatusTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#createScaffolderLayout} instead as this has now been moved.\n */\nexport const createScaffolderLayout = createScaffolderLayoutTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderLayouts} instead as this has now been moved.\n */\nexport const ScaffolderLayouts = ScaffolderLayoutsTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutTemplate} instead as this has now been moved.\n */\nexport type LayoutTemplate = LayoutTemplateTemp;\n/**\n * @public\n * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LayoutOptions} instead as this has now been moved.\n */\nexport type LayoutOptions = LayoutOptionsTemp;\n\n/**\n * TaskPageProps for constructing a TaskPage\n * @public\n * @deprecated - this is a useless type that is no longer used.\n */\nexport type TaskPageProps = {\n // Optional loading text shown before a task begins executing.\n loadingText?: string;\n};\n"],"names":["rootRouteRefTemp","createScaffolderFieldExtensionTemp","ScaffolderFieldExtensionsTemp","useTemplateSecretsTemp","scaffolderApiRefTemp","createScaffolderLayoutTemp","ScaffolderLayoutsTemp"],"mappings":";;;AA+DO,MAAM,YAAe,GAAAA;AAKrB,MAAM,8BACX,GAAAC;AAKK,MAAM,yBAA4B,GAAAC;AAKlC,MAAM,kBAAqB,GAAAC;AAK3B,MAAM,gBAAmB,GAAAC;AAqHzB,MAAM,sBAAyB,GAAAC;AAK/B,MAAM,iBAAoB,GAAAC;;;;"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,13 @@
1
- import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
2
- import { DiscoveryApi, FetchApi, IdentityApi, ApiHolder } from '@backstage/core-plugin-api';
3
- import { ScmIntegrationRegistry } from '@backstage/integration';
4
- import * as _backstage_plugin_scaffolder_react from '@backstage/plugin-scaffolder-react';
5
- import { ScaffolderApi as ScaffolderApi$1, ScaffolderTask as ScaffolderTask$1, ScaffolderGetIntegrationsListOptions as ScaffolderGetIntegrationsListOptions$1, ScaffolderGetIntegrationsListResponse as ScaffolderGetIntegrationsListResponse$1, TemplateParameterSchema as TemplateParameterSchema$1, ScaffolderScaffoldOptions as ScaffolderScaffoldOptions$1, ScaffolderScaffoldResponse as ScaffolderScaffoldResponse$1, ScaffolderStreamLogsOptions as ScaffolderStreamLogsOptions$1, LogEvent as LogEvent$1, ScaffolderDryRunOptions as ScaffolderDryRunOptions$1, ScaffolderDryRunResponse as ScaffolderDryRunResponse$1, ListActionsResponse as ListActionsResponse$1, ListTemplatingExtensionsResponse, ReviewStepProps, ScaffolderTaskOutput as ScaffolderTaskOutput$1, TemplateGroupFilter, FormProps, FieldSchema as FieldSchema$1, createScaffolderFieldExtension as createScaffolderFieldExtension$1, ScaffolderUseTemplateSecrets as ScaffolderUseTemplateSecrets$1, CustomFieldExtensionSchema as CustomFieldExtensionSchema$1, CustomFieldValidator as CustomFieldValidator$1, FieldExtensionOptions as FieldExtensionOptions$1, FieldExtensionComponentProps as FieldExtensionComponentProps$1, FieldExtensionComponent as FieldExtensionComponent$1, ScaffolderOutputLink, ScaffolderTaskStatus as ScaffolderTaskStatus$1, createScaffolderLayout as createScaffolderLayout$1, LayoutTemplate as LayoutTemplate$1, LayoutOptions as LayoutOptions$1 } from '@backstage/plugin-scaffolder-react';
6
- export { ReviewStepProps } from '@backstage/plugin-scaffolder-react';
7
- import { Observable } from '@backstage/types';
1
+ import { ScaffolderClient as ScaffolderClient$1, TemplateEntityV1beta3, ScaffolderApi as ScaffolderApi$1, TemplateParameterSchema as TemplateParameterSchema$1, ListActionsResponse as ListActionsResponse$1, LogEvent as LogEvent$1, ScaffolderDryRunOptions as ScaffolderDryRunOptions$1, ScaffolderDryRunResponse as ScaffolderDryRunResponse$1, ScaffolderGetIntegrationsListOptions as ScaffolderGetIntegrationsListOptions$1, ScaffolderGetIntegrationsListResponse as ScaffolderGetIntegrationsListResponse$1, ScaffolderOutputLink, ScaffolderScaffoldOptions as ScaffolderScaffoldOptions$1, ScaffolderScaffoldResponse as ScaffolderScaffoldResponse$1, ScaffolderStreamLogsOptions as ScaffolderStreamLogsOptions$1, ScaffolderTask as ScaffolderTask$1, ScaffolderTaskOutput as ScaffolderTaskOutput$2, ScaffolderTaskStatus as ScaffolderTaskStatus$1 } from '@backstage/plugin-scaffolder-common';
8
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
9
3
  import * as react from 'react';
10
4
  import { ComponentType, PropsWithChildren } from 'react';
11
- import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';
5
+ import * as _backstage_plugin_scaffolder_react from '@backstage/plugin-scaffolder-react';
6
+ import { ReviewStepProps, ScaffolderTaskOutput as ScaffolderTaskOutput$1, TemplateGroupFilter, FormProps, FieldSchema as FieldSchema$1, createScaffolderFieldExtension as createScaffolderFieldExtension$1, ScaffolderUseTemplateSecrets as ScaffolderUseTemplateSecrets$1, CustomFieldExtensionSchema as CustomFieldExtensionSchema$1, CustomFieldValidator as CustomFieldValidator$1, FieldExtensionOptions as FieldExtensionOptions$1, FieldExtensionComponentProps as FieldExtensionComponentProps$1, FieldExtensionComponent as FieldExtensionComponent$1, createScaffolderLayout as createScaffolderLayout$1, LayoutTemplate as LayoutTemplate$1, LayoutOptions as LayoutOptions$1 } from '@backstage/plugin-scaffolder-react';
7
+ export { ReviewStepProps } from '@backstage/plugin-scaffolder-react';
12
8
  import { TemplateListPageProps, TemplateWizardPageProps } from '@backstage/plugin-scaffolder/alpha';
9
+ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
10
+ import { ApiHolder } from '@backstage/core-plugin-api';
13
11
  import { FieldValidation } from '@rjsf/utils';
14
12
  import { z } from 'zod';
15
13
 
@@ -17,51 +15,9 @@ import { z } from 'zod';
17
15
  * An API to interact with the scaffolder backend.
18
16
  *
19
17
  * @public
18
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderClient} instead as this has now been moved.
20
19
  */
21
- declare class ScaffolderClient implements ScaffolderApi$1 {
22
- private readonly discoveryApi;
23
- private readonly scmIntegrationsApi;
24
- private readonly fetchApi;
25
- private readonly identityApi?;
26
- private readonly useLongPollingLogs;
27
- constructor(options: {
28
- discoveryApi: DiscoveryApi;
29
- fetchApi: FetchApi;
30
- identityApi?: IdentityApi;
31
- scmIntegrationsApi: ScmIntegrationRegistry;
32
- useLongPollingLogs?: boolean;
33
- });
34
- listTasks(options: {
35
- filterByOwnership: 'owned' | 'all';
36
- limit?: number;
37
- offset?: number;
38
- }): Promise<{
39
- tasks: ScaffolderTask$1[];
40
- totalTasks?: number;
41
- }>;
42
- getIntegrationsList(options: ScaffolderGetIntegrationsListOptions$1): Promise<ScaffolderGetIntegrationsListResponse$1>;
43
- getTemplateParameterSchema(templateRef: string): Promise<TemplateParameterSchema$1>;
44
- scaffold(options: ScaffolderScaffoldOptions$1): Promise<ScaffolderScaffoldResponse$1>;
45
- getTask(taskId: string): Promise<ScaffolderTask$1>;
46
- streamLogs(options: ScaffolderStreamLogsOptions$1): Observable<LogEvent$1>;
47
- dryRun(options: ScaffolderDryRunOptions$1): Promise<ScaffolderDryRunResponse$1>;
48
- private streamLogsEventStream;
49
- private streamLogsPolling;
50
- listActions(): Promise<ListActionsResponse$1>;
51
- listTemplatingExtensions(): Promise<ListTemplatingExtensionsResponse>;
52
- cancelTask(taskId: string): Promise<void>;
53
- retry?(taskId: string): Promise<void>;
54
- autocomplete({ token, resource, provider, context, }: {
55
- token: string;
56
- provider: string;
57
- resource: string;
58
- context?: Record<string, string>;
59
- }): Promise<{
60
- results: {
61
- title?: string;
62
- id: string;
63
- }[];
64
- }>;
20
+ declare class ScaffolderClient extends ScaffolderClient$1 {
65
21
  }
66
22
 
67
23
  /**
@@ -455,7 +411,7 @@ declare const useTemplateSecrets: () => ScaffolderUseTemplateSecrets$1;
455
411
  declare const scaffolderApiRef: _backstage_core_plugin_api.ApiRef<ScaffolderApi$1>;
456
412
  /**
457
413
  * @public
458
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderApi} instead as this has now been moved.
414
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderApi} instead as this has now been moved.
459
415
  */
460
416
  type ScaffolderApi = ScaffolderApi$1;
461
417
  /**
@@ -465,7 +421,7 @@ type ScaffolderApi = ScaffolderApi$1;
465
421
  type ScaffolderUseTemplateSecrets = ScaffolderUseTemplateSecrets$1;
466
422
  /**
467
423
  * @public
468
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#TemplateParameterSchema} instead as this has now been moved.
424
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#TemplateParameterSchema} instead as this has now been moved.
469
425
  */
470
426
  type TemplateParameterSchema = TemplateParameterSchema$1;
471
427
  /**
@@ -495,67 +451,67 @@ type FieldExtensionComponentProps<TFieldReturnValue, TUiOptions extends {} = {}>
495
451
  type FieldExtensionComponent<_TReturnValue, _TInputProps> = FieldExtensionComponent$1<_TReturnValue, _TInputProps>;
496
452
  /**
497
453
  * @public
498
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ListActionsResponse} instead as this has now been moved.
454
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ListActionsResponse} instead as this has now been moved.
499
455
  */
500
456
  type ListActionsResponse = ListActionsResponse$1;
501
457
  /**
502
458
  * @public
503
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#LogEvent} instead as this has now been moved.
459
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#LogEvent} instead as this has now been moved.
504
460
  */
505
461
  type LogEvent = LogEvent$1;
506
462
  /**
507
463
  * @public
508
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderDryRunOptions} instead as this has now been moved.
464
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderDryRunOptions} instead as this has now been moved.
509
465
  */
510
466
  type ScaffolderDryRunOptions = ScaffolderDryRunOptions$1;
511
467
  /**
512
468
  * @public
513
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderDryRunResponse} instead as this has now been moved.
469
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderDryRunResponse} instead as this has now been moved.
514
470
  */
515
471
  type ScaffolderDryRunResponse = ScaffolderDryRunResponse$1;
516
472
  /**
517
473
  * @public
518
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderGetIntegrationsListOptions} instead as this has now been moved.
474
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderGetIntegrationsListOptions} instead as this has now been moved.
519
475
  */
520
476
  type ScaffolderGetIntegrationsListOptions = ScaffolderGetIntegrationsListOptions$1;
521
477
  /**
522
478
  * @public
523
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderGetIntegrationsListResponse} instead as this has now been moved.
479
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderGetIntegrationsListResponse} instead as this has now been moved.
524
480
  */
525
481
  type ScaffolderGetIntegrationsListResponse = ScaffolderGetIntegrationsListResponse$1;
526
482
  /**
527
483
  * @public
528
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderOutputlink} instead as this has now been moved.
484
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderOutputlink} instead as this has now been moved.
529
485
  */
530
486
  type ScaffolderOutputlink = ScaffolderOutputLink;
531
487
  /**
532
488
  * @public
533
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderScaffoldOptions} instead as this has now been moved.
489
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderScaffoldOptions} instead as this has now been moved.
534
490
  */
535
491
  type ScaffolderScaffoldOptions = ScaffolderScaffoldOptions$1;
536
492
  /**
537
493
  * @public
538
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderScaffoldResponse} instead as this has now been moved.
494
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderScaffoldResponse} instead as this has now been moved.
539
495
  */
540
496
  type ScaffolderScaffoldResponse = ScaffolderScaffoldResponse$1;
541
497
  /**
542
498
  * @public
543
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderStreamLogsOptions} instead as this has now been moved.
499
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderStreamLogsOptions} instead as this has now been moved.
544
500
  */
545
501
  type ScaffolderStreamLogsOptions = ScaffolderStreamLogsOptions$1;
546
502
  /**
547
503
  * @public
548
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderTask} instead as this has now been moved.
504
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTask} instead as this has now been moved.
549
505
  */
550
506
  type ScaffolderTask = ScaffolderTask$1;
551
507
  /**
552
508
  * @public
553
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderTaskOutput} instead as this has now been moved.
509
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTaskOutput} instead as this has now been moved.
554
510
  */
555
- type ScaffolderTaskOutput = ScaffolderTaskOutput$1;
511
+ type ScaffolderTaskOutput = ScaffolderTaskOutput$2;
556
512
  /**
557
513
  * @public
558
- * @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderTaskStatus} instead as this has now been moved.
514
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTaskStatus} instead as this has now been moved.
559
515
  */
560
516
  type ScaffolderTaskStatus = ScaffolderTaskStatus$1;
561
517
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"InternalFormField.esm.js","sources":["../../../../../../../packages/scaffolder-internal/src/wiring/InternalFormField.ts"],"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 { OpaqueType } from '@internal/opaque';\nimport { z } from 'zod';\n\nimport { FormFieldExtensionData } from '@backstage/plugin-scaffolder-react/alpha';\n\n/** @alpha */\nexport interface FormField {\n readonly $$type: '@backstage/scaffolder/FormField';\n}\n\n/** @alpha */\nexport const OpaqueFormField = OpaqueType.create<{\n public: FormField;\n versions: FormFieldExtensionData<z.ZodType, z.ZodType> & {\n readonly version: 'v1';\n };\n}>({ type: '@backstage/scaffolder/FormField', versions: ['v1'] });\n"],"names":[],"mappings":";;AA2Ba,MAAA,eAAA,GAAkB,UAAW,CAAA,MAAA,CAKvC,EAAE,IAAA,EAAM,mCAAmC,QAAU,EAAA,CAAC,IAAI,CAAA,EAAG;;;;"}
1
+ {"version":3,"file":"InternalFormField.esm.js","sources":["../../../../../../../packages/scaffolder-internal/src/wiring/InternalFormField.ts"],"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 { OpaqueType } from '@internal/opaque';\nimport { z } from 'zod';\n\nimport {\n FormFieldExtensionData,\n FormField,\n} from '@backstage/plugin-scaffolder-react/alpha';\n\n/** @alpha */\nexport const OpaqueFormField = OpaqueType.create<{\n public: FormField;\n versions: FormFieldExtensionData<z.ZodType, z.ZodType> & {\n readonly version: 'v1';\n };\n}>({ type: '@backstage/scaffolder/FormField', versions: ['v1'] });\n"],"names":[],"mappings":";;AAyBa,MAAA,eAAA,GAAkB,UAAW,CAAA,MAAA,CAKvC,EAAE,IAAA,EAAM,mCAAmC,QAAU,EAAA,CAAC,IAAI,CAAA,EAAG;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@backstage/plugin-scaffolder";
2
- var version = "1.33.1-next.0";
2
+ var version = "1.34.0-next.1";
3
3
  var description = "The Backstage plugin that helps you create new things";
4
4
  var backstage = {
5
5
  role: "frontend-plugin",
@@ -78,7 +78,6 @@ var dependencies = {
78
78
  "@material-ui/core": "^4.12.2",
79
79
  "@material-ui/icons": "^4.9.1",
80
80
  "@material-ui/lab": "4.0.0-alpha.61",
81
- "@microsoft/fetch-event-source": "^2.0.1",
82
81
  "@react-hookz/web": "^24.0.0",
83
82
  "@rjsf/core": "5.23.2",
84
83
  "@rjsf/material-ui": "5.23.2",
@@ -99,7 +98,6 @@ var dependencies = {
99
98
  "react-use": "^17.2.4",
100
99
  "react-window": "^1.8.10",
101
100
  yaml: "^2.0.0",
102
- "zen-observable": "^0.10.0",
103
101
  zod: "^3.22.4",
104
102
  "zod-to-json-schema": "^3.20.4"
105
103
  };
@@ -119,7 +117,6 @@ var devDependencies = {
119
117
  "@types/react": "^18.0.0",
120
118
  "@types/react-resizable": "^3.0.8",
121
119
  "@types/react-window": "^1.8.8",
122
- msw: "^1.0.0",
123
120
  react: "^18.0.2",
124
121
  "react-dom": "^18.0.2",
125
122
  "react-router-dom": "^6.3.0",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}