@backstage/plugin-scaffolder-backend 1.12.0 → 1.13.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/dist/index.d.ts CHANGED
@@ -1,24 +1,30 @@
1
1
  /// <reference types="node" />
2
2
  import * as _backstage_plugin_scaffolder_node from '@backstage/plugin-scaffolder-node';
3
3
  import { TemplateAction as TemplateAction$1, TaskSecrets as TaskSecrets$1, ActionContext as ActionContext$1 } from '@backstage/plugin-scaffolder-node';
4
+ import * as _backstage_types from '@backstage/types';
5
+ import { JsonValue, HumanDuration, JsonObject, Observable } from '@backstage/types';
4
6
  import { ScmIntegrations, ScmIntegrationRegistry, GithubCredentialsProvider } from '@backstage/integration';
5
7
  import { CatalogApi } from '@backstage/catalog-client';
6
8
  import { UrlReader, PluginDatabaseManager } from '@backstage/backend-common';
7
9
  import { Config } from '@backstage/config';
8
- import { JsonValue, JsonObject, Observable } from '@backstage/types';
10
+ import { Duration } from 'luxon';
9
11
  import { Octokit } from 'octokit';
10
12
  import { createPullRequest } from 'octokit-plugin-create-pull-request';
11
13
  import { SpawnOptionsWithoutStdio } from 'child_process';
12
14
  import { Writable } from 'stream';
13
15
  import { Knex } from 'knex';
14
16
  import * as _backstage_plugin_scaffolder_common from '@backstage/plugin-scaffolder-common';
15
- import { TaskSpec } from '@backstage/plugin-scaffolder-common';
17
+ import { TaskSpec, TemplateEntityStepV1beta3, TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common';
16
18
  import { Logger } from 'winston';
17
19
  import { PluginTaskScheduler } from '@backstage/backend-tasks';
20
+ import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common/alpha';
18
21
  import express from 'express';
19
22
  import { IdentityApi } from '@backstage/plugin-auth-node';
23
+ import { PermissionRuleParams, PermissionEvaluator } from '@backstage/plugin-permission-common';
24
+ import { PermissionRule } from '@backstage/plugin-permission-node';
20
25
  import { Entity } from '@backstage/catalog-model';
21
- import { CatalogProcessor, LocationSpec, CatalogProcessorEmit } from '@backstage/plugin-catalog-backend';
26
+ import { CatalogProcessor, CatalogProcessorEmit } from '@backstage/plugin-catalog-node';
27
+ import { LocationSpec } from '@backstage/plugin-catalog-common';
22
28
  import * as jsonschema from 'jsonschema';
23
29
  import * as zod from 'zod';
24
30
 
@@ -36,16 +42,18 @@ declare function createCatalogRegisterAction(options: {
36
42
  repoContentsUrl: string;
37
43
  catalogInfoPath?: string | undefined;
38
44
  optional?: boolean | undefined;
39
- }>;
45
+ }, _backstage_types.JsonObject>;
40
46
 
41
47
  /**
42
48
  * Writes a catalog descriptor file containing the provided entity to a path in the workspace.
43
49
  * @public
44
50
  */
45
51
  declare function createCatalogWriteAction(): _backstage_plugin_scaffolder_node.TemplateAction<{
52
+ entity: {} & {
53
+ [k: string]: unknown;
54
+ };
46
55
  filePath?: string | undefined;
47
- entity: {};
48
- }>;
56
+ }, _backstage_types.JsonObject>;
49
57
 
50
58
  /**
51
59
  * Returns entity or entities from the catalog by entity reference(s).
@@ -58,6 +66,9 @@ declare function createFetchCatalogEntityAction(options: {
58
66
  entityRef?: string | undefined;
59
67
  entityRefs?: string[] | undefined;
60
68
  optional?: boolean | undefined;
69
+ }, {
70
+ entity?: any;
71
+ entities?: any[] | undefined;
61
72
  }>;
62
73
 
63
74
  /** @public */
