@backstage/plugin-scaffolder-backend 1.26.0-next.1 → 1.26.0-next.2

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.
Files changed (105) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/alpha/package.json +1 -1
  3. package/dist/ScaffolderPlugin.cjs.js +168 -0
  4. package/dist/ScaffolderPlugin.cjs.js.map +1 -0
  5. package/dist/alpha.cjs.js +7 -196
  6. package/dist/alpha.cjs.js.map +1 -1
  7. package/dist/deprecated.cjs.js +15 -0
  8. package/dist/deprecated.cjs.js.map +1 -0
  9. package/dist/index.cjs.js +57 -134
  10. package/dist/index.cjs.js.map +1 -1
  11. package/dist/lib/templating/SecureTemplater.cjs.js +169 -0
  12. package/dist/lib/templating/SecureTemplater.cjs.js.map +1 -0
  13. package/dist/lib/templating/filters.cjs.js +26 -0
  14. package/dist/lib/templating/filters.cjs.js.map +1 -0
  15. package/dist/lib/templating/helpers.cjs.js +13 -0
  16. package/dist/lib/templating/helpers.cjs.js.map +1 -0
  17. package/dist/scaffolder/actions/TemplateActionRegistry.cjs.js +30 -0
  18. package/dist/scaffolder/actions/TemplateActionRegistry.cjs.js.map +1 -0
  19. package/dist/scaffolder/actions/builtin/catalog/fetch.cjs.js +93 -0
  20. package/dist/scaffolder/actions/builtin/catalog/fetch.cjs.js.map +1 -0
  21. package/dist/scaffolder/actions/builtin/catalog/fetch.examples.cjs.js +43 -0
  22. package/dist/scaffolder/actions/builtin/catalog/fetch.examples.cjs.js.map +1 -0
  23. package/dist/scaffolder/actions/builtin/catalog/register.cjs.js +142 -0
  24. package/dist/scaffolder/actions/builtin/catalog/register.cjs.js.map +1 -0
  25. package/dist/scaffolder/actions/builtin/catalog/register.examples.cjs.js +28 -0
  26. package/dist/scaffolder/actions/builtin/catalog/register.examples.cjs.js.map +1 -0
  27. package/dist/scaffolder/actions/builtin/catalog/write.cjs.js +74 -0
  28. package/dist/scaffolder/actions/builtin/catalog/write.cjs.js.map +1 -0
  29. package/dist/scaffolder/actions/builtin/catalog/write.examples.cjs.js +56 -0
  30. package/dist/scaffolder/actions/builtin/catalog/write.examples.cjs.js.map +1 -0
  31. package/dist/scaffolder/actions/builtin/createBuiltinActions.cjs.js +156 -0
  32. package/dist/scaffolder/actions/builtin/createBuiltinActions.cjs.js.map +1 -0
  33. package/dist/scaffolder/actions/builtin/debug/log.cjs.js +66 -0
  34. package/dist/scaffolder/actions/builtin/debug/log.cjs.js.map +1 -0
  35. package/dist/scaffolder/actions/builtin/debug/log.examples.cjs.js +58 -0
  36. package/dist/scaffolder/actions/builtin/debug/log.examples.cjs.js.map +1 -0
  37. package/dist/scaffolder/actions/builtin/debug/wait.cjs.js +66 -0
  38. package/dist/scaffolder/actions/builtin/debug/wait.cjs.js.map +1 -0
  39. package/dist/scaffolder/actions/builtin/debug/wait.examples.cjs.js +58 -0
  40. package/dist/scaffolder/actions/builtin/debug/wait.examples.cjs.js.map +1 -0
  41. package/dist/scaffolder/actions/builtin/fetch/plain.cjs.js +56 -0
  42. package/dist/scaffolder/actions/builtin/fetch/plain.cjs.js.map +1 -0
  43. package/dist/scaffolder/actions/builtin/fetch/plain.examples.cjs.js +44 -0
  44. package/dist/scaffolder/actions/builtin/fetch/plain.examples.cjs.js.map +1 -0
  45. package/dist/scaffolder/actions/builtin/fetch/plainFile.cjs.js +56 -0
  46. package/dist/scaffolder/actions/builtin/fetch/plainFile.cjs.js.map +1 -0
  47. package/dist/scaffolder/actions/builtin/fetch/plainFile.examples.cjs.js +29 -0
  48. package/dist/scaffolder/actions/builtin/fetch/plainFile.examples.cjs.js.map +1 -0
  49. package/dist/scaffolder/actions/builtin/fetch/template.cjs.js +241 -0
  50. package/dist/scaffolder/actions/builtin/fetch/template.cjs.js.map +1 -0
  51. package/dist/scaffolder/actions/builtin/fetch/template.examples.cjs.js +35 -0
  52. package/dist/scaffolder/actions/builtin/fetch/template.examples.cjs.js.map +1 -0
  53. package/dist/scaffolder/actions/builtin/fetch/templateFile.cjs.js +119 -0
  54. package/dist/scaffolder/actions/builtin/fetch/templateFile.cjs.js.map +1 -0
  55. package/dist/scaffolder/actions/builtin/fetch/templateFile.examples.cjs.js +34 -0
  56. package/dist/scaffolder/actions/builtin/fetch/templateFile.examples.cjs.js.map +1 -0
  57. package/dist/scaffolder/actions/builtin/filesystem/delete.cjs.js +54 -0
  58. package/dist/scaffolder/actions/builtin/filesystem/delete.cjs.js.map +1 -0
  59. package/dist/scaffolder/actions/builtin/filesystem/delete.examples.cjs.js +44 -0
  60. package/dist/scaffolder/actions/builtin/filesystem/delete.examples.cjs.js.map +1 -0
  61. package/dist/scaffolder/actions/builtin/filesystem/rename.cjs.js +83 -0
  62. package/dist/scaffolder/actions/builtin/filesystem/rename.cjs.js.map +1 -0
  63. package/dist/scaffolder/actions/builtin/filesystem/rename.examples.cjs.js +48 -0
  64. package/dist/scaffolder/actions/builtin/filesystem/rename.examples.cjs.js.map +1 -0
  65. package/dist/scaffolder/actions/deprecated.cjs.js +74 -0
  66. package/dist/scaffolder/actions/deprecated.cjs.js.map +1 -0
  67. package/dist/scaffolder/dryrun/DecoratedActionsRegistry.cjs.js +57 -0
  68. package/dist/scaffolder/dryrun/DecoratedActionsRegistry.cjs.js.map +1 -0
  69. package/dist/scaffolder/dryrun/createDryRunner.cjs.js +97 -0
  70. package/dist/scaffolder/dryrun/createDryRunner.cjs.js.map +1 -0
  71. package/dist/scaffolder/tasks/DatabaseTaskStore.cjs.js +430 -0
  72. package/dist/scaffolder/tasks/DatabaseTaskStore.cjs.js.map +1 -0
  73. package/dist/scaffolder/tasks/DatabaseWorkspaceProvider.cjs.js +22 -0
  74. package/dist/scaffolder/tasks/DatabaseWorkspaceProvider.cjs.js.map +1 -0
  75. package/dist/scaffolder/tasks/NunjucksWorkflowRunner.cjs.js +545 -0
  76. package/dist/scaffolder/tasks/NunjucksWorkflowRunner.cjs.js.map +1 -0
  77. package/dist/scaffolder/tasks/StorageTaskBroker.cjs.js +318 -0
  78. package/dist/scaffolder/tasks/StorageTaskBroker.cjs.js.map +1 -0
  79. package/dist/scaffolder/tasks/TaskWorker.cjs.js +110 -0
  80. package/dist/scaffolder/tasks/TaskWorker.cjs.js.map +1 -0
  81. package/dist/scaffolder/tasks/WorkspaceService.cjs.js +50 -0
  82. package/dist/scaffolder/tasks/WorkspaceService.cjs.js.map +1 -0
  83. package/dist/scaffolder/tasks/dbUtil.cjs.js +20 -0
  84. package/dist/scaffolder/tasks/dbUtil.cjs.js.map +1 -0
  85. package/dist/scaffolder/tasks/helper.cjs.js +46 -0
  86. package/dist/scaffolder/tasks/helper.cjs.js.map +1 -0
  87. package/dist/scaffolder/tasks/logger.cjs.js +156 -0
  88. package/dist/scaffolder/tasks/logger.cjs.js.map +1 -0
  89. package/dist/scaffolder/tasks/taskRecoveryHelper.cjs.js +18 -0
  90. package/dist/scaffolder/tasks/taskRecoveryHelper.cjs.js.map +1 -0
  91. package/dist/service/conditionExports.cjs.js +26 -0
  92. package/dist/service/conditionExports.cjs.js.map +1 -0
  93. package/dist/service/helpers.cjs.js +92 -0
  94. package/dist/service/helpers.cjs.js.map +1 -0
  95. package/dist/service/router.cjs.js +640 -0
  96. package/dist/service/router.cjs.js.map +1 -0
  97. package/dist/service/rules.cjs.js +97 -0
  98. package/dist/service/rules.cjs.js.map +1 -0
  99. package/dist/util/checkPermissions.cjs.js +25 -0
  100. package/dist/util/checkPermissions.cjs.js.map +1 -0
  101. package/dist/util/metrics.cjs.js +24 -0
  102. package/dist/util/metrics.cjs.js.map +1 -0
  103. package/package.json +24 -24
  104. package/dist/cjs/router-BqZK9yax.cjs.js +0 -4101
  105. package/dist/cjs/router-BqZK9yax.cjs.js.map +0 -1
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
4
+ var backendPluginApi = require('@backstage/backend-plugin-api');
5
+ var errors = require('@backstage/errors');
6
+ var fs = require('fs-extra');
7
+ var rename_examples = require('./rename.examples.cjs.js');
8
+
9
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
10
+
11
+ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
12
+
13
+ const createFilesystemRenameAction = () => {
14
+ return pluginScaffolderNode.createTemplateAction({
15
+ id: "fs:rename",
16
+ description: "Renames files and directories within the workspace",
17
+ examples: rename_examples.examples,
18
+ schema: {
19
+ input: {
20
+ required: ["files"],
21
+ type: "object",
22
+ properties: {
23
+ files: {
24
+ title: "Files",
25
+ description: "A list of file and directory names that will be renamed",
26
+ type: "array",
27
+ items: {
28
+ type: "object",
29
+ required: ["from", "to"],
30
+ properties: {
31
+ from: {
32
+ type: "string",
33
+ title: "The source location of the file to be renamed"
34
+ },
35
+ to: {
36
+ type: "string",
37
+ title: "The destination of the new file"
38
+ },
39
+ overwrite: {
40
+ type: "boolean",
41
+ title: "Overwrite existing file or directory, default is false"
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ },
49
+ supportsDryRun: true,
50
+ async handler(ctx) {
51
+ if (!Array.isArray(ctx.input?.files)) {
52
+ throw new errors.InputError("files must be an Array");
53
+ }
54
+ for (const file of ctx.input.files) {
55
+ if (!file.from || !file.to) {
56
+ throw new errors.InputError("each file must have a from and to property");
57
+ }
58
+ const sourceFilepath = backendPluginApi.resolveSafeChildPath(
59
+ ctx.workspacePath,
60
+ file.from
61
+ );
62
+ const destFilepath = backendPluginApi.resolveSafeChildPath(ctx.workspacePath, file.to);
63
+ try {
64
+ await fs__default.default.move(sourceFilepath, destFilepath, {
65
+ overwrite: file.overwrite ?? false
66
+ });
67
+ ctx.logger.info(
68
+ `File ${sourceFilepath} renamed to ${destFilepath} successfully`
69
+ );
70
+ } catch (err) {
71
+ ctx.logger.error(
72
+ `Failed to rename file ${sourceFilepath} to ${destFilepath}:`,
73
+ err
74
+ );
75
+ throw err;
76
+ }
77
+ }
78
+ }
79
+ });
80
+ };
81
+
82
+ exports.createFilesystemRenameAction = createFilesystemRenameAction;
83
+ //# sourceMappingURL=rename.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.cjs.js","sources":["../../../../../src/scaffolder/actions/builtin/filesystem/rename.ts"],"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 */\n\nimport { createTemplateAction } from '@backstage/plugin-scaffolder-node';\nimport { resolveSafeChildPath } from '@backstage/backend-plugin-api';\nimport { InputError } from '@backstage/errors';\nimport fs from 'fs-extra';\nimport { examples } from './rename.examples';\n\n/**\n * Creates a new action that allows renames of files and directories in the workspace.\n * @public\n */\nexport const createFilesystemRenameAction = () => {\n return createTemplateAction<{\n files: Array<{\n from: string;\n to: string;\n overwrite?: boolean;\n }>;\n }>({\n id: 'fs:rename',\n description: 'Renames files and directories within the workspace',\n examples,\n schema: {\n input: {\n required: ['files'],\n type: 'object',\n properties: {\n files: {\n title: 'Files',\n description:\n 'A list of file and directory names that will be renamed',\n type: 'array',\n items: {\n type: 'object',\n required: ['from', 'to'],\n properties: {\n from: {\n type: 'string',\n title: 'The source location of the file to be renamed',\n },\n to: {\n type: 'string',\n title: 'The destination of the new file',\n },\n overwrite: {\n type: 'boolean',\n title:\n 'Overwrite existing file or directory, default is false',\n },\n },\n },\n },\n },\n },\n },\n supportsDryRun: true,\n async handler(ctx) {\n if (!Array.isArray(ctx.input?.files)) {\n throw new InputError('files must be an Array');\n }\n\n for (const file of ctx.input.files) {\n if (!file.from || !file.to) {\n throw new InputError('each file must have a from and to property');\n }\n\n const sourceFilepath = resolveSafeChildPath(\n ctx.workspacePath,\n file.from,\n );\n const destFilepath = resolveSafeChildPath(ctx.workspacePath, file.to);\n\n try {\n await fs.move(sourceFilepath, destFilepath, {\n overwrite: file.overwrite ?? false,\n });\n ctx.logger.info(\n `File ${sourceFilepath} renamed to ${destFilepath} successfully`,\n );\n } catch (err) {\n ctx.logger.error(\n `Failed to rename file ${sourceFilepath} to ${destFilepath}:`,\n err,\n );\n throw err;\n }\n }\n },\n });\n};\n"],"names":["createTemplateAction","examples","InputError","resolveSafeChildPath","fs"],"mappings":";;;;;;;;;;;;AA0BO,MAAM,+BAA+B,MAAM;AAChD,EAAA,OAAOA,yCAMJ,CAAA;AAAA,IACD,EAAI,EAAA,WAAA;AAAA,IACJ,WAAa,EAAA,oDAAA;AAAA,cACbC,wBAAA;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,QAAA,EAAU,CAAC,OAAO,CAAA;AAAA,QAClB,IAAM,EAAA,QAAA;AAAA,QACN,UAAY,EAAA;AAAA,UACV,KAAO,EAAA;AAAA,YACL,KAAO,EAAA,OAAA;AAAA,YACP,WACE,EAAA,yDAAA;AAAA,YACF,IAAM,EAAA,OAAA;AAAA,YACN,KAAO,EAAA;AAAA,cACL,IAAM,EAAA,QAAA;AAAA,cACN,QAAA,EAAU,CAAC,MAAA,EAAQ,IAAI,CAAA;AAAA,cACvB,UAAY,EAAA;AAAA,gBACV,IAAM,EAAA;AAAA,kBACJ,IAAM,EAAA,QAAA;AAAA,kBACN,KAAO,EAAA,+CAAA;AAAA,iBACT;AAAA,gBACA,EAAI,EAAA;AAAA,kBACF,IAAM,EAAA,QAAA;AAAA,kBACN,KAAO,EAAA,iCAAA;AAAA,iBACT;AAAA,gBACA,SAAW,EAAA;AAAA,kBACT,IAAM,EAAA,SAAA;AAAA,kBACN,KACE,EAAA,wDAAA;AAAA,iBACJ;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,IACA,cAAgB,EAAA,IAAA;AAAA,IAChB,MAAM,QAAQ,GAAK,EAAA;AACjB,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA,CAAQ,GAAI,CAAA,KAAA,EAAO,KAAK,CAAG,EAAA;AACpC,QAAM,MAAA,IAAIC,kBAAW,wBAAwB,CAAA,CAAA;AAAA,OAC/C;AAEA,MAAW,KAAA,MAAA,IAAA,IAAQ,GAAI,CAAA,KAAA,CAAM,KAAO,EAAA;AAClC,QAAA,IAAI,CAAC,IAAA,CAAK,IAAQ,IAAA,CAAC,KAAK,EAAI,EAAA;AAC1B,UAAM,MAAA,IAAIA,kBAAW,4CAA4C,CAAA,CAAA;AAAA,SACnE;AAEA,QAAA,MAAM,cAAiB,GAAAC,qCAAA;AAAA,UACrB,GAAI,CAAA,aAAA;AAAA,UACJ,IAAK,CAAA,IAAA;AAAA,SACP,CAAA;AACA,QAAA,MAAM,YAAe,GAAAA,qCAAA,CAAqB,GAAI,CAAA,aAAA,EAAe,KAAK,EAAE,CAAA,CAAA;AAEpE,QAAI,IAAA;AACF,UAAM,MAAAC,mBAAA,CAAG,IAAK,CAAA,cAAA,EAAgB,YAAc,EAAA;AAAA,YAC1C,SAAA,EAAW,KAAK,SAAa,IAAA,KAAA;AAAA,WAC9B,CAAA,CAAA;AACD,UAAA,GAAA,CAAI,MAAO,CAAA,IAAA;AAAA,YACT,CAAA,KAAA,EAAQ,cAAc,CAAA,YAAA,EAAe,YAAY,CAAA,aAAA,CAAA;AAAA,WACnD,CAAA;AAAA,iBACO,GAAK,EAAA;AACZ,UAAA,GAAA,CAAI,MAAO,CAAA,KAAA;AAAA,YACT,CAAA,sBAAA,EAAyB,cAAc,CAAA,IAAA,EAAO,YAAY,CAAA,CAAA,CAAA;AAAA,YAC1D,GAAA;AAAA,WACF,CAAA;AACA,UAAM,MAAA,GAAA,CAAA;AAAA,SACR;AAAA,OACF;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var yaml = require('yaml');
4
+
5
+ function _interopNamespaceCompat(e) {
6
+ if (e && typeof e === 'object' && 'default' in e) return e;
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var yaml__namespace = /*#__PURE__*/_interopNamespaceCompat(yaml);
24
+
25
+ const examples = [
26
+ {
27
+ description: "Rename specified files ",
28
+ example: yaml__namespace.stringify({
29
+ steps: [
30
+ {
31
+ action: "fs:rename",
32
+ id: "renameFiles",
33
+ name: "Rename files",
34
+ input: {
35
+ files: [
36
+ { from: "file1.txt", to: "file1Renamed.txt" },
37
+ { from: "file2.txt", to: "file2Renamed.txt" },
38
+ { from: "file3.txt", to: "file3Renamed.txt", overwrite: true }
39
+ ]
40
+ }
41
+ }
42
+ ]
43
+ })
44
+ }
45
+ ];
46
+
47
+ exports.examples = examples;
48
+ //# sourceMappingURL=rename.examples.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.examples.cjs.js","sources":["../../../../../src/scaffolder/actions/builtin/filesystem/rename.examples.ts"],"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 */\n\nimport { TemplateExample } from '@backstage/plugin-scaffolder-node';\nimport * as yaml from 'yaml';\n\nexport const examples: TemplateExample[] = [\n {\n description: 'Rename specified files ',\n example: yaml.stringify({\n steps: [\n {\n action: 'fs:rename',\n id: 'renameFiles',\n name: 'Rename files',\n input: {\n files: [\n { from: 'file1.txt', to: 'file1Renamed.txt' },\n { from: 'file2.txt', to: 'file2Renamed.txt' },\n { from: 'file3.txt', to: 'file3Renamed.txt', overwrite: true },\n ],\n },\n },\n ],\n }),\n },\n];\n"],"names":["yaml"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,QAA8B,GAAA;AAAA,EACzC;AAAA,IACE,WAAa,EAAA,yBAAA;AAAA,IACb,OAAA,EAASA,gBAAK,SAAU,CAAA;AAAA,MACtB,KAAO,EAAA;AAAA,QACL;AAAA,UACE,MAAQ,EAAA,WAAA;AAAA,UACR,EAAI,EAAA,aAAA;AAAA,UACJ,IAAM,EAAA,cAAA;AAAA,UACN,KAAO,EAAA;AAAA,YACL,KAAO,EAAA;AAAA,cACL,EAAE,IAAA,EAAM,WAAa,EAAA,EAAA,EAAI,kBAAmB,EAAA;AAAA,cAC5C,EAAE,IAAA,EAAM,WAAa,EAAA,EAAA,EAAI,kBAAmB,EAAA;AAAA,cAC5C,EAAE,IAAM,EAAA,WAAA,EAAa,EAAI,EAAA,kBAAA,EAAoB,WAAW,IAAK,EAAA;AAAA,aAC/D;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACD,CAAA;AAAA,GACH;AACF;;;;"}
@@ -0,0 +1,74 @@
1
+ 'use strict';
2
+
3
+ var github = require('@backstage/plugin-scaffolder-backend-module-github');
4
+ var gitlab = require('@backstage/plugin-scaffolder-backend-module-gitlab');
5
+ var azure = require('@backstage/plugin-scaffolder-backend-module-azure');
6
+ var bitbucket = require('@backstage/plugin-scaffolder-backend-module-bitbucket');
7
+ var bitbucketCloud = require('@backstage/plugin-scaffolder-backend-module-bitbucket-cloud');
8
+ var bitbucketServer = require('@backstage/plugin-scaffolder-backend-module-bitbucket-server');
9
+ var gerrit = require('@backstage/plugin-scaffolder-backend-module-gerrit');
10
+
11
+ function _interopNamespaceCompat(e) {
12
+ if (e && typeof e === 'object' && 'default' in e) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var github__namespace = /*#__PURE__*/_interopNamespaceCompat(github);
30
+ var gitlab__namespace = /*#__PURE__*/_interopNamespaceCompat(gitlab);
31
+ var azure__namespace = /*#__PURE__*/_interopNamespaceCompat(azure);
32
+ var bitbucket__namespace = /*#__PURE__*/_interopNamespaceCompat(bitbucket);
33
+ var bitbucketCloud__namespace = /*#__PURE__*/_interopNamespaceCompat(bitbucketCloud);
34
+ var bitbucketServer__namespace = /*#__PURE__*/_interopNamespaceCompat(bitbucketServer);
35
+ var gerrit__namespace = /*#__PURE__*/_interopNamespaceCompat(gerrit);
36
+
37
+ const createGithubActionsDispatchAction = github__namespace.createGithubActionsDispatchAction;
38
+ const createGithubDeployKeyAction = github__namespace.createGithubDeployKeyAction;
39
+ const createGithubEnvironmentAction = github__namespace.createGithubEnvironmentAction;
40
+ const createGithubIssuesLabelAction = github__namespace.createGithubIssuesLabelAction;
41
+ const createGithubRepoCreateAction = github__namespace.createGithubRepoCreateAction;
42
+ const createGithubRepoPushAction = github__namespace.createGithubRepoPushAction;
43
+ const createGithubWebhookAction = github__namespace.createGithubWebhookAction;
44
+ const createPublishGithubAction = github__namespace.createPublishGithubAction;
45
+ const createPublishGithubPullRequestAction = github__namespace.createPublishGithubPullRequestAction;
46
+ const createPublishBitbucketAction = bitbucket__namespace.createPublishBitbucketAction;
47
+ const createPublishBitbucketCloudAction = bitbucketCloud__namespace.createPublishBitbucketCloudAction;
48
+ const createPublishBitbucketServerAction = bitbucketServer__namespace.createPublishBitbucketServerAction;
49
+ const createPublishBitbucketServerPullRequestAction = bitbucketServer__namespace.createPublishBitbucketServerPullRequestAction;
50
+ const createPublishAzureAction = azure__namespace.createPublishAzureAction;
51
+ const createPublishGerritAction = gerrit__namespace.createPublishGerritAction;
52
+ const createPublishGerritReviewAction = gerrit__namespace.createPublishGerritReviewAction;
53
+ const createPublishGitlabAction = gitlab__namespace.createPublishGitlabAction;
54
+ const createPublishGitlabMergeRequestAction = gitlab__namespace.createPublishGitlabMergeRequestAction;
55
+
56
+ exports.createGithubActionsDispatchAction = createGithubActionsDispatchAction;
57
+ exports.createGithubDeployKeyAction = createGithubDeployKeyAction;
58
+ exports.createGithubEnvironmentAction = createGithubEnvironmentAction;
59
+ exports.createGithubIssuesLabelAction = createGithubIssuesLabelAction;
60
+ exports.createGithubRepoCreateAction = createGithubRepoCreateAction;
61
+ exports.createGithubRepoPushAction = createGithubRepoPushAction;
62
+ exports.createGithubWebhookAction = createGithubWebhookAction;
63
+ exports.createPublishAzureAction = createPublishAzureAction;
64
+ exports.createPublishBitbucketAction = createPublishBitbucketAction;
65
+ exports.createPublishBitbucketCloudAction = createPublishBitbucketCloudAction;
66
+ exports.createPublishBitbucketServerAction = createPublishBitbucketServerAction;
67
+ exports.createPublishBitbucketServerPullRequestAction = createPublishBitbucketServerPullRequestAction;
68
+ exports.createPublishGerritAction = createPublishGerritAction;
69
+ exports.createPublishGerritReviewAction = createPublishGerritReviewAction;
70
+ exports.createPublishGithubAction = createPublishGithubAction;
71
+ exports.createPublishGithubPullRequestAction = createPublishGithubPullRequestAction;
72
+ exports.createPublishGitlabAction = createPublishGitlabAction;
73
+ exports.createPublishGitlabMergeRequestAction = createPublishGitlabMergeRequestAction;
74
+ //# sourceMappingURL=deprecated.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecated.cjs.js","sources":["../../../src/scaffolder/actions/deprecated.ts"],"sourcesContent":["/*\n * Copyright 2023 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 * as github from '@backstage/plugin-scaffolder-backend-module-github';\nimport * as gitlab from '@backstage/plugin-scaffolder-backend-module-gitlab';\nimport * as azure from '@backstage/plugin-scaffolder-backend-module-azure';\nimport * as bitbucket from '@backstage/plugin-scaffolder-backend-module-bitbucket';\nimport * as bitbucketCloud from '@backstage/plugin-scaffolder-backend-module-bitbucket-cloud';\nimport * as bitbucketServer from '@backstage/plugin-scaffolder-backend-module-bitbucket-server';\nimport * as gerrit from '@backstage/plugin-scaffolder-backend-module-gerrit';\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createGithubActionsDispatchAction =\n github.createGithubActionsDispatchAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createGithubDeployKeyAction = github.createGithubDeployKeyAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createGithubEnvironmentAction =\n github.createGithubEnvironmentAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createGithubIssuesLabelAction =\n github.createGithubIssuesLabelAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport type CreateGithubPullRequestActionOptions =\n github.CreateGithubPullRequestActionOptions;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createGithubRepoCreateAction = github.createGithubRepoCreateAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createGithubRepoPushAction = github.createGithubRepoPushAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createGithubWebhookAction = github.createGithubWebhookAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createPublishGithubAction = github.createPublishGithubAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-github` instead\n */\nexport const createPublishGithubPullRequestAction =\n github.createPublishGithubPullRequestAction;\n\n/**\n * @public @deprecated use \"createPublishBitbucketCloudAction\" from \\@backstage/plugin-scaffolder-backend-module-bitbucket-cloud or \"createPublishBitbucketServerAction\" from \\@backstage/plugin-scaffolder-backend-module-bitbucket-server instead\n */\nexport const createPublishBitbucketAction =\n bitbucket.createPublishBitbucketAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-bitbucket-cloud` instead\n */\nexport const createPublishBitbucketCloudAction =\n bitbucketCloud.createPublishBitbucketCloudAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-bitbucket-server` instead\n */\nexport const createPublishBitbucketServerAction =\n bitbucketServer.createPublishBitbucketServerAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-bitbucket-server` instead\n */\nexport const createPublishBitbucketServerPullRequestAction =\n bitbucketServer.createPublishBitbucketServerPullRequestAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-azure` instead\n */\nexport const createPublishAzureAction = azure.createPublishAzureAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-gerrit` instead\n */\nexport const createPublishGerritAction = gerrit.createPublishGerritAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-gerrit` instead\n */\nexport const createPublishGerritReviewAction =\n gerrit.createPublishGerritReviewAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-gitlab` instead\n */\nexport const createPublishGitlabAction = gitlab.createPublishGitlabAction;\n\n/**\n * @public\n * @deprecated use import from `@backstage/plugin-scaffolder-backend-module-gitlab` instead\n */\nexport const createPublishGitlabMergeRequestAction =\n gitlab.createPublishGitlabMergeRequestAction;\n"],"names":["github","bitbucket","bitbucketCloud","bitbucketServer","azure","gerrit","gitlab"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BO,MAAM,oCACXA,iBAAO,CAAA,kCAAA;AAMF,MAAM,8BAA8BA,iBAAO,CAAA,4BAAA;AAM3C,MAAM,gCACXA,iBAAO,CAAA,8BAAA;AAMF,MAAM,gCACXA,iBAAO,CAAA,8BAAA;AAaF,MAAM,+BAA+BA,iBAAO,CAAA,6BAAA;AAM5C,MAAM,6BAA6BA,iBAAO,CAAA,2BAAA;AAM1C,MAAM,4BAA4BA,iBAAO,CAAA,0BAAA;AAMzC,MAAM,4BAA4BA,iBAAO,CAAA,0BAAA;AAMzC,MAAM,uCACXA,iBAAO,CAAA,qCAAA;AAKF,MAAM,+BACXC,oBAAU,CAAA,6BAAA;AAML,MAAM,oCACXC,yBAAe,CAAA,kCAAA;AAMV,MAAM,qCACXC,0BAAgB,CAAA,mCAAA;AAMX,MAAM,gDACXA,0BAAgB,CAAA,8CAAA;AAMX,MAAM,2BAA2BC,gBAAM,CAAA,yBAAA;AAMvC,MAAM,4BAA4BC,iBAAO,CAAA,0BAAA;AAMzC,MAAM,kCACXA,iBAAO,CAAA,gCAAA;AAMF,MAAM,4BAA4BC,iBAAO,CAAA,0BAAA;AAMzC,MAAM,wCACXA,iBAAO,CAAA;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ require('@backstage/errors');
4
+ require('@backstage/catalog-model');
5
+ require('@backstage/plugin-scaffolder-node');
6
+ require('../actions/builtin/catalog/register.examples.cjs.js');
7
+ require('fs-extra');
8
+ require('yaml');
9
+ require('@backstage/backend-plugin-api');
10
+ require('zod');
11
+ require('../actions/builtin/catalog/write.examples.cjs.js');
12
+ require('../actions/builtin/catalog/fetch.examples.cjs.js');
13
+ require('@backstage/integration');
14
+ require('path');
15
+ require('../actions/builtin/debug/log.examples.cjs.js');
16
+ require('fs');
17
+ require('luxon');
18
+ require('../actions/builtin/debug/wait.examples.cjs.js');
19
+ require('../actions/builtin/fetch/plain.examples.cjs.js');
20
+ require('../actions/builtin/fetch/plainFile.examples.cjs.js');
21
+ require('globby');
22
+ require('isbinaryfile');
23
+ require('isolated-vm');
24
+ require('lodash/get');
25
+ require('../actions/builtin/fetch/template.examples.cjs.js');
26
+ require('../actions/builtin/fetch/templateFile.examples.cjs.js');
27
+ require('../actions/builtin/filesystem/delete.examples.cjs.js');
28
+ require('../actions/builtin/filesystem/rename.examples.cjs.js');
29
+ require('@backstage/plugin-scaffolder-backend-module-github');
30
+ require('@backstage/plugin-scaffolder-backend-module-azure');
31
+ require('@backstage/plugin-scaffolder-backend-module-bitbucket');
32
+ require('@backstage/plugin-scaffolder-backend-module-bitbucket-cloud');
33
+ require('@backstage/plugin-scaffolder-backend-module-bitbucket-server');
34
+ require('@backstage/plugin-scaffolder-backend-module-gerrit');
35
+ require('@backstage/plugin-scaffolder-backend-module-gitlab');
36
+ require('@backstage/plugin-scaffolder-backend-module-gitea');
37
+ var TemplateActionRegistry = require('../actions/TemplateActionRegistry.cjs.js');
38
+
39
+ class DecoratedActionsRegistry extends TemplateActionRegistry.TemplateActionRegistry {
40
+ constructor(innerRegistry, extraActions) {
41
+ super();
42
+ this.innerRegistry = innerRegistry;
43
+ for (const action of extraActions) {
44
+ this.register(action);
45
+ }
46
+ }
47
+ get(actionId) {
48
+ try {
49
+ return super.get(actionId);
50
+ } catch {
51
+ return this.innerRegistry.get(actionId);
52
+ }
53
+ }
54
+ }
55
+
56
+ exports.DecoratedActionsRegistry = DecoratedActionsRegistry;
57
+ //# sourceMappingURL=DecoratedActionsRegistry.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecoratedActionsRegistry.cjs.js","sources":["../../../src/scaffolder/dryrun/DecoratedActionsRegistry.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\nimport { TemplateAction } from '@backstage/plugin-scaffolder-node';\nimport { TemplateActionRegistry } from '../actions';\n\n/** @internal */\nexport class DecoratedActionsRegistry extends TemplateActionRegistry {\n constructor(\n private readonly innerRegistry: TemplateActionRegistry,\n extraActions: Array<TemplateAction>,\n ) {\n super();\n for (const action of extraActions) {\n this.register(action);\n }\n }\n\n get(actionId: string): TemplateAction {\n try {\n return super.get(actionId);\n } catch {\n return this.innerRegistry.get(actionId);\n }\n }\n}\n"],"names":["TemplateActionRegistry"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,MAAM,iCAAiCA,6CAAuB,CAAA;AAAA,EACnE,WAAA,CACmB,eACjB,YACA,EAAA;AACA,IAAM,KAAA,EAAA,CAAA;AAHW,IAAA,IAAA,CAAA,aAAA,GAAA,aAAA,CAAA;AAIjB,IAAA,KAAA,MAAW,UAAU,YAAc,EAAA;AACjC,MAAA,IAAA,CAAK,SAAS,MAAM,CAAA,CAAA;AAAA,KACtB;AAAA,GACF;AAAA,EAEA,IAAI,QAAkC,EAAA;AACpC,IAAI,IAAA;AACF,MAAO,OAAA,KAAA,CAAM,IAAI,QAAQ,CAAA,CAAA;AAAA,KACnB,CAAA,MAAA;AACN,MAAO,OAAA,IAAA,CAAK,aAAc,CAAA,GAAA,CAAI,QAAQ,CAAA,CAAA;AAAA,KACxC;AAAA,GACF;AACF;;;;"}
@@ -0,0 +1,97 @@
1
+ 'use strict';
2
+
3
+ var uuid = require('uuid');
4
+ var url = require('url');
5
+ var pluginScaffolderNode = require('@backstage/plugin-scaffolder-node');
6
+ var NunjucksWorkflowRunner = require('../tasks/NunjucksWorkflowRunner.cjs.js');
7
+ var DecoratedActionsRegistry = require('./DecoratedActionsRegistry.cjs.js');
8
+ var fs = require('fs-extra');
9
+ var backendPluginApi = require('@backstage/backend-plugin-api');
10
+
11
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
+
13
+ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
14
+
15
+ function createDryRunner(options) {
16
+ return async function dryRun(input) {
17
+ let contentPromise;
18
+ const workflowRunner = new NunjucksWorkflowRunner.NunjucksWorkflowRunner({
19
+ ...options,
20
+ actionRegistry: new DecoratedActionsRegistry.DecoratedActionsRegistry(options.actionRegistry, [
21
+ pluginScaffolderNode.createTemplateAction({
22
+ id: "dry-run:extract",
23
+ supportsDryRun: true,
24
+ async handler(ctx) {
25
+ contentPromise = pluginScaffolderNode.serializeDirectoryContents(ctx.workspacePath);
26
+ await contentPromise.catch(() => {
27
+ });
28
+ }
29
+ })
30
+ ])
31
+ });
32
+ const dryRunId = uuid.v4();
33
+ const log = new Array();
34
+ const contentsPath = backendPluginApi.resolveSafeChildPath(
35
+ options.workingDirectory,
36
+ `dry-run-content-${dryRunId}`
37
+ );
38
+ try {
39
+ await pluginScaffolderNode.deserializeDirectoryContents(contentsPath, input.directoryContents);
40
+ const abortSignal = new AbortController().signal;
41
+ const result = await workflowRunner.execute({
42
+ spec: {
43
+ ...input.spec,
44
+ steps: [
45
+ ...input.spec.steps,
46
+ {
47
+ id: dryRunId,
48
+ name: "dry-run:extract",
49
+ action: "dry-run:extract"
50
+ }
51
+ ],
52
+ templateInfo: {
53
+ entityRef: "template:default/dry-run",
54
+ baseUrl: url.pathToFileURL(
55
+ backendPluginApi.resolveSafeChildPath(contentsPath, "template.yaml")
56
+ ).toString()
57
+ }
58
+ },
59
+ secrets: input.secrets,
60
+ getInitiatorCredentials: () => Promise.resolve(input.credentials),
61
+ // No need to update this at the end of the run, so just hard-code it
62
+ done: false,
63
+ isDryRun: true,
64
+ getWorkspaceName: async () => `dry-run-${dryRunId}`,
65
+ cancelSignal: abortSignal,
66
+ async emitLog(message, logMetadata) {
67
+ if (logMetadata?.stepId === dryRunId) {
68
+ return;
69
+ }
70
+ log.push({
71
+ body: {
72
+ ...logMetadata,
73
+ message
74
+ }
75
+ });
76
+ },
77
+ complete: async () => {
78
+ throw new Error("Not implemented");
79
+ }
80
+ });
81
+ if (!contentPromise) {
82
+ throw new Error("Content extraction step was skipped");
83
+ }
84
+ const directoryContents = await contentPromise;
85
+ return {
86
+ log,
87
+ directoryContents,
88
+ output: result.output
89
+ };
90
+ } finally {
91
+ await fs__default.default.remove(contentsPath);
92
+ }
93
+ };
94
+ }
95
+
96
+ exports.createDryRunner = createDryRunner;
97
+ //# sourceMappingURL=createDryRunner.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDryRunner.cjs.js","sources":["../../../src/scaffolder/dryrun/createDryRunner.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\nimport { ScmIntegrations } from '@backstage/integration';\nimport { TaskSpec } from '@backstage/plugin-scaffolder-common';\nimport { JsonObject } from '@backstage/types';\nimport { v4 as uuid } from 'uuid';\nimport { pathToFileURL } from 'url';\nimport { Logger } from 'winston';\nimport {\n createTemplateAction,\n TaskSecrets,\n TemplateFilter,\n TemplateGlobal,\n deserializeDirectoryContents,\n SerializedFile,\n serializeDirectoryContents,\n} from '@backstage/plugin-scaffolder-node';\nimport { TemplateActionRegistry } from '../actions';\nimport { NunjucksWorkflowRunner } from '../tasks/NunjucksWorkflowRunner';\nimport { DecoratedActionsRegistry } from './DecoratedActionsRegistry';\nimport fs from 'fs-extra';\nimport { PermissionEvaluator } from '@backstage/plugin-permission-common';\nimport {\n BackstageCredentials,\n resolveSafeChildPath,\n} from '@backstage/backend-plugin-api';\nimport type { UserEntity } from '@backstage/catalog-model';\n\ninterface DryRunInput {\n spec: TaskSpec;\n secrets?: TaskSecrets;\n directoryContents: SerializedFile[];\n credentials: BackstageCredentials;\n user?: {\n entity?: UserEntity;\n ref?: string;\n };\n}\n\ninterface DryRunResult {\n log: Array<{ body: JsonObject }>;\n directoryContents: SerializedFile[];\n output: JsonObject;\n}\n\n/** @internal */\nexport type TemplateTesterCreateOptions = {\n logger: Logger;\n integrations: ScmIntegrations;\n actionRegistry: TemplateActionRegistry;\n workingDirectory: string;\n additionalTemplateFilters?: Record<string, TemplateFilter>;\n additionalTemplateGlobals?: Record<string, TemplateGlobal>;\n permissions?: PermissionEvaluator;\n};\n\n/**\n * Executes a dry-run of the provided template.\n *\n * The provided content will be extracted into a temporary directory\n * which is then use as the base for any relative file fetch paths.\n *\n * @internal\n */\nexport function createDryRunner(options: TemplateTesterCreateOptions) {\n return async function dryRun(input: DryRunInput): Promise<DryRunResult> {\n let contentPromise;\n\n const workflowRunner = new NunjucksWorkflowRunner({\n ...options,\n actionRegistry: new DecoratedActionsRegistry(options.actionRegistry, [\n createTemplateAction({\n id: 'dry-run:extract',\n supportsDryRun: true,\n async handler(ctx) {\n contentPromise = serializeDirectoryContents(ctx.workspacePath);\n await contentPromise.catch(() => {});\n },\n }),\n ]),\n });\n\n const dryRunId = uuid();\n const log = new Array<{ body: JsonObject }>();\n const contentsPath = resolveSafeChildPath(\n options.workingDirectory,\n `dry-run-content-${dryRunId}`,\n );\n\n try {\n await deserializeDirectoryContents(contentsPath, input.directoryContents);\n\n const abortSignal = new AbortController().signal;\n\n const result = await workflowRunner.execute({\n spec: {\n ...input.spec,\n steps: [\n ...input.spec.steps,\n {\n id: dryRunId,\n name: 'dry-run:extract',\n action: 'dry-run:extract',\n },\n ],\n templateInfo: {\n entityRef: 'template:default/dry-run',\n baseUrl: pathToFileURL(\n resolveSafeChildPath(contentsPath, 'template.yaml'),\n ).toString(),\n },\n },\n secrets: input.secrets,\n getInitiatorCredentials: () => Promise.resolve(input.credentials),\n // No need to update this at the end of the run, so just hard-code it\n done: false,\n isDryRun: true,\n getWorkspaceName: async () => `dry-run-${dryRunId}`,\n cancelSignal: abortSignal,\n async emitLog(message: string, logMetadata?: JsonObject) {\n if (logMetadata?.stepId === dryRunId) {\n return;\n }\n log.push({\n body: {\n ...logMetadata,\n message,\n },\n });\n },\n complete: async () => {\n throw new Error('Not implemented');\n },\n });\n\n if (!contentPromise) {\n throw new Error('Content extraction step was skipped');\n }\n const directoryContents = await contentPromise;\n\n return {\n log,\n directoryContents,\n output: result.output,\n };\n } finally {\n await fs.remove(contentsPath);\n }\n };\n}\n"],"names":["NunjucksWorkflowRunner","DecoratedActionsRegistry","createTemplateAction","serializeDirectoryContents","uuid","resolveSafeChildPath","deserializeDirectoryContents","pathToFileURL","fs"],"mappings":"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"}