@backstage/plugin-scaffolder 1.29.0-next.1 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# @backstage/plugin-scaffolder
|
|
2
2
|
|
|
3
|
+
## 1.29.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 9d864ff: Allowed passing `ui:disabled` for disabling the input field of all the pickers.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 3db64ba: Disable the submit button on creating
|
|
12
|
+
- 6a3fa48: Fixes DryRunContext not forwarding the correct Scaffolder Secrets to the DryRun API
|
|
13
|
+
- b3b7c9c: Updated the alpha `page:scaffolder` extension to accept `formFields` input, matching the updated `FormFieldBlueprint`.
|
|
14
|
+
- Updated dependencies
|
|
15
|
+
- @backstage/core-components@0.17.0
|
|
16
|
+
- @backstage/core-plugin-api@1.10.5
|
|
17
|
+
- @backstage/integration@1.16.2
|
|
18
|
+
- @backstage/frontend-plugin-api@0.10.0
|
|
19
|
+
- @backstage/plugin-catalog-react@1.16.0
|
|
20
|
+
- @backstage/plugin-scaffolder-react@1.14.6
|
|
21
|
+
- @backstage/core-compat-api@0.4.0
|
|
22
|
+
- @backstage/plugin-scaffolder-common@1.5.10
|
|
23
|
+
- @backstage/integration-react@1.2.5
|
|
24
|
+
- @backstage/plugin-permission-react@0.4.32
|
|
25
|
+
- @backstage/catalog-client@1.9.1
|
|
26
|
+
- @backstage/catalog-model@1.7.3
|
|
27
|
+
- @backstage/errors@1.2.7
|
|
28
|
+
- @backstage/types@1.2.1
|
|
29
|
+
- @backstage/plugin-catalog-common@1.1.3
|
|
30
|
+
|
|
31
|
+
## 1.29.0-next.2
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- 3db64ba: Disable the submit button on creating
|
|
36
|
+
- Updated dependencies
|
|
37
|
+
- @backstage/frontend-plugin-api@0.10.0-next.2
|
|
38
|
+
- @backstage/plugin-catalog-react@1.16.0-next.2
|
|
39
|
+
- @backstage/core-compat-api@0.4.0-next.2
|
|
40
|
+
- @backstage/core-components@0.16.5-next.1
|
|
41
|
+
- @backstage/plugin-scaffolder-react@1.14.6-next.2
|
|
42
|
+
- @backstage/integration@1.16.2-next.0
|
|
43
|
+
- @backstage/catalog-client@1.9.1
|
|
44
|
+
- @backstage/catalog-model@1.7.3
|
|
45
|
+
- @backstage/core-plugin-api@1.10.4
|
|
46
|
+
- @backstage/errors@1.2.7
|
|
47
|
+
- @backstage/integration-react@1.2.5-next.0
|
|
48
|
+
- @backstage/types@1.2.1
|
|
49
|
+
- @backstage/plugin-catalog-common@1.1.3
|
|
50
|
+
- @backstage/plugin-permission-react@0.4.31
|
|
51
|
+
- @backstage/plugin-scaffolder-common@1.5.10-next.0
|
|
52
|
+
|
|
3
53
|
## 1.29.0-next.1
|
|
4
54
|
|
|
5
55
|
### Patch Changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useState, useCallback } from 'react';
|
|
2
2
|
import { useNavigate, Navigate } from 'react-router-dom';
|
|
3
3
|
import useAsync from 'react-use/esm/useAsync';
|
|
4
4
|
import { stringifyEntityRef, ANNOTATION_EDIT_URL } from '@backstage/catalog-model';
|
|
@@ -36,24 +36,36 @@ const TemplateWizardPage = (props) => {
|
|
|
36
36
|
const data = await catalogApi.getEntityByRef(templateRef);
|
|
37
37
|
return data?.metadata.annotations?.[ANNOTATION_EDIT_URL];
|
|
38
38
|
}, [templateRef, catalogApi]);
|
|
39
|
-
const onCreate =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
formState:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
39
|
+
const onCreate = useCallback(
|
|
40
|
+
async (initialValues) => {
|
|
41
|
+
if (isCreating) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
setIsCreating(true);
|
|
45
|
+
const { formState: values, secrets } = await decorators.run({
|
|
46
|
+
formState: initialValues,
|
|
47
|
+
secrets: contextSecrets,
|
|
48
|
+
manifest
|
|
49
|
+
});
|
|
50
|
+
const { taskId } = await scaffolderApi.scaffold({
|
|
51
|
+
templateRef,
|
|
52
|
+
values,
|
|
53
|
+
secrets
|
|
54
|
+
});
|
|
55
|
+
navigate(taskRoute({ taskId }));
|
|
56
|
+
},
|
|
57
|
+
[
|
|
58
|
+
contextSecrets,
|
|
59
|
+
decorators,
|
|
60
|
+
isCreating,
|
|
61
|
+
manifest,
|
|
62
|
+
navigate,
|
|
63
|
+
scaffolderApi,
|
|
64
|
+
taskRoute,
|
|
65
|
+
templateRef
|
|
66
|
+
]
|
|
67
|
+
);
|
|
68
|
+
const onError = useCallback(() => /* @__PURE__ */ React.createElement(Navigate, { to: rootRef() }), [rootRef]);
|
|
57
69
|
return /* @__PURE__ */ React.createElement(AnalyticsContext, { attributes: { entityRef: templateRef } }, /* @__PURE__ */ React.createElement(Page, { themeId: "website" }, /* @__PURE__ */ React.createElement(
|
|
58
70
|
Header,
|
|
59
71
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateWizardPage.esm.js","sources":["../../../../src/alpha/components/TemplateWizardPage/TemplateWizardPage.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 React, { useState } from 'react';\nimport { Navigate, useNavigate } from 'react-router-dom';\nimport useAsync from 'react-use/esm/useAsync';\nimport {\n stringifyEntityRef,\n ANNOTATION_EDIT_URL,\n} from '@backstage/catalog-model';\nimport {\n AnalyticsContext,\n useApi,\n useRouteRef,\n useRouteRefParams,\n} from '@backstage/core-plugin-api';\nimport {\n scaffolderApiRef,\n useTemplateSecrets,\n type LayoutOptions,\n FormProps,\n FieldExtensionOptions,\n ReviewStepProps,\n} from '@backstage/plugin-scaffolder-react';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\n\nimport {\n Workflow,\n useTemplateParameterSchema,\n} from '@backstage/plugin-scaffolder-react/alpha';\nimport { JsonValue } from '@backstage/types';\nimport { Header, Page, Progress } from '@backstage/core-components';\n\nimport {\n rootRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n} from '../../../routes';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nimport { TemplateWizardPageContextMenu } from './TemplateWizardPageContextMenu';\nimport { useFormDecorators } from '../../hooks';\n\n/**\n * @alpha\n */\nexport type TemplateWizardPageProps = {\n customFieldExtensions: FieldExtensionOptions<any, any>[];\n components?: {\n ReviewStepComponent?: React.ComponentType<ReviewStepProps>;\n };\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n headerOptions?: {\n pageTitleOverride?: string;\n title?: string;\n subtitle?: string;\n };\n};\n\nexport const TemplateWizardPage = (props: TemplateWizardPageProps) => {\n const rootRef = useRouteRef(rootRouteRef);\n const taskRoute = useRouteRef(scaffolderTaskRouteRef);\n const { secrets: contextSecrets } = useTemplateSecrets();\n const scaffolderApi = useApi(scaffolderApiRef);\n const catalogApi = useApi(catalogApiRef);\n const [isCreating, setIsCreating] = useState(false);\n const navigate = useNavigate();\n const { templateName, namespace } = useRouteRefParams(\n selectedTemplateRouteRef,\n );\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const templateRef = stringifyEntityRef({\n kind: 'Template',\n namespace,\n name: templateName,\n });\n\n const { manifest } = useTemplateParameterSchema(templateRef);\n const decorators = useFormDecorators();\n\n const { value: editUrl } = useAsync(async () => {\n const data = await catalogApi.getEntityByRef(templateRef);\n return data?.metadata.annotations?.[ANNOTATION_EDIT_URL];\n }, [templateRef, catalogApi]);\n\n const onCreate = async (initialValues: Record<string, JsonValue>) => {\n
|
|
1
|
+
{"version":3,"file":"TemplateWizardPage.esm.js","sources":["../../../../src/alpha/components/TemplateWizardPage/TemplateWizardPage.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 React, { useCallback, useState } from 'react';\nimport { Navigate, useNavigate } from 'react-router-dom';\nimport useAsync from 'react-use/esm/useAsync';\nimport {\n stringifyEntityRef,\n ANNOTATION_EDIT_URL,\n} from '@backstage/catalog-model';\nimport {\n AnalyticsContext,\n useApi,\n useRouteRef,\n useRouteRefParams,\n} from '@backstage/core-plugin-api';\nimport {\n scaffolderApiRef,\n useTemplateSecrets,\n type LayoutOptions,\n FormProps,\n FieldExtensionOptions,\n ReviewStepProps,\n} from '@backstage/plugin-scaffolder-react';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\n\nimport {\n Workflow,\n useTemplateParameterSchema,\n} from '@backstage/plugin-scaffolder-react/alpha';\nimport { JsonValue } from '@backstage/types';\nimport { Header, Page, Progress } from '@backstage/core-components';\n\nimport {\n rootRouteRef,\n scaffolderTaskRouteRef,\n selectedTemplateRouteRef,\n} from '../../../routes';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { scaffolderTranslationRef } from '../../../translation';\n\nimport { TemplateWizardPageContextMenu } from './TemplateWizardPageContextMenu';\nimport { useFormDecorators } from '../../hooks';\n\n/**\n * @alpha\n */\nexport type TemplateWizardPageProps = {\n customFieldExtensions: FieldExtensionOptions<any, any>[];\n components?: {\n ReviewStepComponent?: React.ComponentType<ReviewStepProps>;\n };\n layouts?: LayoutOptions[];\n formProps?: FormProps;\n headerOptions?: {\n pageTitleOverride?: string;\n title?: string;\n subtitle?: string;\n };\n};\n\nexport const TemplateWizardPage = (props: TemplateWizardPageProps) => {\n const rootRef = useRouteRef(rootRouteRef);\n const taskRoute = useRouteRef(scaffolderTaskRouteRef);\n const { secrets: contextSecrets } = useTemplateSecrets();\n const scaffolderApi = useApi(scaffolderApiRef);\n const catalogApi = useApi(catalogApiRef);\n const [isCreating, setIsCreating] = useState(false);\n const navigate = useNavigate();\n const { templateName, namespace } = useRouteRefParams(\n selectedTemplateRouteRef,\n );\n const { t } = useTranslationRef(scaffolderTranslationRef);\n\n const templateRef = stringifyEntityRef({\n kind: 'Template',\n namespace,\n name: templateName,\n });\n\n const { manifest } = useTemplateParameterSchema(templateRef);\n const decorators = useFormDecorators();\n\n const { value: editUrl } = useAsync(async () => {\n const data = await catalogApi.getEntityByRef(templateRef);\n return data?.metadata.annotations?.[ANNOTATION_EDIT_URL];\n }, [templateRef, catalogApi]);\n\n const onCreate = useCallback(\n async (initialValues: Record<string, JsonValue>) => {\n if (isCreating) {\n return;\n }\n\n setIsCreating(true);\n\n const { formState: values, secrets } = await decorators.run({\n formState: initialValues,\n secrets: contextSecrets,\n manifest,\n });\n\n const { taskId } = await scaffolderApi.scaffold({\n templateRef,\n values,\n secrets,\n });\n\n navigate(taskRoute({ taskId }));\n },\n [\n contextSecrets,\n decorators,\n isCreating,\n manifest,\n navigate,\n scaffolderApi,\n taskRoute,\n templateRef,\n ],\n );\n\n const onError = useCallback(() => <Navigate to={rootRef()} />, [rootRef]);\n\n return (\n <AnalyticsContext attributes={{ entityRef: templateRef }}>\n <Page themeId=\"website\">\n <Header\n pageTitleOverride={t('templateWizardPage.pageTitle')}\n title={t('templateWizardPage.title')}\n subtitle={t('templateWizardPage.subtitle')}\n {...props.headerOptions}\n >\n <TemplateWizardPageContextMenu editUrl={editUrl} />\n </Header>\n {isCreating && <Progress />}\n <Workflow\n namespace={namespace}\n templateName={templateName}\n onCreate={onCreate}\n components={props.components}\n onError={onError}\n extensions={props.customFieldExtensions}\n formProps={props.formProps}\n layouts={props.layouts}\n />\n </Page>\n </AnalyticsContext>\n );\n};\n"],"names":[],"mappings":"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"}
|
package/dist/alpha.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
import React__default from 'react';
|
|
4
3
|
import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common';
|
|
@@ -116,8 +115,8 @@ declare const scaffolderTranslationRef: _backstage_core_plugin_api_alpha.Transla
|
|
|
116
115
|
readonly "fields.repoUrlPicker.repository.inputTitle": "Repository";
|
|
117
116
|
readonly "actionsPage.content.emptyState.title": "No information to display";
|
|
118
117
|
readonly "actionsPage.content.emptyState.description": "There are no actions installed or there was an issue communicating with backend.";
|
|
119
|
-
readonly "actionsPage.content.tableCell.type": "Type";
|
|
120
118
|
readonly "actionsPage.content.tableCell.name": "Name";
|
|
119
|
+
readonly "actionsPage.content.tableCell.type": "Type";
|
|
121
120
|
readonly "actionsPage.content.tableCell.title": "Title";
|
|
122
121
|
readonly "actionsPage.content.tableCell.description": "Description";
|
|
123
122
|
readonly "actionsPage.content.searchFieldPlaceholder": "Search for an action";
|
|
@@ -301,18 +300,13 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
301
300
|
namespace: string;
|
|
302
301
|
}>;
|
|
303
302
|
}, {
|
|
304
|
-
"api:scaffolder
|
|
303
|
+
"api:scaffolder": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
304
|
+
kind: "api";
|
|
305
|
+
name: undefined;
|
|
305
306
|
config: {};
|
|
306
307
|
configInput: {};
|
|
307
308
|
output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
308
|
-
inputs: {
|
|
309
|
-
formFields: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<() => Promise<FormField>, "scaffolder.form-field-loader", {}>, {
|
|
310
|
-
singleton: false;
|
|
311
|
-
optional: false;
|
|
312
|
-
}>;
|
|
313
|
-
};
|
|
314
|
-
kind: "api";
|
|
315
|
-
name: "form-fields";
|
|
309
|
+
inputs: {};
|
|
316
310
|
params: {
|
|
317
311
|
factory: _backstage_frontend_plugin_api.AnyApiFactory;
|
|
318
312
|
};
|
|
@@ -333,28 +327,20 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
333
327
|
factory: _backstage_frontend_plugin_api.AnyApiFactory;
|
|
334
328
|
};
|
|
335
329
|
}>;
|
|
336
|
-
"
|
|
337
|
-
config: {
|
|
338
|
-
|
|
339
|
-
}
|
|
340
|
-
configInput: {
|
|
341
|
-
path?: string | undefined;
|
|
342
|
-
};
|
|
343
|
-
output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
344
|
-
optional: true;
|
|
345
|
-
}>;
|
|
330
|
+
"api:scaffolder/form-fields": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
331
|
+
config: {};
|
|
332
|
+
configInput: {};
|
|
333
|
+
output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
346
334
|
inputs: {
|
|
347
335
|
formFields: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<() => Promise<FormField>, "scaffolder.form-field-loader", {}>, {
|
|
348
336
|
singleton: false;
|
|
349
337
|
optional: false;
|
|
350
338
|
}>;
|
|
351
339
|
};
|
|
352
|
-
kind: "
|
|
353
|
-
name:
|
|
340
|
+
kind: "api";
|
|
341
|
+
name: "form-fields";
|
|
354
342
|
params: {
|
|
355
|
-
|
|
356
|
-
loader: () => Promise<JSX.Element>;
|
|
357
|
-
routeRef?: _backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams> | undefined;
|
|
343
|
+
factory: _backstage_frontend_plugin_api.AnyApiFactory;
|
|
358
344
|
};
|
|
359
345
|
}>;
|
|
360
346
|
"nav-item:scaffolder": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
@@ -374,6 +360,30 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
374
360
|
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
375
361
|
};
|
|
376
362
|
}>;
|
|
363
|
+
"page:scaffolder": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
364
|
+
config: {
|
|
365
|
+
path: string | undefined;
|
|
366
|
+
};
|
|
367
|
+
configInput: {
|
|
368
|
+
path?: string | undefined;
|
|
369
|
+
};
|
|
370
|
+
output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
371
|
+
optional: true;
|
|
372
|
+
}>;
|
|
373
|
+
inputs: {
|
|
374
|
+
formFields: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<() => Promise<FormField>, "scaffolder.form-field-loader", {}>, {
|
|
375
|
+
singleton: false;
|
|
376
|
+
optional: false;
|
|
377
|
+
}>;
|
|
378
|
+
};
|
|
379
|
+
kind: "page";
|
|
380
|
+
name: undefined;
|
|
381
|
+
params: {
|
|
382
|
+
defaultPath: string;
|
|
383
|
+
loader: () => Promise<JSX.Element>;
|
|
384
|
+
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
385
|
+
};
|
|
386
|
+
}>;
|
|
377
387
|
"scaffolder-form-field:scaffolder/repo-url-picker": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
378
388
|
kind: "scaffolder-form-field";
|
|
379
389
|
name: "repo-url-picker";
|
|
@@ -385,17 +395,6 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
385
395
|
field: () => Promise<FormField>;
|
|
386
396
|
};
|
|
387
397
|
}>;
|
|
388
|
-
"api:scaffolder": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
389
|
-
kind: "api";
|
|
390
|
-
name: undefined;
|
|
391
|
-
config: {};
|
|
392
|
-
configInput: {};
|
|
393
|
-
output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
394
|
-
inputs: {};
|
|
395
|
-
params: {
|
|
396
|
-
factory: _backstage_frontend_plugin_api.AnyApiFactory;
|
|
397
|
-
};
|
|
398
|
-
}>;
|
|
399
398
|
}>;
|
|
400
399
|
|
|
401
400
|
export { DefaultScaffolderFormDecoratorsApi, type FormProps, type ScaffolderCustomFieldExplorerClassKey, type ScaffolderFormDecoratorsApi, type ScaffolderTemplateEditorClassKey, type ScaffolderTemplateFormPreviewerClassKey, type TemplateListPageProps, type TemplateWizardPageProps, _default as default, formDecoratorsApi, formDecoratorsApiRef, scaffolderTranslationRef };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
3
2
|
import { DiscoveryApi, FetchApi, IdentityApi, ApiHolder } from '@backstage/core-plugin-api';
|
|
4
3
|
import { ScmIntegrationRegistry } from '@backstage/integration';
|
|
@@ -445,7 +444,7 @@ declare const createScaffolderFieldExtension: typeof createScaffolderFieldExtens
|
|
|
445
444
|
* @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderFieldExtensions} instead as this has now been moved.
|
|
446
445
|
*/
|
|
447
446
|
declare const ScaffolderFieldExtensions: React.ComponentType<{
|
|
448
|
-
children?: React.ReactNode;
|
|
447
|
+
children?: React.ReactNode | undefined;
|
|
449
448
|
}>;
|
|
450
449
|
/**
|
|
451
450
|
* @public
|
|
@@ -572,7 +571,7 @@ declare const createScaffolderLayout: typeof createScaffolderLayout$1;
|
|
|
572
571
|
* @deprecated use import from {@link @backstage/plugin-scaffolder-react#ScaffolderLayouts} instead as this has now been moved.
|
|
573
572
|
*/
|
|
574
573
|
declare const ScaffolderLayouts: React.ComponentType<{
|
|
575
|
-
children?: React.ReactNode;
|
|
574
|
+
children?: React.ReactNode | undefined;
|
|
576
575
|
}>;
|
|
577
576
|
/**
|
|
578
577
|
* @public
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-scaffolder",
|
|
3
|
-
"version": "1.29.0
|
|
3
|
+
"version": "1.29.0",
|
|
4
4
|
"description": "The Backstage plugin that helps you create new things",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"types": "./dist/index.d.ts",
|
|
50
50
|
"typesVersions": {
|
|
51
51
|
"*": {
|
|
52
|
-
"
|
|
52
|
+
"*": [
|
|
53
53
|
"dist/index.d.ts"
|
|
54
54
|
],
|
|
55
55
|
"alpha": [
|
|
@@ -70,21 +70,21 @@
|
|
|
70
70
|
"test": "backstage-cli package test"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@backstage/catalog-client": "1.9.1",
|
|
74
|
-
"@backstage/catalog-model": "1.7.3",
|
|
75
|
-
"@backstage/core-compat-api": "0.
|
|
76
|
-
"@backstage/core-components": "0.
|
|
77
|
-
"@backstage/core-plugin-api": "1.10.
|
|
78
|
-
"@backstage/errors": "1.2.7",
|
|
79
|
-
"@backstage/frontend-plugin-api": "0.
|
|
80
|
-
"@backstage/integration": "1.16.
|
|
81
|
-
"@backstage/integration-react": "1.2.
|
|
82
|
-
"@backstage/plugin-catalog-common": "1.1.3",
|
|
83
|
-
"@backstage/plugin-catalog-react": "1.16.0
|
|
84
|
-
"@backstage/plugin-permission-react": "0.4.
|
|
85
|
-
"@backstage/plugin-scaffolder-common": "1.5.10
|
|
86
|
-
"@backstage/plugin-scaffolder-react": "1.14.6
|
|
87
|
-
"@backstage/types": "1.2.1",
|
|
73
|
+
"@backstage/catalog-client": "^1.9.1",
|
|
74
|
+
"@backstage/catalog-model": "^1.7.3",
|
|
75
|
+
"@backstage/core-compat-api": "^0.4.0",
|
|
76
|
+
"@backstage/core-components": "^0.17.0",
|
|
77
|
+
"@backstage/core-plugin-api": "^1.10.5",
|
|
78
|
+
"@backstage/errors": "^1.2.7",
|
|
79
|
+
"@backstage/frontend-plugin-api": "^0.10.0",
|
|
80
|
+
"@backstage/integration": "^1.16.2",
|
|
81
|
+
"@backstage/integration-react": "^1.2.5",
|
|
82
|
+
"@backstage/plugin-catalog-common": "^1.1.3",
|
|
83
|
+
"@backstage/plugin-catalog-react": "^1.16.0",
|
|
84
|
+
"@backstage/plugin-permission-react": "^0.4.32",
|
|
85
|
+
"@backstage/plugin-scaffolder-common": "^1.5.10",
|
|
86
|
+
"@backstage/plugin-scaffolder-react": "^1.14.6",
|
|
87
|
+
"@backstage/types": "^1.2.1",
|
|
88
88
|
"@codemirror/language": "^6.0.0",
|
|
89
89
|
"@codemirror/legacy-modes": "^6.1.0",
|
|
90
90
|
"@codemirror/view": "^6.0.0",
|
|
@@ -117,12 +117,12 @@
|
|
|
117
117
|
"zod-to-json-schema": "^3.20.4"
|
|
118
118
|
},
|
|
119
119
|
"devDependencies": {
|
|
120
|
-
"@backstage/cli": "0.
|
|
121
|
-
"@backstage/core-app-api": "1.
|
|
122
|
-
"@backstage/dev-utils": "1.1.8
|
|
123
|
-
"@backstage/plugin-catalog": "1.28.0
|
|
124
|
-
"@backstage/plugin-permission-common": "0.8.4",
|
|
125
|
-
"@backstage/test-utils": "1.7.
|
|
120
|
+
"@backstage/cli": "^0.31.0",
|
|
121
|
+
"@backstage/core-app-api": "^1.16.0",
|
|
122
|
+
"@backstage/dev-utils": "^1.1.8",
|
|
123
|
+
"@backstage/plugin-catalog": "^1.28.0",
|
|
124
|
+
"@backstage/plugin-permission-common": "^0.8.4",
|
|
125
|
+
"@backstage/test-utils": "^1.7.6",
|
|
126
126
|
"@testing-library/dom": "^10.0.0",
|
|
127
127
|
"@testing-library/jest-dom": "^6.0.0",
|
|
128
128
|
"@testing-library/react": "^16.0.0",
|