@backstage/plugin-scaffolder-react 1.18.0 → 1.19.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @backstage/plugin-scaffolder-react
2
2
 
3
+ ## 1.19.0-next.1
4
+
5
+ ### Minor Changes
6
+
7
+ - 4f99e10: **DEPRECATION**: The following types have been deprecated from this package and moved into `@backstage/plugin-scaffolder-common` and should be imported from there instead.
8
+
9
+ `Action`, `ListActionsResponse`, `LogEvent`, `ScaffolderApi`, `ScaffolderDryRunOptions`, `ScaffolderDryRunResponse`, `ScaffolderGetIntegrationsListOptions`, `ScaffolderGetIntegrationsListResponse`,
10
+ `ScaffolderOutputLink`, `ScaffolderOutputText`, `ScaffolderScaffoldOptions`, `ScaffolderScaffoldResponse`, `ScaffolderStreamLogsOptions`, `ScaffolderTask`, `ScaffolderTaskOutput`, `ScaffolderTaskStatus`,
11
+ `ScaffolderUsageExample`, `TemplateFilter`, `TemplateGlobalFunction`, `TemplateGlobalValue`, `TemplateParameterSchema`.
12
+
13
+ - c08cbc4: Move Scaffolder API to OpenAPI
14
+
15
+ ### Patch Changes
16
+
17
+ - f2f133c: Internal update to use the new variant of `ApiBlueprint`.
18
+ - c4b7c50: Export `FormField` type from `/alpha` in `-react` package, and internal refactor.
19
+ - Updated dependencies
20
+ - @backstage/plugin-scaffolder-common@1.7.0-next.0
21
+ - @backstage/plugin-catalog-react@1.20.0-next.1
22
+ - @backstage/frontend-plugin-api@0.11.0-next.0
23
+ - @backstage/theme@0.6.8-next.0
24
+ - @backstage/catalog-client@1.11.0-next.0
25
+ - @backstage/core-components@0.17.5-next.0
26
+ - @backstage/catalog-model@1.7.5
27
+ - @backstage/core-plugin-api@1.10.9
28
+ - @backstage/types@1.2.1
29
+ - @backstage/version-bridge@1.0.11
30
+ - @backstage/plugin-permission-react@0.4.36
31
+
32
+ ## 1.18.1-next.0
33
+
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies
37
+ - @backstage/plugin-catalog-react@1.19.2-next.0
38
+ - @backstage/frontend-plugin-api@0.10.4
39
+
3
40
  ## 1.18.0
4
41
 
5
42
  ### Minor Changes
package/dist/alpha.d.ts CHANGED
@@ -12,47 +12,6 @@ import { Overrides } from '@material-ui/core/styles/overrides';
12
12
  import { StyleRules } from '@material-ui/core/styles/withStyles';
13
13
  import * as _backstage_core_plugin_api_alpha from '@backstage/core-plugin-api/alpha';
14
14
 
15
- /*
16
- * Copyright 2024 The Backstage Authors
17
- *
18
- * Licensed under the Apache License, Version 2.0 (the "License");
19
- * you may not use this file except in compliance with the License.
20
- * You may obtain a copy of the License at
21
- *
22
- * http://www.apache.org/licenses/LICENSE-2.0
23
- *
24
- * Unless required by applicable law or agreed to in writing, software
25
- * distributed under the License is distributed on an "AS IS" BASIS,
26
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
27
- * See the License for the specific language governing permissions and
28
- * limitations under the License.
29
- */
30
-
31
-
32
-
33
- /** @alpha */
34
- interface FormField {
35
- readonly $$type: '@backstage/scaffolder/FormField';
36
- }
37
-
38
- /** @alpha */
39
- declare const formFieldsApi: _backstage_frontend_plugin_api.ExtensionDefinition<{
40
- config: {};
41
- configInput: {};
42
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
43
- inputs: {
44
- formFields: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<() => Promise<FormField>, "scaffolder.form-field-loader", {}>, {
45
- singleton: false;
46
- optional: false;
47
- }>;
48
- };
49
- kind: "api";
50
- name: "form-fields";
51
- params: {
52
- factory: _backstage_frontend_plugin_api.AnyApiFactory;
53
- };
54
- }>;
55
-
56
15
  /** @alpha */