@@ -115,7 +126,21 @@ declare const createBuiltinActions: (options: CreateBuiltInActionsOptions) => Te
115
126
  declare function createDebugLogAction(): _backstage_plugin_scaffolder_node.TemplateAction<{
116
127
  message?: string | undefined;
117
128
  listWorkspace?: boolean | undefined;
118
- }>;
129
+ }, _backstage_types.JsonObject>;
130
+
131
+ /**
132
+ * Waits for a certain period of time.
133
+ *
134
+ * @remarks
135
+ *
136
+ * This task is useful to give some waiting time for manual intervention.
137
+ * Has to be used in a combination with other actions.
138
+ *
139
+ * @public
140
+ */
141
+ declare function createWaitAction(options?: {
142
+ maxWaitTime?: Duration | HumanDuration;
143
+ }): _backstage_plugin_scaffolder_node.TemplateAction<HumanDuration, _backstage_types.JsonObject>;
119
144
 
120
145
  /**
121
146
  * Downloads content and places it in the workspace, or optionally
@@ -128,7 +153,20 @@ declare function createFetchPlainAction(options: {
128
153
  }): _backstage_plugin_scaffolder_node.TemplateAction<{
129
154
  url: string;
130
155
  targetPath?: string | undefined;
131
- }>;
156
+ }, _backstage_types.JsonObject>;
157
+
158
+ /**
159
+ * Downloads content and places it in the workspace, or optionally
160
+ * in a subdirectory specified by the 'targetPath' input option.
161
+ * @public
162
+ */
163
+ declare function createFetchPlainFileAction(options: {
164
+ reader: UrlReader;
165
+ integrations: ScmIntegrations;
166
+ }): _backstage_plugin_scaffolder_node.TemplateAction<{
167
+ url: string;
168
+ targetPath: string;
169
+ }, _backstage_types.JsonObject>;
132
170
 
133
171
  /**
134
172
  * Downloads a skeleton, templates variables into file and directory names and content.
@@ -154,7 +192,7 @@ declare function createFetchTemplateAction(options: {
154
192
  copyWithoutTemplating?: string[] | undefined;
155
193
  cookiecutterCompat?: boolean | undefined;
156
194
  replace?: boolean | undefined;
157
- }>;
195
+ }, _backstage_types.JsonObject>;
158
196
 
159
197
  /**
160
198
  * A helper function that reads the contents of a directory from the given URL.
@@ -176,7 +214,7 @@ declare function fetchContents(options: {
176
214
  */
177
215
  declare const createFilesystemDeleteAction: () => _backstage_plugin_scaffolder_node.TemplateAction<{
178
216
  files: string[];
179
- }>;
217
+ }, _backstage_types.JsonObject>;
180
218
 