57
16
  type ScaffolderFormDecoratorContext<TInput extends JsonObject = JsonObject> = {
58
17
  input: TInput;
@@ -152,6 +111,26 @@ declare function createFormField<TReturnValue extends z.ZodType, TUiOptions exte
152
111
  interface ScaffolderFormFieldsApi {
153
112
  getFormFields(): Promise<FormFieldExtensionData[]>;
154
113
  }
114
+ /** @alpha */
115
+ interface FormField {
116
+ readonly $$type: '@backstage/scaffolder/FormField';
117
+ }
118
+
119
+ /** @alpha */
120
+ declare const formFieldsApi: _backstage_frontend_plugin_api.ExtensionDefinition<{
121
+ config: {};
122
+ configInput: {};
123
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
124
+ inputs: {
125
+ formFields: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<() => Promise<FormField>, "scaffolder.form-field-loader", {}>, {
126
+ singleton: false;
127
+ optional: false;
128
+ }>;
129
+ };
130
+ kind: "api";
131
+ name: "form-fields";
132
+ params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
133
+ }>;
155
134
 
156
135
  /**
157
136
  * @alpha
@@ -490,4 +469,4 @@ declare const scaffolderReactTranslationRef: _backstage_core_plugin_api_alpha.Tr
490
469
  readonly "templateOutputs.title": "Text Output";
491
470
  }>;
492
471
 
493
- export { type BackstageOverrides, type BackstageTemplateStepperClassKey, DefaultTemplateOutputs, EmbeddableWorkflow, Form, FormDecoratorBlueprint, FormFieldBlueprint, type FormFieldExtensionData, type FormValidation, type ParsedTemplateSchema, ReviewState, type ReviewStateProps, ScaffolderField, type ScaffolderFieldProps, type ScaffolderFormDecorator, type ScaffolderFormDecoratorContext, type ScaffolderFormFieldsApi, ScaffolderPageContextMenu, type ScaffolderPageContextMenuProps, type ScaffolderReactComponentsNameToClassKey, type ScaffolderReactTemplateCategoryPickerClassKey, SecretWidget, Stepper, type StepperProps, TaskLogStream, TaskSteps, type TaskStepsProps, TemplateCard, type TemplateCardProps, TemplateCategoryPicker, TemplateGroup, type TemplateGroupProps, TemplateGroups, type TemplateGroupsProps, Workflow, type WorkflowProps, createAsyncValidators, createFieldValidation, createFormField, createScaffolderFormDecorator, extractSchemaFromStep, formFieldsApi, formFieldsApiRef, scaffolderReactTranslationRef, useFilteredSchemaProperties, useFormDataFromQuery, useTemplateParameterSchema, useTemplateSchema };
472
+ export { type BackstageOverrides, type BackstageTemplateStepperClassKey, DefaultTemplateOutputs, EmbeddableWorkflow, Form, FormDecoratorBlueprint, type FormField, FormFieldBlueprint, type FormFieldExtensionData, type FormValidation, type ParsedTemplateSchema, ReviewState, type ReviewStateProps, ScaffolderField, type ScaffolderFieldProps, type ScaffolderFormDecorator, type ScaffolderFormDecoratorContext, type ScaffolderFormFieldsApi, ScaffolderPageContextMenu, type ScaffolderPageContextMenuProps, type ScaffolderReactComponentsNameToClassKey, type ScaffolderReactTemplateCategoryPickerClassKey, SecretWidget, Stepper, type StepperProps, TaskLogStream, TaskSteps, type TaskStepsProps, TemplateCard, type TemplateCardProps, TemplateCategoryPicker, TemplateGroup, type TemplateGroupProps, TemplateGroups, type TemplateGroupsProps, Workflow, type WorkflowProps, createAsyncValidators, createFieldValidation, createFormField, createScaffolderFormDecorator, extractSchemaFromStep, formFieldsApi, formFieldsApiRef, scaffolderReactTranslationRef, useFilteredSchemaProperties, useFormDataFromQuery, useTemplateParameterSchema, useTemplateSchema };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { ApiHolder, Extension } from '@backstage/core-plugin-api';
2
2
  import { HTMLAttributes, ReactNode, FormEvent, ElementType, Ref, ComponentType, PropsWithChildren } from 'react';
3
- import { JsonObject, JsonValue, Observable } from '@backstage/types';
3
+ import { JsonObject } from '@backstage/types';
4
4
  import { JSONSchema7 } from 'json-schema';
5
5
  import { StrictRJSFSchema, RJSFSchema, FormContextType, GenericObjectType, UiSchema, IdSchema, ErrorSchema, Registry, ValidatorType, TemplatesType, RegistryWidgetsType, RJSFValidationError, CustomValidator, ErrorTransformer, Experimental_DefaultFormStateBehavior, UIOptionsType, FieldValidation } from '@rjsf/utils';
6
6
  import Form, { IChangeEvent, FormProps as FormProps$1 } from '@rjsf/core';
7
- import { TemplateEntityV1beta3, TemplatePresentationV1beta3, TaskSpec, TaskStep } from '@backstage/plugin-scaffolder-common';
7
+ import * as _backstage_plugin_scaffolder_common from '@backstage/plugin-scaffolder-common';
8
+ import { TemplateEntityV1beta3, TemplateParameterSchema as TemplateParameterSchema$1, ScaffolderTaskStatus as ScaffolderTaskStatus$1, ScaffolderTask as ScaffolderTask$1, ScaffolderUsageExample as ScaffolderUsageExample$1, Action as Action$1, ListActionsResponse as ListActionsResponse$1, TemplateFilter as TemplateFilter$1, TemplateGlobalFunction as TemplateGlobalFunction$1, TemplateGlobalValue as TemplateGlobalValue$1, ListTemplatingExtensionsResponse as ListTemplatingExtensionsResponse$1, ScaffolderOutputLink as ScaffolderOutputLink$1, ScaffolderOutputText as ScaffolderOutputText$1, ScaffolderTaskOutput as ScaffolderTaskOutput$1, LogEvent as LogEvent$1, ScaffolderScaffoldOptions as ScaffolderScaffoldOptions$1, ScaffolderScaffoldResponse as ScaffolderScaffoldResponse$1, ScaffolderGetIntegrationsListOptions as ScaffolderGetIntegrationsListOptions$1, ScaffolderGetIntegrationsListResponse as ScaffolderGetIntegrationsListResponse$1, ScaffolderStreamLogsOptions as ScaffolderStreamLogsOptions$1, ScaffolderDryRunOptions as ScaffolderDryRunOptions$1, ScaffolderDryRunResponse as ScaffolderDryRunResponse$1, ScaffolderApi as ScaffolderApi$1 } from '@backstage/plugin-scaffolder-common';
8
9
  import * as react_jsx_runtime from 'react/jsx-runtime';
9
10
  import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
10
11
  import { z } from 'zod';
@@ -338,21 +339,9 @@ type ReviewStepProps = {
338
339
  * as a separate step in the wizard input
339
340
  *
340
341
  * @public
342
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#TemplateParameterSchema} instead as this has now been moved.
341
343
  */
342
- type TemplateParameterSchema = {
343
- title: string;
344
- description?: string;
345
- presentation?: TemplatePresentationV1beta3;
346
- steps: Array<{
347
- title: string;
348
- description?: string;
349
- schema: JsonObject;
350
- }>;
351
- EXPERIMENTAL_formDecorators?: {
352
- id: string;
353
- input?: JsonObject;
354
- }[];
355
- };
344
+ type TemplateParameterSchema = TemplateParameterSchema$1;
356
345
 
357
346
  /**
358
347
  * The Context Provider that holds the state for the secrets.
@@ -376,34 +365,30 @@ interface ScaffolderUseTemplateSecrets {
376
365
  */
377
366
  declare const useTemplateSecrets: () => ScaffolderUseTemplateSecrets;
378
367
 
368
+ /** @public */
369
+ declare const scaffolderApiRef: _backstage_frontend_plugin_api.ApiRef<_backstage_plugin_scaffolder_common.ScaffolderApi>;
370
+
379
371
  /**
380
372
  * The status of each task in a Scaffolder Job
381
373
  *
382
374
  * @public
375
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTaskStatus} instead as this has now been moved.
383
376
  */
384
- type ScaffolderTaskStatus = 'cancelled' | 'completed' | 'failed' | 'open' | 'processing' | 'skipped';
377
+ type ScaffolderTaskStatus = ScaffolderTaskStatus$1;
385
378
  /**
386
379
  * The shape of each task returned from the `scaffolder-backend`
387
380
  *
388
381
  * @public
382
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTask} instead as this has now been moved.
389
383
  */
390
- type ScaffolderTask = {
391
- id: string;
392
- spec: TaskSpec;
393
- status: 'failed' | 'completed' | 'processing' | 'open' | 'cancelled';
394
- lastHeartbeatAt: string;
395
- createdAt: string;
396
- };
384
+ type ScaffolderTask = ScaffolderTask$1;
397
385
  /**
398
386
  * A single scaffolder usage example
399
387
  *
400
388
  * @public
389
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderUsageExample} instead as this has now been moved.
401
390
  */
402
- type ScaffolderUsageExample = {
403
- description?: string;
404
- example: string;
405
- notes?: string;
406
- };
391
+ type ScaffolderUsageExample = ScaffolderUsageExample$1;
407
392
  /**
408
393
  * A single action example
409
394
  *
@@ -415,237 +400,118 @@ type ActionExample = ScaffolderUsageExample;
415
400
  * The response shape for a single action in the `listActions` call to the `scaffolder-backend`
416
401
  *
417
402
  * @public
403
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#Action} instead as this has now been moved.
418
404
  */
419
- type Action = {
420
- id: string;
421
- description?: string;
422
- schema?: {
423
- input?: JSONSchema7;
424
- output?: JSONSchema7;
425
- };
426
- examples?: ActionExample[];
427
- };
405
+ type Action = Action$1;
428
406
  /**
429
407
  * The response shape for the `listActions` call to the `scaffolder-backend`
430
408
  *
431
409
  * @public
410
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ListActionsResponse} instead as this has now been moved.
432
411
  */
433
- type ListActionsResponse = Array<Action>;
412
+ type ListActionsResponse = ListActionsResponse$1;
434
413
  /**
435
414
  * The response shape for a single filter in the `listTemplatingExtensions` call to the `scaffolder-backend`
436
415
  *
437
416
  * @public
417
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#TemplateFilter} instead as this has now been moved.
438
418
  */
439
- type TemplateFilter = {
440
- description?: string;
441
- schema?: {
442
- input?: JSONSchema7;
443
- arguments?: JSONSchema7[];
444
- output?: JSONSchema7;
445
- };
446
- examples?: ScaffolderUsageExample[];
447
- };
419
+ type TemplateFilter = TemplateFilter$1;
448
420
  /**
449
421
  * The response shape for a single global function in the `listTemplatingExtensions` call to the `scaffolder-backend`
450
422
  *
451
423
  * @public
424
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#TemplateGlobalFunction} instead as this has now been moved.
452
425
  */
453
- type TemplateGlobalFunction = {
454
- description?: string;
455
- schema?: {
456
- arguments?: JSONSchema7[];
457
- output?: JSONSchema7;
458
- };
459
- examples?: ScaffolderUsageExample[];
460
- };
426
+ type TemplateGlobalFunction = TemplateGlobalFunction$1;
461
427
  /**
462
428
  * The response shape for a single global value in the `listTemplatingExtensions` call to the `scaffolder-backend`
463
429
  *
464
430
  * @public
431
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#TemplateGlobalValue} instead as this has now been moved.
465
432
  */
466
- type TemplateGlobalValue = {
467
- description?: string;
468
- value: JsonValue;
469
- };
433
+ type TemplateGlobalValue = TemplateGlobalValue$1;
470
434
  /**
471
435
  * The response shape for the `listTemplatingExtensions` call to the `scaffolder-backend`
472
436
  *
473
437
  * @public
438
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ListTemplatingExtensionsResponse} instead as this has now been moved.
474
439
  */
475
- type ListTemplatingExtensionsResponse = {
476
- filters: Record<string, TemplateFilter>;
477
- globals: {
478
- functions: Record<string, TemplateGlobalFunction>;
479
- values: Record<string, TemplateGlobalValue>;
480
- };
481
- };
482
- /** @public */
483
- type ScaffolderOutputLink = {
484
- title?: string;
485
- icon?: string;
486
- url?: string;
487
- entityRef?: string;
488
- };
489
- /** @public */
490
- type ScaffolderOutputText = {
491
- title?: string;
492
- icon?: string;
493
- content?: string;
494
- default?: boolean;
495
- };
496
- /** @public */
497
- type ScaffolderTaskOutput = {
498
- links?: ScaffolderOutputLink[];
499
- text?: ScaffolderOutputText[];
500
- } & {
501
- [key: string]: unknown;
502
- };
440
+ type ListTemplatingExtensionsResponse = ListTemplatingExtensionsResponse$1;
441
+ /**
442
+ * @public
443
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderOutputLink} instead as this has now been moved.
444
+ */
445
+ type ScaffolderOutputLink = ScaffolderOutputLink$1;
446
+ /**
447
+ * @public
448
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderOutputText} instead as this has now been moved.
449
+ */
450
+ type ScaffolderOutputText = ScaffolderOutputText$1;
451
+ /**
452
+ * @public
453
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderTaskOutput} instead as this has now been moved.
454
+ */
455
+ type ScaffolderTaskOutput = ScaffolderTaskOutput$1;
503
456
  /**
504
457
  * The shape of a `LogEvent` message from the `scaffolder-backend`
505
458
  *
506
459
  * @public
460
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#LogEvent} instead as this has now been moved.
507
461
  */
508
- type LogEvent = {
509
- type: 'log' | 'completion' | 'cancelled' | 'recovered';
510
- body: {
511
- message: string;
512
- stepId?: string;
513
- status?: ScaffolderTaskStatus;
514
- };
515
- createdAt: string;
516
- id: string;
517
- taskId: string;
518
- };
462
+ type LogEvent = LogEvent$1;
519
463
  /**
520
464
  * The input options to the `scaffold` method of the `ScaffolderClient`.
521
465
  *
522
466
  * @public
467
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderScaffoldOptions} instead as this has now been moved.
523
468
  */
524
- interface ScaffolderScaffoldOptions {
525
- templateRef: string;
526
- values: Record<string, JsonValue>;
527
- secrets?: Record<string, string>;
528
- }
469
+ type ScaffolderScaffoldOptions = ScaffolderScaffoldOptions$1;
529
470
  /**
530
471
  * The response shape of the `scaffold` method of the `ScaffolderClient`.
531
472
  *
532
473
  * @public
474
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderScaffoldResponse} instead as this has now been moved.
533
475
  */
534
- interface ScaffolderScaffoldResponse {
535
- taskId: string;
536
- }
476
+ type ScaffolderScaffoldResponse = ScaffolderScaffoldResponse$1;
537
477
  /**
538
478
  * The arguments for `getIntegrationsList`.
539
479
  *
540
480
  * @public
481
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderGetIntegrationsListOptions} instead as this has now been moved.
541
482
  */
542
- interface ScaffolderGetIntegrationsListOptions {
543
- allowedHosts: string[];
544
- }
483
+ type ScaffolderGetIntegrationsListOptions = ScaffolderGetIntegrationsListOptions$1;
545
484
  /**
546
485
  * The response shape for `getIntegrationsList`.
547
486
  *
548
487
  * @public
488
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderGetIntegrationsListResponse} instead as this has now been moved.
549
489
  */
550
- interface ScaffolderGetIntegrationsListResponse {
551
- integrations: {
552
- type: string;
553
- title: string;
554
- host: string;
555
- }[];
556
- }
490
+ type ScaffolderGetIntegrationsListResponse = ScaffolderGetIntegrationsListResponse$1;
557
491
  /**
558
492
  * The input options to the `streamLogs` method of the `ScaffolderClient`.
559
493
  *
560
494
  * @public
495
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderStreamLogsOptions} instead as this has now been moved.
561
496
  */
562
- interface ScaffolderStreamLogsOptions {
563
- isTaskRecoverable?: boolean;
564
- taskId: string;
565
- after?: number;
566
- }
567
- /** @public */
568
- interface ScaffolderDryRunOptions {
569
- template: JsonValue;
570
- values: JsonObject;
571
- secrets?: Record<string, string>;
572
- directoryContents: {
573
- path: string;
574
- base64Content: string;
575
- }[];
576
- }
577
- /** @public */
578
- interface ScaffolderDryRunResponse {
579
- directoryContents: Array<{
580
- path: string;
581
- base64Content: string;
582
- executable: boolean;
583
- }>;
584
- log: Array<Pick<LogEvent, 'body'>>;
585
- steps: TaskStep[];
586
- output: ScaffolderTaskOutput;
587
- }
497
+ type ScaffolderStreamLogsOptions = ScaffolderStreamLogsOptions$1;
498
+ /**
499
+ * @public
500
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderDryRunOptions} instead as this has now been moved.
501
+ */
502
+ type ScaffolderDryRunOptions = ScaffolderDryRunOptions$1;
503
+ /**
504
+ * @public
505
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderDryRunResponse} instead as this has now been moved.
506
+ */
507
+ type ScaffolderDryRunResponse = ScaffolderDryRunResponse$1;
588
508
  /**
589
509
  * An API to interact with the scaffolder backend.
590
510
  *
591
511
  * @public
512
+ * @deprecated use import from {@link @backstage/plugin-scaffolder-common#ScaffolderApi} instead as this has now been moved.
592
513
  */
593
- interface ScaffolderApi {
594
- getTemplateParameterSchema(templateRef: string): Promise<TemplateParameterSchema>;
595
- /**
596
- * Executes the scaffolding of a component, given a template and its
597
- * parameter values.
598
- *
599
- * @param options - The {@link ScaffolderScaffoldOptions} the scaffolding.
600
- */
601
- scaffold(options: ScaffolderScaffoldOptions): Promise<ScaffolderScaffoldResponse>;
602
- getTask(taskId: string): Promise<ScaffolderTask>;
603
- /**
604
- * Sends a signal to a task broker to cancel the running task by taskId.
605
- *
606
- * @param taskId - the id of the task
607
- */
608
- cancelTask(taskId: string): Promise<void>;
609
- /**
610
- * Starts the task again from the point where it failed.
611
- *
612
- * @param taskId - the id of the task
613
- */
614
- retry?(taskId: string): Promise<void>;
615
- listTasks?(options: {
616
- filterByOwnership: 'owned' | 'all';
617
- limit?: number;
618
- offset?: number;
619
- }): Promise<{
620
- tasks: ScaffolderTask[];
621
- totalTasks?: number;
622
- }>;
623
- getIntegrationsList(options: ScaffolderGetIntegrationsListOptions): Promise<ScaffolderGetIntegrationsListResponse>;
624
- /**
625
- * Returns a list of all installed actions.
626
- */
627
- listActions(): Promise<ListActionsResponse>;
628
- /**
629
- * Returns a structure describing the available templating extensions.
630
- */
631
- listTemplatingExtensions?(): Promise<ListTemplatingExtensionsResponse>;
632
- streamLogs(options: ScaffolderStreamLogsOptions): Observable<LogEvent>;
633
- dryRun?(options: ScaffolderDryRunOptions): Promise<ScaffolderDryRunResponse>;
634
- autocomplete?(options: {
635
- token: string;
636
- provider: string;
637
- resource: string;
638
- context?: Record<string, string>;
639
- }): Promise<{
640
- results: {
641
- title?: string;
642
- id: string;
643
- }[];
644
- }>;
645
- }
646
-
647
- /** @public */
648
- declare const scaffolderApiRef: _backstage_frontend_plugin_api.ApiRef<ScaffolderApi>;
514
+ type ScaffolderApi = ScaffolderApi$1;
649
515
 
650
516
  /**
651
517
  * Hook that returns all custom field extensions from the current outlet.
@@ -1,4 +1,4 @@
1
- import { ApiBlueprint, createExtensionInput, createApiFactory } from '@backstage/frontend-plugin-api';
1
+ import { ApiBlueprint, createExtensionInput } from '@backstage/frontend-plugin-api';
2
2
  import { formFieldsApiRef } from './ref.esm.js';
3
3
  import '../blueprints/FormDecoratorBlueprint.esm.js';
4
4
  import { FormFieldBlueprint } from '../blueprints/FormFieldBlueprint.esm.js';
@@ -27,13 +27,13 @@ const formFieldsApi = ApiBlueprint.makeWithOverrides({
27
27
  const formFieldLoaders = inputs.formFields.map(
28
28
  (e) => e.get(FormFieldBlueprint.dataRefs.formFieldLoader)
29
29
  );
30
- return originalFactory({
31
- factory: createApiFactory({
30
+ return originalFactory(
31
+ (define) => define({
32
32
  api: formFieldsApiRef,
33
33
  deps: {},
34
34
  factory: () => new DefaultScaffolderFormFieldsApi(formFieldLoaders)
35
35
  })
36
- });
36
+ );
37
37
  }
38
38
  });
39
39
 
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldsApi.esm.js","sources":["../../../src/next/api/FormFieldsApi.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 {\n ApiBlueprint,\n createApiFactory,\n createExtensionInput,\n} from '@backstage/frontend-plugin-api';\nimport { formFieldsApiRef } from './ref';\nimport { ScaffolderFormFieldsApi } from './types';\nimport { FormFieldBlueprint } from '../blueprints';\nimport { FormField, OpaqueFormField } from '@internal/scaffolder';\n\nclass DefaultScaffolderFormFieldsApi implements ScaffolderFormFieldsApi {\n constructor(\n private readonly formFieldLoaders: Array<() => Promise<FormField>> = [],\n ) {}\n\n async getFormFields() {\n const formFields = await Promise.all(\n this.formFieldLoaders.map(loader => loader()),\n );\n\n const internalFormFields = formFields.map(OpaqueFormField.toInternal);\n\n return internalFormFields;\n }\n}\n\n/** @alpha */\nexport const formFieldsApi = ApiBlueprint.makeWithOverrides({\n name: 'form-fields',\n inputs: {\n formFields: createExtensionInput([\n FormFieldBlueprint.dataRefs.formFieldLoader,\n ]),\n },\n factory(originalFactory, { inputs }) {\n const formFieldLoaders = inputs.formFields.map(e =>\n e.get(FormFieldBlueprint.dataRefs.formFieldLoader),\n );\n\n return originalFactory({\n factory: createApiFactory({\n api: formFieldsApiRef,\n deps: {},\n factory: () => new DefaultScaffolderFormFieldsApi(formFieldLoaders),\n }),\n });\n },\n});\n"],"names":[],"mappings":";;;;;;AA0BA,MAAM,8BAAkE,CAAA;AAAA,EACtE,WAAA,CACmB,gBAAoD,GAAA,EACrE,EAAA;AADiB,IAAA,IAAA,CAAA,gBAAA,GAAA,gBAAA;AAAA;AAChB,EAEH,MAAM,aAAgB,GAAA;AACpB,IAAM,MAAA,UAAA,GAAa,MAAM,OAAQ,CAAA,GAAA;AAAA,MAC/B,IAAK,CAAA,gBAAA,CAAiB,GAAI,CAAA,CAAA,MAAA,KAAU,QAAQ;AAAA,KAC9C;AAEA,IAAA,MAAM,kBAAqB,GAAA,UAAA,CAAW,GAAI,CAAA,eAAA,CAAgB,UAAU,CAAA;AAEpE,IAAO,OAAA,kBAAA;AAAA;AAEX;AAGa,MAAA,aAAA,GAAgB,aAAa,iBAAkB,CAAA;AAAA,EAC1D,IAAM,EAAA,aAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,YAAY,oBAAqB,CAAA;AAAA,MAC/B,mBAAmB,QAAS,CAAA;AAAA,KAC7B;AAAA,GACH;AAAA,EACA,OAAQ,CAAA,eAAA,EAAiB,EAAE,MAAA,EAAU,EAAA;AACnC,IAAM,MAAA,gBAAA,GAAmB,OAAO,UAAW,CAAA,GAAA;AAAA,MAAI,CAC7C,CAAA,KAAA,CAAA,CAAE,GAAI,CAAA,kBAAA,CAAmB,SAAS,eAAe;AAAA,KACnD;AAEA,IAAA,OAAO,eAAgB,CAAA;AAAA,MACrB,SAAS,gBAAiB,CAAA;AAAA,QACxB,GAAK,EAAA,gBAAA;AAAA,QACL,MAAM,EAAC;AAAA,QACP,OAAS,EAAA,MAAM,IAAI,8BAAA,CAA+B,gBAAgB;AAAA,OACnE;AAAA,KACF,CAAA;AAAA;AAEL,CAAC;;;;"}
1
+ {"version":3,"file":"FormFieldsApi.esm.js","sources":["../../../src/next/api/FormFieldsApi.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 {\n ApiBlueprint,\n createExtensionInput,\n} from '@backstage/frontend-plugin-api';\nimport { formFieldsApiRef } from './ref';\nimport { FormField, ScaffolderFormFieldsApi } from './types';\nimport { FormFieldBlueprint } from '../blueprints';\nimport { OpaqueFormField } from '@internal/scaffolder';\n\nclass DefaultScaffolderFormFieldsApi implements ScaffolderFormFieldsApi {\n constructor(\n private readonly formFieldLoaders: Array<() => Promise<FormField>> = [],\n ) {}\n\n async getFormFields() {\n const formFields = await Promise.all(\n this.formFieldLoaders.map(loader => loader()),\n );\n\n const internalFormFields = formFields.map(OpaqueFormField.toInternal);\n\n return internalFormFields;\n }\n}\n\n/** @alpha */\nexport const formFieldsApi = ApiBlueprint.makeWithOverrides({\n name: 'form-fields',\n inputs: {\n formFields: createExtensionInput([\n FormFieldBlueprint.dataRefs.formFieldLoader,\n ]),\n },\n factory(originalFactory, { inputs }) {\n const formFieldLoaders = inputs.formFields.map(e =>\n e.get(FormFieldBlueprint.dataRefs.formFieldLoader),\n );\n\n return originalFactory(define =>\n define({\n api: formFieldsApiRef,\n deps: {},\n factory: () => new DefaultScaffolderFormFieldsApi(formFieldLoaders),\n }),\n );\n },\n});\n"],"names":[],"mappings":";;;;;;AAyBA,MAAM,8BAAkE,CAAA;AAAA,EACtE,WAAA,CACmB,gBAAoD,GAAA,EACrE,EAAA;AADiB,IAAA,IAAA,CAAA,gBAAA,GAAA,gBAAA;AAAA;AAChB,EAEH,MAAM,aAAgB,GAAA;AACpB,IAAM,MAAA,UAAA,GAAa,MAAM,OAAQ,CAAA,GAAA;AAAA,MAC/B,IAAK,CAAA,gBAAA,CAAiB,GAAI,CAAA,CAAA,MAAA,KAAU,QAAQ;AAAA,KAC9C;AAEA,IAAA,MAAM,kBAAqB,GAAA,UAAA,CAAW,GAAI,CAAA,eAAA,CAAgB,UAAU,CAAA;AAEpE,IAAO,OAAA,kBAAA;AAAA;AAEX;AAGa,MAAA,aAAA,GAAgB,aAAa,iBAAkB,CAAA;AAAA,EAC1D,IAAM,EAAA,aAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,YAAY,oBAAqB,CAAA;AAAA,MAC/B,mBAAmB,QAAS,CAAA;AAAA,KAC7B;AAAA,GACH;AAAA,EACA,OAAQ,CAAA,eAAA,EAAiB,EAAE,MAAA,EAAU,EAAA;AACnC,IAAM,MAAA,gBAAA,GAAmB,OAAO,UAAW,CAAA,GAAA;AAAA,MAAI,CAC7C,CAAA,KAAA,CAAA,CAAE,GAAI,CAAA,kBAAA,CAAmB,SAAS,eAAe;AAAA,KACnD;AAEA,IAAO,OAAA,eAAA;AAAA,MAAgB,YACrB,MAAO,CAAA;AAAA,QACL,GAAK,EAAA,gBAAA;AAAA,QACL,MAAM,EAAC;AAAA,QACP,OAAS,EAAA,MAAM,IAAI,8BAAA,CAA+B,gBAAgB;AAAA,OACnE;AAAA,KACH;AAAA;AAEJ,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormFieldBlueprint.esm.js","sources":["../../../src/next/blueprints/FormFieldBlueprint.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n createExtensionBlueprint,\n createExtensionDataRef,\n} from '@backstage/frontend-plugin-api';\nimport { z } from 'zod';\n\nimport { OpaqueFormField, FormField } from '@internal/scaffolder';\nimport { FormFieldExtensionData } from './types';\n\nconst formFieldExtensionDataRef = createExtensionDataRef<\n () => Promise<FormField>\n>().with({\n id: 'scaffolder.form-field-loader',\n});\n\n/**\n * @alpha\n * Creates extensions that are Field Extensions for the Scaffolder\n * */\nexport const FormFieldBlueprint = createExtensionBlueprint({\n kind: 'scaffolder-form-field',\n attachTo: [\n { id: 'page:scaffolder', input: 'formFields' },\n { id: 'api:scaffolder/form-fields', input: 'formFields' },\n ],\n dataRefs: {\n formFieldLoader: formFieldExtensionDataRef,\n },\n output: [formFieldExtensionDataRef],\n *factory(params: { field: () => Promise<FormField> }) {\n yield formFieldExtensionDataRef(params.field);\n },\n});\n\n/**\n * @alpha\n * Used to create a form field binding with typechecking for compliance\n */\nexport function createFormField<\n TReturnValue extends z.ZodType,\n TUiOptions extends z.ZodType,\n>(opts: FormFieldExtensionData<TReturnValue, TUiOptions>): FormField {\n return OpaqueFormField.createInstance('v1', opts);\n}\n"],"names":[],"mappings":";;;;AAwBA,MAAM,yBAAA,GAA4B,sBAEhC,EAAA,CAAE,IAAK,CAAA;AAAA,EACP,EAAI,EAAA;AACN,CAAC,CAAA;AAMM,MAAM,qBAAqB,wBAAyB,CAAA;AAAA,EACzD,IAAM,EAAA,uBAAA;AAAA,EACN,QAAU,EAAA;AAAA,IACR,EAAE,EAAA,EAAI,iBAAmB,EAAA,KAAA,EAAO,YAAa,EAAA;AAAA,IAC7C,EAAE,EAAA,EAAI,4BAA8B,EAAA,KAAA,EAAO,YAAa;AAAA,GAC1D;AAAA,EACA,QAAU,EAAA;AAAA,IACR,eAAiB,EAAA;AAAA,GACnB;AAAA,EACA,MAAA,EAAQ,CAAC,yBAAyB,CAAA;AAAA,EAClC,CAAC,QAAQ,MAA6C,EAAA;AACpD,IAAM,MAAA,yBAAA,CAA0B,OAAO,KAAK,CAAA;AAAA;AAEhD,CAAC;AAMM,SAAS,gBAGd,IAAmE,EAAA;AACnE,EAAO,OAAA,eAAA,CAAgB,cAAe,CAAA,IAAA,EAAM,IAAI,CAAA;AAClD;;;;"}
1
+ {"version":3,"file":"FormFieldBlueprint.esm.js","sources":["../../../src/next/blueprints/FormFieldBlueprint.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n createExtensionBlueprint,\n createExtensionDataRef,\n} from '@backstage/frontend-plugin-api';\nimport { z } from 'zod';\n\nimport { OpaqueFormField } from '@internal/scaffolder';\nimport { FormFieldExtensionData } from './types';\nimport { FormField } from '../api';\n\nconst formFieldExtensionDataRef = createExtensionDataRef<\n () => Promise<FormField>\n>().with({\n id: 'scaffolder.form-field-loader',\n});\n\n/**\n * @alpha\n * Creates extensions that are Field Extensions for the Scaffolder\n * */\nexport const FormFieldBlueprint = createExtensionBlueprint({\n kind: 'scaffolder-form-field',\n attachTo: [\n { id: 'page:scaffolder', input: 'formFields' },\n { id: 'api:scaffolder/form-fields', input: 'formFields' },\n ],\n dataRefs: {\n formFieldLoader: formFieldExtensionDataRef,\n },\n output: [formFieldExtensionDataRef],\n *factory(params: { field: () => Promise<FormField> }) {\n yield formFieldExtensionDataRef(params.field);\n },\n});\n\n/**\n * @alpha\n * Used to create a form field binding with typechecking for compliance\n */\nexport function createFormField<\n TReturnValue extends z.ZodType,\n TUiOptions extends z.ZodType,\n>(opts: FormFieldExtensionData<TReturnValue, TUiOptions>): FormField {\n return OpaqueFormField.createInstance('v1', opts);\n}\n"],"names":[],"mappings":";;;;AAyBA,MAAM,yBAAA,GAA4B,sBAEhC,EAAA,CAAE,IAAK,CAAA;AAAA,EACP,EAAI,EAAA;AACN,CAAC,CAAA;AAMM,MAAM,qBAAqB,wBAAyB,CAAA;AAAA,EACzD,IAAM,EAAA,uBAAA;AAAA,EACN,QAAU,EAAA;AAAA,IACR,EAAE,EAAA,EAAI,iBAAmB,EAAA,KAAA,EAAO,YAAa,EAAA;AAAA,IAC7C,EAAE,EAAA,EAAI,4BAA8B,EAAA,KAAA,EAAO,YAAa;AAAA,GAC1D;AAAA,EACA,QAAU,EAAA;AAAA,IACR,eAAiB,EAAA;AAAA,GACnB;AAAA,EACA,MAAA,EAAQ,CAAC,yBAAyB,CAAA;AAAA,EAClC,CAAC,QAAQ,MAA6C,EAAA;AACpD,IAAM,MAAA,yBAAA,CAA0B,OAAO,KAAK,CAAA;AAAA;AAEhD,CAAC;AAMM,SAAS,gBAGd,IAAmE,EAAA;AACnE,EAAO,OAAA,eAAA,CAAgB,cAAe,CAAA,IAAA,EAAM,IAAI,CAAA;AAClD;;;;"}
@@ -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;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/plugin-scaffolder-react",
3
- "version": "1.18.0",
3
+ "version": "1.19.0-next.1",
4
4
  "description": "A frontend library that helps other Backstage plugins interact with the Scaffolder",
5
5
  "backstage": {
6
6
  "role": "web-library",
@@ -66,17 +66,17 @@
66
66
  "test": "backstage-cli package test"
67
67
  },
68
68
  "dependencies": {
69
- "@backstage/catalog-client": "^1.10.2",
70
- "@backstage/catalog-model": "^1.7.5",
71
- "@backstage/core-components": "^0.17.4",
72
- "@backstage/core-plugin-api": "^1.10.9",
73
- "@backstage/frontend-plugin-api": "^0.10.4",
74
- "@backstage/plugin-catalog-react": "^1.19.1",
75
- "@backstage/plugin-permission-react": "^0.4.36",
76
- "@backstage/plugin-scaffolder-common": "^1.6.0",
77
- "@backstage/theme": "^0.6.7",
78
- "@backstage/types": "^1.2.1",
79
- "@backstage/version-bridge": "^1.0.11",
69
+ "@backstage/catalog-client": "1.11.0-next.0",
70
+ "@backstage/catalog-model": "1.7.5",
71
+ "@backstage/core-components": "0.17.5-next.0",
72
+ "@backstage/core-plugin-api": "1.10.9",
73
+ "@backstage/frontend-plugin-api": "0.11.0-next.0",
74
+ "@backstage/plugin-catalog-react": "1.20.0-next.1",
75
+ "@backstage/plugin-permission-react": "0.4.36",
76
+ "@backstage/plugin-scaffolder-common": "1.7.0-next.0",
77
+ "@backstage/theme": "0.6.8-next.0",
78
+ "@backstage/types": "1.2.1",
79
+ "@backstage/version-bridge": "1.0.11",
80
80
  "@material-ui/core": "^4.12.2",
81
81
  "@material-ui/icons": "^4.9.1",
82
82
  "@material-ui/lab": "4.0.0-alpha.61",
@@ -104,12 +104,12 @@
104
104
  "zod-to-json-schema": "^3.20.4"
105
105
  },
106
106
  "devDependencies": {
107
- "@backstage/cli": "^0.33.1",
108
- "@backstage/core-app-api": "^1.18.0",
109
- "@backstage/plugin-catalog": "^1.31.1",
110
- "@backstage/plugin-catalog-common": "^1.1.5",
111
- "@backstage/plugin-permission-common": "^0.9.1",
112
- "@backstage/test-utils": "^1.7.10",
107
+ "@backstage/cli": "0.33.2-next.0",
108
+ "@backstage/core-app-api": "1.18.0",
109
+ "@backstage/plugin-catalog": "1.31.2-next.1",
110
+ "@backstage/plugin-catalog-common": "1.1.5",
111
+ "@backstage/plugin-permission-common": "0.9.1",
112
+ "@backstage/test-utils": "1.7.11-next.0",
113
113
  "@testing-library/dom": "^10.0.0",
114
114
  "@testing-library/jest-dom": "^6.0.0",
115
115
  "@testing-library/react": "^16.0.0",