181
219
  /**
182
220
  * Creates a new action that allows renames of files and directories in the workspace.
@@ -188,7 +226,7 @@ declare const createFilesystemRenameAction: () => _backstage_plugin_scaffolder_n
188
226
  to: string;
189
227
  overwrite?: boolean;
190
228
  }>;
191
- }>;
229
+ }, _backstage_types.JsonObject>;
192
230
 
193
231
  /**
194
232
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -207,7 +245,7 @@ declare function createPublishAzureAction(options: {
207
245
  gitCommitMessage?: string | undefined;
208
246
  gitAuthorName?: string | undefined;
209
247
  gitAuthorEmail?: string | undefined;
210
- }>;
248
+ }, _backstage_types.JsonObject>;
211
249
 
212
250
  /**
213
251
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -229,7 +267,7 @@ declare function createPublishBitbucketAction(options: {
229
267
  gitCommitMessage?: string | undefined;
230
268
  gitAuthorName?: string | undefined;
231
269
  gitAuthorEmail?: string | undefined;
232
- }>;
270
+ }, _backstage_types.JsonObject>;
233
271
 
234
272
  /**
235
273
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -246,7 +284,7 @@ declare function createPublishBitbucketCloudAction(options: {
246
284
  repoVisibility?: "private" | "public" | undefined;
247
285
  sourcePath?: string | undefined;
248
286
  token?: string | undefined;
249
- }>;
287
+ }, _backstage_types.JsonObject>;
250
288
 
251
289
  /**
252
290
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -267,7 +305,7 @@ declare function createPublishBitbucketServerAction(options: {
267
305
  gitCommitMessage?: string | undefined;
268
306
  gitAuthorName?: string | undefined;
269
307
  gitAuthorEmail?: string | undefined;
270
- }>;
308
+ }, _backstage_types.JsonObject>;
271
309
 
272
310
  /**
273
311
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -285,7 +323,7 @@ declare function createPublishGerritAction(options: {
285
323
  gitAuthorName?: string | undefined;
286
324
  gitAuthorEmail?: string | undefined;
287
325
  sourcePath?: string | undefined;
288
- }>;
326
+ }, _backstage_types.JsonObject>;
289
327
 
290
328
  /**
291
329
  * Creates a new action that creates a Gerrit review
@@ -301,7 +339,7 @@ declare function createPublishGerritReviewAction(options: {
301
339
  gitCommitMessage?: string | undefined;
302
340
  gitAuthorName?: string | undefined;
303
341
  gitAuthorEmail?: string | undefined;
304
- }>;
342
+ }, _backstage_types.JsonObject>;
305
343
 
306
344
  /**
307
345
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -366,7 +404,7 @@ declare function createPublishGithubAction(options: {
366
404
  token?: string | undefined;
367
405
  topics?: string[] | undefined;
368
406
  requiredCommitSigning?: boolean | undefined;
369
- }>;
407
+ }, _backstage_types.JsonObject>;
370
408
 
371
409
  /** @public */
372
410
  declare type OctokitWithPullRequestPluginClient = Octokit & {
@@ -422,7 +460,7 @@ declare const createPublishGithubPullRequestAction: (options: CreateGithubPullRe
422
460
  token?: string | undefined;
423
461
  reviewers?: string[] | undefined;
424
462
  teamReviewers?: string[] | undefined;
425
- }>;
463
+ }, _backstage_types.JsonObject>;
426
464
 
427
465
  /**
428
466
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -444,7 +482,7 @@ declare function createPublishGitlabAction(options: {
444
482
  gitAuthorEmail?: string | undefined;
445
483
  setUserAsOwner?: boolean | undefined;
446
484
  topics?: string[] | undefined;
447
- }>;
485
+ }, _backstage_types.JsonObject>;
448
486
 
449
487
  /**
450
488
  * Create a new action that creates a gitlab merge request.
@@ -466,7 +504,7 @@ declare const createPublishGitlabMergeRequestAction: (options: {
466
504
  projectid?: string | undefined;
467
505
  removeSourceBranch?: boolean | undefined;
468
506
  assignee?: string | undefined;
469
- }>;
507
+ }, _backstage_types.JsonObject>;
470
508
 
471
509
  /**
472
510
  * Creates a new action that dispatches a GitHub Action workflow for a given branch or tag.
@@ -483,7 +521,7 @@ declare function createGithubActionsDispatchAction(options: {
483
521
  [key: string]: string;
484
522
  } | undefined;
485
523
  token?: string | undefined;
486
- }>;
524
+ }, _backstage_types.JsonObject>;
487
525
 
488
526
  /**
489
527
  * Adds labels to a pull request or issue on GitHub
@@ -497,7 +535,7 @@ declare function createGithubIssuesLabelAction(options: {
497
535
  number: number;
498
536
  labels: string[];
499
537
  token?: string | undefined;
500
- }>;
538
+ }, _backstage_types.JsonObject>;
501
539
 
502
540
  /**
503
541
  * Creates a new action that initializes a git repository
@@ -554,7 +592,7 @@ declare function createGithubRepoCreateAction(options: {
554
592
  token?: string | undefined;
555
593
  topics?: string[] | undefined;
556
594
  requireCommitSigning?: boolean | undefined;
557
- }>;
595
+ }, _backstage_types.JsonObject>;
558
596
 
559
597
  /**
560
598
  * Creates a new action that initializes a git repository of the content in the workspace
@@ -594,7 +632,7 @@ declare function createGithubRepoPushAction(options: {
594
632
  sourcePath?: string | undefined;
595
633
  token?: string | undefined;
596
634
  requiredCommitSigning?: boolean | undefined;
597
- }>;
635
+ }, _backstage_types.JsonObject>;
598
636
 
599
637
  /**
600
638
  * Creates new action that creates a webhook for a repository on GitHub.
@@ -613,7 +651,7 @@ declare function createGithubWebhookAction(options: {
613
651
  contentType?: "form" | "json" | undefined;
614
652
  insecureSsl?: boolean | undefined;
615
653
  token?: string | undefined;
616
- }>;
654
+ }, _backstage_types.JsonObject>;
617
655
 
618
656
  /** @public */
619
657
  declare type RunCommandOptions = {
@@ -649,7 +687,7 @@ declare class TemplateActionRegistry {
649
687
  *
650
688
  * @public
651
689
  */
652
- declare type TaskStatus = 'open' | 'processing' | 'failed' | 'cancelled' | 'completed';
690
+ declare type TaskStatus = 'cancelled' | 'completed' | 'failed' | 'open' | 'processing';
653
691
  /**
654
692
  * The state of a completed task.
655
693
  *
@@ -675,7 +713,7 @@ declare type SerializedTask = {
675
713
  *
676
714
  * @public
677
715
  */
678
- declare type TaskEventType = 'completion' | 'log';
716
+ declare type TaskEventType = 'completion' | 'log' | 'cancelled';
679
717
  /**
680
718
  * SerializedTaskEvent
681
719
  *
@@ -713,13 +751,14 @@ declare type TaskBrokerDispatchOptions = {
713
751
  * @public
714
752
  */
715
753
  interface TaskContext {
754
+ cancelSignal: AbortSignal;
716
755
  spec: TaskSpec;
717
756
  secrets?: TaskSecrets$1;
718
757
  createdBy?: string;
719
758
  done: boolean;
720
759
  isDryRun?: boolean;
721
- emitLog(message: string, logMetadata?: JsonObject): Promise<void>;
722
760
  complete(result: TaskCompletionState, metadata?: JsonObject): Promise<void>;
761
+ emitLog(message: string, logMetadata?: JsonObject): Promise<void>;
723
762
  getWorkspaceName(): Promise<string>;
724
763
  }
725
764
  /**
@@ -728,6 +767,7 @@ interface TaskContext {
728
767
  * @public
729
768
  */
730
769
  interface TaskBroker {
770
+ cancel?(taskId: string): Promise<void>;
731
771
  claim(): Promise<TaskContext>;
732
772
  dispatch(options: TaskBrokerDispatchOptions): Promise<TaskBrokerDispatchResult>;
733
773
  vacuumTasks(options: {
@@ -794,6 +834,7 @@ declare type TaskStoreCreateTaskResult = {
794
834
  * @public
795
835
  */
796
836
  interface TaskStore {
837
+ cancelTask?(options: TaskStoreEmitOptions): Promise<void>;
797
838
  createTask(options: TaskStoreCreateTaskOptions): Promise<TaskStoreCreateTaskResult>;
798
839
  getTask(taskId: string): Promise<SerializedTask>;
799
840
  claimTask(): Promise<SerializedTask | undefined>;
@@ -869,6 +910,9 @@ declare class DatabaseTaskStore implements TaskStore {
869
910
  events: SerializedTaskEvent[];
870
911
  }>;
871
912
  shutdownTask(options: TaskStoreShutDownTaskOptions): Promise<void>;
913
+ cancelTask(options: TaskStoreEmitOptions<{
914
+ message: string;
915
+ } & JsonObject>): Promise<void>;
872
916
  }
873
917
 
874
918
  /**
@@ -879,12 +923,14 @@ declare class DatabaseTaskStore implements TaskStore {
879
923
  declare class TaskManager implements TaskContext {
880
924
  private readonly task;
881
925
  private readonly storage;
926
+ private readonly signal;
882
927
  private readonly logger;
883
928
  private isDone;
884
929
  private heartbeatTimeoutId?;
885
- static create(task: CurrentClaimedTask, storage: TaskStore, logger: Logger): TaskManager;
930
+ static create(task: CurrentClaimedTask, storage: TaskStore, abortSignal: AbortSignal, logger: Logger): TaskManager;
886
931
  private constructor();
887
932
  get spec(): _backstage_plugin_scaffolder_common.TaskSpecV1beta3;
933
+ get cancelSignal(): AbortSignal;
888
934
  get secrets(): TaskSecrets$1 | undefined;
889
935
  get createdBy(): string | undefined;
890
936
  getWorkspaceName(): Promise<string>;
@@ -959,6 +1005,11 @@ declare class TaskWorker {
959
1005
  runOneTask(task: TaskContext): Promise<void>;
960
1006
  }
961
1007
 
1008
+ /**
1009
+ *
1010
+ * @public
1011
+ */
1012
+ declare type TemplatePermissionRuleInput<TParams extends PermissionRuleParams = PermissionRuleParams> = PermissionRule<TemplateEntityStepV1beta3 | TemplateParametersV1beta3, {}, typeof RESOURCE_TYPE_SCAFFOLDER_TEMPLATE, TParams>;
962
1013
  /**
963
1014
  * RouterOptions
964
1015
  *
@@ -985,6 +1036,8 @@ interface RouterOptions {
985
1036
  taskBroker?: TaskBroker;
986
1037
  additionalTemplateFilters?: Record<string, TemplateFilter>;
987
1038
  additionalTemplateGlobals?: Record<string, TemplateGlobal>;
1039
+ permissionApi?: PermissionEvaluator;
1040
+ permissionRules?: TemplatePermissionRuleInput[];
988
1041
  identity?: IdentityApi;
989
1042
  }
990
1043
  /**
@@ -1010,7 +1063,7 @@ declare type ActionContext<TInput extends JsonObject> = ActionContext$1<TInput>;
1010
1063
  * @public
1011
1064
  * @deprecated Use `createTemplateAction` from `@backstage/plugin-scaffolder-node` instead
1012
1065
  */
1013
- declare const createTemplateAction: <TParams, TInputSchema extends zod.ZodType<any, zod.ZodTypeDef, any> | jsonschema.Schema = {}, TOutputSchema extends zod.ZodType<any, zod.ZodTypeDef, any> | jsonschema.Schema = {}, TActionInput = TInputSchema extends zod.ZodType<any, any, infer IReturn> ? IReturn : TParams>(action: _backstage_plugin_scaffolder_node.TemplateActionOptions<TActionInput, TInputSchema, TOutputSchema>) => TemplateAction$1<TActionInput>;
1066
+ declare const createTemplateAction: <TInputParams extends JsonObject = JsonObject, TOutputParams extends JsonObject = JsonObject, TInputSchema extends zod.ZodType<any, zod.ZodTypeDef, any> | jsonschema.Schema = {}, TOutputSchema extends zod.ZodType<any, zod.ZodTypeDef, any> | jsonschema.Schema = {}, TActionInput = TInputSchema extends zod.ZodType<any, any, infer IReturn> ? IReturn : TInputParams, TActionOutput = TOutputSchema extends zod.ZodType<any, any, infer IReturn_1> ? IReturn_1 : TOutputParams>(action: _backstage_plugin_scaffolder_node.TemplateActionOptions<TActionInput, TActionOutput, TInputSchema, TOutputSchema>) => TemplateAction$1<TActionInput, TActionOutput>;
1014
1067
  /**
1015
1068
  * @public
1016
1069
  * @deprecated Use `TaskSecrets` from `@backstage/plugin-scaffolder-node` instead
@@ -1022,4 +1075,4 @@ declare type TaskSecrets = TaskSecrets$1;
1022
1075
  */
1023
1076
  declare type TemplateAction<TInput extends JsonObject> = TemplateAction$1<TInput>;
1024
1077
 
1025
- export { ActionContext, CreateBuiltInActionsOptions, CreateGithubPullRequestActionOptions, CreateGithubPullRequestClientFactoryInput, CreateWorkerOptions, CurrentClaimedTask, DatabaseTaskStore, DatabaseTaskStoreOptions, OctokitWithPullRequestPluginClient, RouterOptions, RunCommandOptions, ScaffolderEntitiesProcessor, SerializedTask, SerializedTaskEvent, TaskBroker, TaskBrokerDispatchOptions, TaskBrokerDispatchResult, TaskCompletionState, TaskContext, TaskEventType, TaskManager, TaskSecrets, TaskStatus, TaskStore, TaskStoreCreateTaskOptions, TaskStoreCreateTaskResult, TaskStoreEmitOptions, TaskStoreListEventsOptions, TaskStoreShutDownTaskOptions, TaskWorker, TemplateAction, TemplateActionRegistry, TemplateFilter, TemplateGlobal, createBuiltinActions, createCatalogRegisterAction, createCatalogWriteAction, createDebugLogAction, createFetchCatalogEntityAction, createFetchPlainAction, createFetchTemplateAction, createFilesystemDeleteAction, createFilesystemRenameAction, createGithubActionsDispatchAction, createGithubIssuesLabelAction, createGithubRepoCreateAction, createGithubRepoPushAction, createGithubWebhookAction, createPublishAzureAction, createPublishBitbucketAction, createPublishBitbucketCloudAction, createPublishBitbucketServerAction, createPublishGerritAction, createPublishGerritReviewAction, createPublishGithubAction, createPublishGithubPullRequestAction, createPublishGitlabAction, createPublishGitlabMergeRequestAction, createRouter, createTemplateAction, executeShellCommand, fetchContents };
1078
+ export { ActionContext, CreateBuiltInActionsOptions, CreateGithubPullRequestActionOptions, CreateGithubPullRequestClientFactoryInput, CreateWorkerOptions, CurrentClaimedTask, DatabaseTaskStore, DatabaseTaskStoreOptions, OctokitWithPullRequestPluginClient, RouterOptions, RunCommandOptions, ScaffolderEntitiesProcessor, SerializedTask, SerializedTaskEvent, TaskBroker, TaskBrokerDispatchOptions, TaskBrokerDispatchResult, TaskCompletionState, TaskContext, TaskEventType, TaskManager, TaskSecrets, TaskStatus, TaskStore, TaskStoreCreateTaskOptions, TaskStoreCreateTaskResult, TaskStoreEmitOptions, TaskStoreListEventsOptions, TaskStoreShutDownTaskOptions, TaskWorker, TemplateAction, TemplateActionRegistry, TemplateFilter, TemplateGlobal, TemplatePermissionRuleInput, createBuiltinActions, createCatalogRegisterAction, createCatalogWriteAction, createDebugLogAction, createFetchCatalogEntityAction, createFetchPlainAction, createFetchPlainFileAction, createFetchTemplateAction, createFilesystemDeleteAction, createFilesystemRenameAction, createGithubActionsDispatchAction, createGithubIssuesLabelAction, createGithubRepoCreateAction, createGithubRepoPushAction, createGithubWebhookAction, createPublishAzureAction, createPublishBitbucketAction, createPublishBitbucketCloudAction, createPublishBitbucketServerAction, createPublishGerritAction, createPublishGerritReviewAction, createPublishGithubAction, createPublishGithubPullRequestAction, createPublishGitlabAction, createPublishGitlabMergeRequestAction, createRouter, createTemplateAction, createWaitAction, executeShellCommand, fetchContents };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@backstage/plugin-scaffolder-backend",
3
3
  "description": "The Backstage backend plugin that helps you create new things",
4
- "version": "1.12.0",
4
+ "version": "1.13.0-next.1",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "license": "Apache-2.0",
@@ -44,24 +44,28 @@
44
44
  "build:assets": "node scripts/build-nunjucks.js"
45
45
  },
46
46
  "dependencies": {
47
- "@backstage/backend-common": "^0.18.3",
48
- "@backstage/backend-plugin-api": "^0.5.0",
49
- "@backstage/backend-tasks": "^0.5.0",
47
+ "@backstage/backend-common": "^0.18.4-next.1",
48
+ "@backstage/backend-plugin-api": "^0.5.1-next.1",
49
+ "@backstage/backend-tasks": "^0.5.1-next.1",
50
50
  "@backstage/catalog-client": "^1.4.0",
51
51
  "@backstage/catalog-model": "^1.2.1",
52
52
  "@backstage/config": "^1.0.7",
53
53
  "@backstage/errors": "^1.1.5",
54
- "@backstage/integration": "^1.4.3",
55
- "@backstage/plugin-auth-node": "^0.2.12",
56
- "@backstage/plugin-catalog-backend": "^1.8.0",
57
- "@backstage/plugin-catalog-node": "^1.3.4",
58
- "@backstage/plugin-scaffolder-common": "^1.2.6",
59
- "@backstage/plugin-scaffolder-node": "^0.1.1",
54
+ "@backstage/integration": "^1.4.4-next.0",
55
+ "@backstage/plugin-auth-node": "^0.2.13-next.1",
56
+ "@backstage/plugin-catalog-backend": "^1.8.1-next.1",
57
+ "@backstage/plugin-catalog-common": "^1.0.13-next.0",
58
+ "@backstage/plugin-catalog-node": "^1.3.5-next.1",
59
+ "@backstage/plugin-permission-common": "^0.7.5-next.0",
60
+ "@backstage/plugin-permission-node": "^0.7.7-next.1",
61
+ "@backstage/plugin-scaffolder-common": "^1.2.7-next.1",
62
+ "@backstage/plugin-scaffolder-node": "^0.1.2-next.1",
60
63
  "@backstage/types": "^1.0.2",
61
64
  "@gitbeaker/core": "^35.6.0",
62
65
  "@gitbeaker/node": "^35.1.0",
63
66
  "@octokit/webhooks": "^10.0.0",
64
67
  "@types/express": "^4.17.6",
68
+ "@types/luxon": "^3.0.0",
65
69
  "azure-devops-node-api": "^11.0.1",
66
70
  "command-exists": "^1.2.9",
67
71
  "compression": "^1.7.4",
@@ -90,11 +94,11 @@
90
94
  "winston": "^3.2.1",
91
95
  "yaml": "^2.0.0",
92
96
  "zen-observable": "^0.10.0",
93
- "zod": "~3.18.0"
97
+ "zod": "^3.21.4"
94
98
  },
95
99
  "devDependencies": {
96
- "@backstage/backend-test-utils": "^0.1.35",
97
- "@backstage/cli": "^0.22.4",
100
+ "@backstage/backend-test-utils": "^0.1.36-next.1",
101
+ "@backstage/cli": "^0.22.6-next.1",
98
102
  "@types/command-exists": "^1.2.0",
99
103
  "@types/fs-extra": "^9.0.1",
100
104
  "@types/git-url-parse": "^9.0.0",
@@ -107,6 +111,7 @@
107
111
  "mock-fs": "^5.1.0",
108
112
  "msw": "^1.0.0",
109
113
  "supertest": "^6.1.3",
114
+ "wait-for-expect": "^3.0.2",
110
115
  "yaml": "^2.0.0"
111
116
  },
112
117
  "files": [