@pipeline-builder/pipeline-manager 3.4.70 → 3.4.71

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 (84) hide show
  1. package/README.md +32 -2
  2. package/dist/agent/ai.d.ts +55 -0
  3. package/dist/agent/ai.d.ts.map +1 -0
  4. package/dist/agent/ai.js +130 -0
  5. package/dist/agent/executor.d.ts +24 -0
  6. package/dist/agent/executor.d.ts.map +1 -0
  7. package/dist/agent/executor.js +54 -0
  8. package/dist/agent/health.d.ts +22 -0
  9. package/dist/agent/health.d.ts.map +1 -0
  10. package/dist/agent/health.js +55 -0
  11. package/dist/agent/prereqs.d.ts +16 -0
  12. package/dist/agent/prereqs.d.ts.map +1 -0
  13. package/dist/agent/prereqs.js +73 -0
  14. package/dist/agent/targets.d.ts +83 -0
  15. package/dist/agent/targets.d.ts.map +1 -0
  16. package/dist/agent/targets.js +142 -0
  17. package/dist/agent/troubleshoot.d.ts +30 -0
  18. package/dist/agent/troubleshoot.d.ts.map +1 -0
  19. package/dist/agent/troubleshoot.js +87 -0
  20. package/dist/boilerplate.js +8 -13
  21. package/dist/cli.d.ts.map +1 -1
  22. package/dist/cli.js +114 -116
  23. package/dist/commands/audit-stacks.js +22 -24
  24. package/dist/commands/audit-tokens.js +25 -27
  25. package/dist/commands/bootstrap.js +29 -37
  26. package/dist/commands/create-pipeline.js +55 -92
  27. package/dist/commands/deploy.d.ts.map +1 -1
  28. package/dist/commands/deploy.js +58 -62
  29. package/dist/commands/get-pipeline.js +24 -28
  30. package/dist/commands/get-plugin.js +24 -28
  31. package/dist/commands/list-pipelines.js +30 -31
  32. package/dist/commands/list-plugins.js +32 -33
  33. package/dist/commands/login.js +44 -49
  34. package/dist/commands/org-export.js +22 -60
  35. package/dist/commands/provision.d.ts +12 -0
  36. package/dist/commands/provision.d.ts.map +1 -0
  37. package/dist/commands/provision.js +362 -0
  38. package/dist/commands/register.js +29 -30
  39. package/dist/commands/setup-events.d.ts.map +1 -1
  40. package/dist/commands/setup-events.js +42 -77
  41. package/dist/commands/status.js +20 -25
  42. package/dist/commands/store-token.js +44 -82
  43. package/dist/commands/synth.d.ts.map +1 -1
  44. package/dist/commands/synth.js +36 -35
  45. package/dist/commands/upload-plugin.js +59 -96
  46. package/dist/commands/validate-templates.d.ts.map +1 -1
  47. package/dist/commands/validate-templates.js +23 -29
  48. package/dist/commands/version.js +42 -47
  49. package/dist/config/cli.constants.d.ts.map +1 -1
  50. package/dist/config/cli.constants.js +24 -31
  51. package/dist/types/config.js +2 -3
  52. package/dist/types/error.js +3 -7
  53. package/dist/types/index.d.ts +4 -4
  54. package/dist/types/index.d.ts.map +1 -1
  55. package/dist/types/index.js +5 -21
  56. package/dist/types/pipeline.js +2 -3
  57. package/dist/types/plugin.js +2 -3
  58. package/dist/utils/api-client.d.ts +1 -1
  59. package/dist/utils/api-client.d.ts.map +1 -1
  60. package/dist/utils/api-client.js +23 -28
  61. package/dist/utils/audit-log.js +16 -22
  62. package/dist/utils/auth-guard.js +2 -5
  63. package/dist/utils/aws-secrets.js +17 -23
  64. package/dist/utils/banner.js +16 -23
  65. package/dist/utils/cdk-utils.js +14 -24
  66. package/dist/utils/command-utils.d.ts +1 -1
  67. package/dist/utils/command-utils.d.ts.map +1 -1
  68. package/dist/utils/command-utils.js +32 -44
  69. package/dist/utils/config-loader.d.ts +1 -1
  70. package/dist/utils/config-loader.d.ts.map +1 -1
  71. package/dist/utils/config-loader.js +24 -58
  72. package/dist/utils/error-handler.d.ts +1 -1
  73. package/dist/utils/error-handler.d.ts.map +1 -1
  74. package/dist/utils/error-handler.js +16 -24
  75. package/dist/utils/list-command-utils.js +15 -20
  76. package/dist/utils/output-utils.d.ts +1 -1
  77. package/dist/utils/output-utils.d.ts.map +1 -1
  78. package/dist/utils/output-utils.js +35 -55
  79. package/dist/utils/plugin-resolver.d.ts +1 -1
  80. package/dist/utils/plugin-resolver.d.ts.map +1 -1
  81. package/dist/utils/plugin-resolver.js +6 -8
  82. package/dist/utils/rate-limiter.js +11 -19
  83. package/dist/utils/registry.js +16 -22
  84. package/package.json +26 -17
@@ -1,23 +1,17 @@
1
- "use strict";
2
1
  // Copyright 2026 Pipeline Builder Contributors
3
2
  // SPDX-License-Identifier: Apache-2.0
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.buildRegistryPayload = buildRegistryPayload;
6
- exports.writePendingIntent = writePendingIntent;
7
- exports.clearPendingIntent = clearPendingIntent;
8
- exports.readPendingIntents = readPendingIntents;
9
- const fs_1 = require("fs");
10
- const os_1 = require("os");
11
- const path_1 = require("path");
3
+ import { promises as fs } from 'fs';
4
+ import { homedir } from 'os';
5
+ import { join } from 'path';
12
6
  /** Where pending registration intents are persisted between CLI invocations. */
13
- const PENDING_INTENTS_DIR = (0, path_1.join)((0, os_1.homedir)(), '.pipeline-manager', 'pending-registrations');
7
+ const PENDING_INTENTS_DIR = join(homedir(), '.pipeline-manager', 'pending-registrations');
14
8
  /**
15
9
  * Build a RegistryPayload from the platform's pipeline metadata. No AWS calls
16
10
  * and no ARN/account: the events Lambda attributes events via the pipeline's
17
11
  * `PIPELINE_EVENT_ID` tag (= pipelineId), so the registry only needs the stable
18
12
  * pipelineId + display metadata.
19
13
  */
20
- async function buildRegistryPayload(pipeline, regionOverride) {
14
+ export async function buildRegistryPayload(pipeline, regionOverride) {
21
15
  const region = regionOverride
22
16
  || process.env.AWS_REGION
23
17
  || process.env.CDK_DEFAULT_REGION
@@ -43,17 +37,17 @@ async function buildRegistryPayload(pipeline, regionOverride) {
43
37
  * payload plain (not the full pipeline doc, not auth) so a stale file is
44
38
  * safe to leave around indefinitely.
45
39
  */
46
- async function writePendingIntent(payload) {
47
- await fs_1.promises.mkdir(PENDING_INTENTS_DIR, { recursive: true });
48
- const path = (0, path_1.join)(PENDING_INTENTS_DIR, `${payload.pipelineId}.json`);
49
- await fs_1.promises.writeFile(path, JSON.stringify(payload, null, 2), 'utf8');
40
+ export async function writePendingIntent(payload) {
41
+ await fs.mkdir(PENDING_INTENTS_DIR, { recursive: true });
42
+ const path = join(PENDING_INTENTS_DIR, `${payload.pipelineId}.json`);
43
+ await fs.writeFile(path, JSON.stringify(payload, null, 2), 'utf8');
50
44
  return path;
51
45
  }
52
46
  /** Remove a pending intent after a successful drain. */
53
- async function clearPendingIntent(pipelineId) {
54
- const path = (0, path_1.join)(PENDING_INTENTS_DIR, `${pipelineId}.json`);
47
+ export async function clearPendingIntent(pipelineId) {
48
+ const path = join(PENDING_INTENTS_DIR, `${pipelineId}.json`);
55
49
  try {
56
- await fs_1.promises.unlink(path);
50
+ await fs.unlink(path);
57
51
  }
58
52
  catch (err) {
59
53
  // ENOENT is fine — already cleared. Anything else is a real problem.
@@ -62,10 +56,10 @@ async function clearPendingIntent(pipelineId) {
62
56
  }
63
57
  }
64
58
  /** Read all pending intents currently on disk. Empty array if dir doesn't exist. */
65
- async function readPendingIntents() {
59
+ export async function readPendingIntents() {
66
60
  let entries;
67
61
  try {
68
- entries = await fs_1.promises.readdir(PENDING_INTENTS_DIR);
62
+ entries = await fs.readdir(PENDING_INTENTS_DIR);
69
63
  }
70
64
  catch (err) {
71
65
  if (err.code === 'ENOENT')
@@ -77,7 +71,7 @@ async function readPendingIntents() {
77
71
  if (!file.endsWith('.json'))
78
72
  continue;
79
73
  try {
80
- const text = await fs_1.promises.readFile((0, path_1.join)(PENDING_INTENTS_DIR, file), 'utf8');
74
+ const text = await fs.readFile(join(PENDING_INTENTS_DIR, file), 'utf8');
81
75
  intents.push(JSON.parse(text));
82
76
  }
83
77
  catch {
@@ -87,4 +81,4 @@ async function readPendingIntents() {
87
81
  }
88
82
  return intents;
89
83
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7O0FBMkR0QyxvREFzQkM7QUFVRCxnREFLQztBQUdELGdEQVFDO0FBR0QsZ0RBcUJDO0FBaklELDJCQUFvQztBQUNwQywyQkFBNkI7QUFDN0IsK0JBQTRCO0FBOEM1QixnRkFBZ0Y7QUFDaEYsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLFdBQUksRUFBQyxJQUFBLFlBQU8sR0FBRSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDLENBQUM7QUFFMUY7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLFFBQTZCLEVBQzdCLGNBQXVCO0lBRXZCLE1BQU0sTUFBTSxHQUFHLGNBQWM7V0FDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVO1dBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCO1dBQzlCLFdBQVcsQ0FBQztJQUVqQixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWTtXQUNyQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLElBQUksUUFBUSxDQUFDLE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNFLE1BQU0sU0FBUyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFL0UsT0FBTztRQUNMLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTtRQUN2QixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsWUFBWTtRQUNaLE1BQU07UUFDTixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87UUFDekIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1FBQ25DLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsT0FBd0I7SUFDL0QsTUFBTSxhQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBQSxXQUFJLEVBQUMsbUJBQW1CLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxPQUFPLENBQUMsQ0FBQztJQUNyRSxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRSxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCx3REFBd0Q7QUFDakQsS0FBSyxVQUFVLGtCQUFrQixDQUFDLFVBQWtCO0lBQ3pELE1BQU0sSUFBSSxHQUFHLElBQUEsV0FBSSxFQUFDLG1CQUFtQixFQUFFLEdBQUcsVUFBVSxPQUFPLENBQUMsQ0FBQztJQUM3RCxJQUFJLENBQUM7UUFDSCxNQUFNLGFBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixxRUFBcUU7UUFDckUsSUFBSyxHQUE2QixDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsTUFBTSxHQUFHLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUM7QUFFRCxvRkFBb0Y7QUFDN0UsS0FBSyxVQUFVLGtCQUFrQjtJQUN0QyxJQUFJLE9BQWlCLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLE1BQU0sYUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSyxHQUE2QixDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDaEUsTUFBTSxHQUFHLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQXNCLEVBQUUsQ0FBQztJQUN0QyxLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUFFLFNBQVM7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUFDLElBQUEsV0FBSSxFQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQW9CLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asc0VBQXNFO1lBQ3RFLCtDQUErQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBob21lZGlyIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuXG4vKipcbiAqIEhlbHBlcnMgZm9yIHJlZ2lzdGVyaW5nIGEgZGVwbG95ZWQgcGlwZWxpbmUgQVJOIHdpdGggdGhlIHBsYXRmb3JtLlxuICpcbiAqIFRoZSByZWdpc3RyeSB0YWJsZSBtYXBzIGRlcGxveWVkIENvZGVQaXBlbGluZSBBUk5zIGJhY2sgdG8gcGlwZWxpbmUgcmVjb3Jkc1xuICogYW5kIG9yZ3MuIEl0J3MgaG93IHRoZSBkYXNoYm9hcmQncyBcIkRlcGxveWVkIHBpcGVsaW5lc1wiIHBhbmVsIGFuZCB0aGUgZXZlbnRcbiAqIHJlcG9ydGluZyBMYW1iZGEgcmVzb2x2ZSBpbmNvbWluZyBldmVudHMgdG8gYSBwaXBlbGluZSBkZWZpbml0aW9uLlxuICpcbiAqIFR3byBmYWlsdXJlIG1vZGVzIGFyZSBoYW5kbGVkIGhlcmU6XG4gKlxuICogICAxLiBQbGF0Zm9ybSB1bnJlYWNoYWJsZSBhdCBkZXBsb3kgdGltZS4gVGhlIENESyBzdGFjayBsYW5kcyBpbiBBV1MgYnV0IHRoZVxuICogICAgICByZWdpc3RyeSBQT1NUIGZhaWxzLiBXaXRob3V0IHJldHJ5IHRoZSBkZXBsb3kgY29tbWFuZCB3b3VsZCBoYXZlIHRvXG4gKiAgICAgIHJlLXJ1biBjZGstZGVwbG95IChzbG93LCBzb21ldGltZXMgYmxvY2tlZCBieSBzdGFjayBzdGF0ZSkganVzdCB0b1xuICogICAgICByZWNvcmQgdGhlIEFSTi4gSW5zdGVhZCwgd2Ugd3JpdGUgYSBwZW5kaW5nIGludGVudCB0byBhIGxvY2FsIGZpbGU7XG4gKiAgICAgIGBwaXBlbGluZS1tYW5hZ2VyIHJlZ2lzdGVyYCBkcmFpbnMgdGhlbS5cbiAqXG4gKiAgIDIuIFVzZXIgZXhwbGljaXRseSBpbnZva2VzIGBwaXBlbGluZS1tYW5hZ2VyIHJlZ2lzdGVyIC0taWQgPHBpcGVsaW5lSWQ+YFxuICogICAgICBhZnRlciBhIHN1Y2Nlc3NmdWwgZGVwbG95IHRoYXQgZGlkbid0IHJlZ2lzdGVyLiBTYW1lIHBhdGg6IHJlYnVpbGRzXG4gKiAgICAgIHRoZSBBUk4gZnJvbSBTVFMsIFBPU1RzIHRvIHRoZSBwbGF0Zm9ybS5cbiAqXG4gKiBQZW5kaW5nIGludGVudHMgc3RvcmUgT05MWSB0aGUgcmVnaXN0cmF0aW9uIHBheWxvYWQg4oCUIG5ldmVyIHRva2VucyBvciBVUkxzLlxuICogQXV0aCBpcyBzdXBwbGllZCBieSB3aGljaGV2ZXIgY29tbWFuZCBkcmFpbnMgdGhlIGludGVudCAoZGVwbG95IG9yIHJlZ2lzdGVyKSxcbiAqIHNvIGEgc3RhbGUgaW50ZW50IGZpbGUgaXMgbmV2ZXIgYW4gYXV0aGVudGljYXRpb24gcmlzay5cbiAqL1xuXG4vKiogU2hhcGUgb2YgdGhlIGJvZHkgUE9TVGVkIHRvIC9hcGkvcGlwZWxpbmVzL3JlZ2lzdHJ5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RyeVBheWxvYWQge1xuICBwaXBlbGluZUlkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbiAgc3RhY2tOYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBQaXBlbGluZSBmaWVsZHMgbmVlZGVkIHRvIGNvbnN0cnVjdCBhIFJlZ2lzdHJ5UGF5bG9hZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVGb3JSZWdpc3RyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZT86IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbn1cblxuLyoqIFdoZXJlIHBlbmRpbmcgcmVnaXN0cmF0aW9uIGludGVudHMgYXJlIHBlcnNpc3RlZCBiZXR3ZWVuIENMSSBpbnZvY2F0aW9ucy4gKi9cbmNvbnN0IFBFTkRJTkdfSU5URU5UU19ESVIgPSBqb2luKGhvbWVkaXIoKSwgJy5waXBlbGluZS1tYW5hZ2VyJywgJ3BlbmRpbmctcmVnaXN0cmF0aW9ucycpO1xuXG4vKipcbiAqIEJ1aWxkIGEgUmVnaXN0cnlQYXlsb2FkIGZyb20gdGhlIHBsYXRmb3JtJ3MgcGlwZWxpbmUgbWV0YWRhdGEuIE5vIEFXUyBjYWxsc1xuICogYW5kIG5vIEFSTi9hY2NvdW50OiB0aGUgZXZlbnRzIExhbWJkYSBhdHRyaWJ1dGVzIGV2ZW50cyB2aWEgdGhlIHBpcGVsaW5lJ3NcbiAqIGBQSVBFTElORV9FVkVOVF9JRGAgdGFnICg9IHBpcGVsaW5lSWQpLCBzbyB0aGUgcmVnaXN0cnkgb25seSBuZWVkcyB0aGUgc3RhYmxlXG4gKiBwaXBlbGluZUlkICsgZGlzcGxheSBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkUmVnaXN0cnlQYXlsb2FkKFxuICBwaXBlbGluZTogUGlwZWxpbmVGb3JSZWdpc3RyeSxcbiAgcmVnaW9uT3ZlcnJpZGU/OiBzdHJpbmcsXG4pOiBQcm9taXNlPFJlZ2lzdHJ5UGF5bG9hZD4ge1xuICBjb25zdCByZWdpb24gPSByZWdpb25PdmVycmlkZVxuICAgIHx8IHByb2Nlc3MuZW52LkFXU19SRUdJT05cbiAgICB8fCBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT05cbiAgICB8fCAndXMtZWFzdC0xJztcblxuICBjb25zdCBwaXBlbGluZU5hbWUgPSBwaXBlbGluZS5waXBlbGluZU5hbWVcbiAgICB8fCBgJHtwaXBlbGluZS5vcmdhbml6YXRpb259LSR7cGlwZWxpbmUucHJvamVjdH0tcGlwZWxpbmVgLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IHN0YWNrTmFtZSA9IGAke3BpcGVsaW5lLnByb2plY3R9LSR7cGlwZWxpbmUub3JnYW5pemF0aW9ufWAudG9Mb3dlckNhc2UoKTtcblxuICByZXR1cm4ge1xuICAgIHBpcGVsaW5lSWQ6IHBpcGVsaW5lLmlkLFxuICAgIG9yZ0lkOiBwaXBlbGluZS5vcmdJZCxcbiAgICBwaXBlbGluZU5hbWUsXG4gICAgcmVnaW9uLFxuICAgIHByb2plY3Q6IHBpcGVsaW5lLnByb2plY3QsXG4gICAgb3JnYW5pemF0aW9uOiBwaXBlbGluZS5vcmdhbml6YXRpb24sXG4gICAgc3RhY2tOYW1lLFxuICB9O1xufVxuXG4vKipcbiAqIFBlcnNpc3QgYSByZWdpc3RyYXRpb24gaW50ZW50IGZvciBsYXRlciByZXRyeS5cbiAqXG4gKiBJbnRlbnQgZmlsZXMgYXJlIGtleWVkIGJ5IHBpcGVsaW5lSWQgc28gcmUtcnVubmluZyBkZXBsb3kgb24gdGhlIHNhbWVcbiAqIHBpcGVsaW5lIG92ZXJ3cml0ZXMgcmF0aGVyIHRoYW4gYWNjdW11bGF0ZXMuIFdlIGRlbGliZXJhdGVseSBzdG9yZSB0aGVcbiAqIHBheWxvYWQgcGxhaW4gKG5vdCB0aGUgZnVsbCBwaXBlbGluZSBkb2MsIG5vdCBhdXRoKSBzbyBhIHN0YWxlIGZpbGUgaXNcbiAqIHNhZmUgdG8gbGVhdmUgYXJvdW5kIGluZGVmaW5pdGVseS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlUGVuZGluZ0ludGVudChwYXlsb2FkOiBSZWdpc3RyeVBheWxvYWQpOiBQcm9taXNlPHN0cmluZz4ge1xuICBhd2FpdCBmcy5ta2RpcihQRU5ESU5HX0lOVEVOVFNfRElSLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgY29uc3QgcGF0aCA9IGpvaW4oUEVORElOR19JTlRFTlRTX0RJUiwgYCR7cGF5bG9hZC5waXBlbGluZUlkfS5qc29uYCk7XG4gIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLCBKU09OLnN0cmluZ2lmeShwYXlsb2FkLCBudWxsLCAyKSwgJ3V0ZjgnKTtcbiAgcmV0dXJuIHBhdGg7XG59XG5cbi8qKiBSZW1vdmUgYSBwZW5kaW5nIGludGVudCBhZnRlciBhIHN1Y2Nlc3NmdWwgZHJhaW4uICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2xlYXJQZW5kaW5nSW50ZW50KHBpcGVsaW5lSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwYXRoID0gam9pbihQRU5ESU5HX0lOVEVOVFNfRElSLCBgJHtwaXBlbGluZUlkfS5qc29uYCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMudW5saW5rKHBhdGgpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBFTk9FTlQgaXMgZmluZSDigJQgYWxyZWFkeSBjbGVhcmVkLiBBbnl0aGluZyBlbHNlIGlzIGEgcmVhbCBwcm9ibGVtLlxuICAgIGlmICgoZXJyIGFzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbikuY29kZSAhPT0gJ0VOT0VOVCcpIHRocm93IGVycjtcbiAgfVxufVxuXG4vKiogUmVhZCBhbGwgcGVuZGluZyBpbnRlbnRzIGN1cnJlbnRseSBvbiBkaXNrLiBFbXB0eSBhcnJheSBpZiBkaXIgZG9lc24ndCBleGlzdC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUGVuZGluZ0ludGVudHMoKTogUHJvbWlzZTxSZWdpc3RyeVBheWxvYWRbXT4ge1xuICBsZXQgZW50cmllczogc3RyaW5nW107XG4gIHRyeSB7XG4gICAgZW50cmllcyA9IGF3YWl0IGZzLnJlYWRkaXIoUEVORElOR19JTlRFTlRTX0RJUik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICgoZXJyIGFzIE5vZGVKUy5FcnJub0V4Y2VwdGlvbikuY29kZSA9PT0gJ0VOT0VOVCcpIHJldHVybiBbXTtcbiAgICB0aHJvdyBlcnI7XG4gIH1cblxuICBjb25zdCBpbnRlbnRzOiBSZWdpc3RyeVBheWxvYWRbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGZpbGUgb2YgZW50cmllcykge1xuICAgIGlmICghZmlsZS5lbmRzV2l0aCgnLmpzb24nKSkgY29udGludWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCBmcy5yZWFkRmlsZShqb2luKFBFTkRJTkdfSU5URU5UU19ESVIsIGZpbGUpLCAndXRmOCcpO1xuICAgICAgaW50ZW50cy5wdXNoKEpTT04ucGFyc2UodGV4dCkgYXMgUmVnaXN0cnlQYXlsb2FkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIFNraXAgdW5yZWFkYWJsZSAvIG1hbGZvcm1lZCBmaWxlcyDigJQgdGhleSdsbCBuZWVkIG1hbnVhbCBjbGVhbnVwIGJ1dFxuICAgICAgLy8gc2hvdWxkbid0IGJsb2NrIHZhbGlkIGludGVudHMgZnJvbSBkcmFpbmluZy5cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGludGVudHM7XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUE4QzVCLGdGQUFnRjtBQUNoRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0FBRTFGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsUUFBNkIsRUFDN0IsY0FBdUI7SUFFdkIsTUFBTSxNQUFNLEdBQUcsY0FBYztXQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVU7V0FDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0I7V0FDOUIsV0FBVyxDQUFDO0lBRWpCLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZO1dBQ3JDLEdBQUcsUUFBUSxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0UsTUFBTSxTQUFTLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUUvRSxPQUFPO1FBQ0wsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixZQUFZO1FBQ1osTUFBTTtRQUNOLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztRQUN6QixZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7UUFDbkMsU0FBUztLQUNWLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsT0FBd0I7SUFDL0QsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsT0FBTyxDQUFDLENBQUM7SUFDckUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsVUFBa0I7SUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsVUFBVSxPQUFPLENBQUMsQ0FBQztJQUM3RCxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixxRUFBcUU7UUFDckUsSUFBSyxHQUE2QixDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsTUFBTSxHQUFHLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsSUFBSSxPQUFpQixDQUFDO0lBQ3RCLElBQUksQ0FBQztRQUNILE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUssR0FBNkIsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hFLE1BQU0sR0FBRyxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFzQixFQUFFLENBQUM7SUFDdEMsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBRSxTQUFTO1FBQ3RDLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBb0IsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxzRUFBc0U7WUFDdEUsK0NBQStDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5cbi8qKlxuICogSGVscGVycyBmb3IgcmVnaXN0ZXJpbmcgYSBkZXBsb3llZCBwaXBlbGluZSBBUk4gd2l0aCB0aGUgcGxhdGZvcm0uXG4gKlxuICogVGhlIHJlZ2lzdHJ5IHRhYmxlIG1hcHMgZGVwbG95ZWQgQ29kZVBpcGVsaW5lIEFSTnMgYmFjayB0byBwaXBlbGluZSByZWNvcmRzXG4gKiBhbmQgb3Jncy4gSXQncyBob3cgdGhlIGRhc2hib2FyZCdzIFwiRGVwbG95ZWQgcGlwZWxpbmVzXCIgcGFuZWwgYW5kIHRoZSBldmVudFxuICogcmVwb3J0aW5nIExhbWJkYSByZXNvbHZlIGluY29taW5nIGV2ZW50cyB0byBhIHBpcGVsaW5lIGRlZmluaXRpb24uXG4gKlxuICogVHdvIGZhaWx1cmUgbW9kZXMgYXJlIGhhbmRsZWQgaGVyZTpcbiAqXG4gKiAgIDEuIFBsYXRmb3JtIHVucmVhY2hhYmxlIGF0IGRlcGxveSB0aW1lLiBUaGUgQ0RLIHN0YWNrIGxhbmRzIGluIEFXUyBidXQgdGhlXG4gKiAgICAgIHJlZ2lzdHJ5IFBPU1QgZmFpbHMuIFdpdGhvdXQgcmV0cnkgdGhlIGRlcGxveSBjb21tYW5kIHdvdWxkIGhhdmUgdG9cbiAqICAgICAgcmUtcnVuIGNkay1kZXBsb3kgKHNsb3csIHNvbWV0aW1lcyBibG9ja2VkIGJ5IHN0YWNrIHN0YXRlKSBqdXN0IHRvXG4gKiAgICAgIHJlY29yZCB0aGUgQVJOLiBJbnN0ZWFkLCB3ZSB3cml0ZSBhIHBlbmRpbmcgaW50ZW50IHRvIGEgbG9jYWwgZmlsZTtcbiAqICAgICAgYHBpcGVsaW5lLW1hbmFnZXIgcmVnaXN0ZXJgIGRyYWlucyB0aGVtLlxuICpcbiAqICAgMi4gVXNlciBleHBsaWNpdGx5IGludm9rZXMgYHBpcGVsaW5lLW1hbmFnZXIgcmVnaXN0ZXIgLS1pZCA8cGlwZWxpbmVJZD5gXG4gKiAgICAgIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgdGhhdCBkaWRuJ3QgcmVnaXN0ZXIuIFNhbWUgcGF0aDogcmVidWlsZHNcbiAqICAgICAgdGhlIEFSTiBmcm9tIFNUUywgUE9TVHMgdG8gdGhlIHBsYXRmb3JtLlxuICpcbiAqIFBlbmRpbmcgaW50ZW50cyBzdG9yZSBPTkxZIHRoZSByZWdpc3RyYXRpb24gcGF5bG9hZCDigJQgbmV2ZXIgdG9rZW5zIG9yIFVSTHMuXG4gKiBBdXRoIGlzIHN1cHBsaWVkIGJ5IHdoaWNoZXZlciBjb21tYW5kIGRyYWlucyB0aGUgaW50ZW50IChkZXBsb3kgb3IgcmVnaXN0ZXIpLFxuICogc28gYSBzdGFsZSBpbnRlbnQgZmlsZSBpcyBuZXZlciBhbiBhdXRoZW50aWNhdGlvbiByaXNrLlxuICovXG5cbi8qKiBTaGFwZSBvZiB0aGUgYm9keSBQT1NUZWQgdG8gL2FwaS9waXBlbGluZXMvcmVnaXN0cnkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJ5UGF5bG9hZCB7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICBzdGFja05hbWU6IHN0cmluZztcbn1cblxuLyoqIFBpcGVsaW5lIGZpZWxkcyBuZWVkZWQgdG8gY29uc3RydWN0IGEgUmVnaXN0cnlQYXlsb2FkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUZvclJlZ2lzdHJ5IHtcbiAgaWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lPzogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xufVxuXG4vKiogV2hlcmUgcGVuZGluZyByZWdpc3RyYXRpb24gaW50ZW50cyBhcmUgcGVyc2lzdGVkIGJldHdlZW4gQ0xJIGludm9jYXRpb25zLiAqL1xuY29uc3QgUEVORElOR19JTlRFTlRTX0RJUiA9IGpvaW4oaG9tZWRpcigpLCAnLnBpcGVsaW5lLW1hbmFnZXInLCAncGVuZGluZy1yZWdpc3RyYXRpb25zJyk7XG5cbi8qKlxuICogQnVpbGQgYSBSZWdpc3RyeVBheWxvYWQgZnJvbSB0aGUgcGxhdGZvcm0ncyBwaXBlbGluZSBtZXRhZGF0YS4gTm8gQVdTIGNhbGxzXG4gKiBhbmQgbm8gQVJOL2FjY291bnQ6IHRoZSBldmVudHMgTGFtYmRhIGF0dHJpYnV0ZXMgZXZlbnRzIHZpYSB0aGUgcGlwZWxpbmUnc1xuICogYFBJUEVMSU5FX0VWRU5UX0lEYCB0YWcgKD0gcGlwZWxpbmVJZCksIHNvIHRoZSByZWdpc3RyeSBvbmx5IG5lZWRzIHRoZSBzdGFibGVcbiAqIHBpcGVsaW5lSWQgKyBkaXNwbGF5IG1ldGFkYXRhLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRSZWdpc3RyeVBheWxvYWQoXG4gIHBpcGVsaW5lOiBQaXBlbGluZUZvclJlZ2lzdHJ5LFxuICByZWdpb25PdmVycmlkZT86IHN0cmluZyxcbik6IFByb21pc2U8UmVnaXN0cnlQYXlsb2FkPiB7XG4gIGNvbnN0IHJlZ2lvbiA9IHJlZ2lvbk92ZXJyaWRlXG4gICAgfHwgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTlxuICAgIHx8IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTlxuICAgIHx8ICd1cy1lYXN0LTEnO1xuXG4gIGNvbnN0IHBpcGVsaW5lTmFtZSA9IHBpcGVsaW5lLnBpcGVsaW5lTmFtZVxuICAgIHx8IGAke3BpcGVsaW5lLm9yZ2FuaXphdGlvbn0tJHtwaXBlbGluZS5wcm9qZWN0fS1waXBlbGluZWAudG9Mb3dlckNhc2UoKTtcbiAgY29uc3Qgc3RhY2tOYW1lID0gYCR7cGlwZWxpbmUucHJvamVjdH0tJHtwaXBlbGluZS5vcmdhbml6YXRpb259YC50b0xvd2VyQ2FzZSgpO1xuXG4gIHJldHVybiB7XG4gICAgcGlwZWxpbmVJZDogcGlwZWxpbmUuaWQsXG4gICAgb3JnSWQ6IHBpcGVsaW5lLm9yZ0lkLFxuICAgIHBpcGVsaW5lTmFtZSxcbiAgICByZWdpb24sXG4gICAgcHJvamVjdDogcGlwZWxpbmUucHJvamVjdCxcbiAgICBvcmdhbml6YXRpb246IHBpcGVsaW5lLm9yZ2FuaXphdGlvbixcbiAgICBzdGFja05hbWUsXG4gIH07XG59XG5cbi8qKlxuICogUGVyc2lzdCBhIHJlZ2lzdHJhdGlvbiBpbnRlbnQgZm9yIGxhdGVyIHJldHJ5LlxuICpcbiAqIEludGVudCBmaWxlcyBhcmUga2V5ZWQgYnkgcGlwZWxpbmVJZCBzbyByZS1ydW5uaW5nIGRlcGxveSBvbiB0aGUgc2FtZVxuICogcGlwZWxpbmUgb3ZlcndyaXRlcyByYXRoZXIgdGhhbiBhY2N1bXVsYXRlcy4gV2UgZGVsaWJlcmF0ZWx5IHN0b3JlIHRoZVxuICogcGF5bG9hZCBwbGFpbiAobm90IHRoZSBmdWxsIHBpcGVsaW5lIGRvYywgbm90IGF1dGgpIHNvIGEgc3RhbGUgZmlsZSBpc1xuICogc2FmZSB0byBsZWF2ZSBhcm91bmQgaW5kZWZpbml0ZWx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQZW5kaW5nSW50ZW50KHBheWxvYWQ6IFJlZ2lzdHJ5UGF5bG9hZCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGF3YWl0IGZzLm1rZGlyKFBFTkRJTkdfSU5URU5UU19ESVIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCBwYXRoID0gam9pbihQRU5ESU5HX0lOVEVOVFNfRElSLCBgJHtwYXlsb2FkLnBpcGVsaW5lSWR9Lmpzb25gKTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGgsIEpTT04uc3RyaW5naWZ5KHBheWxvYWQsIG51bGwsIDIpLCAndXRmOCcpO1xuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqIFJlbW92ZSBhIHBlbmRpbmcgaW50ZW50IGFmdGVyIGEgc3VjY2Vzc2Z1bCBkcmFpbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGVhclBlbmRpbmdJbnRlbnQocGlwZWxpbmVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBhdGggPSBqb2luKFBFTkRJTkdfSU5URU5UU19ESVIsIGAke3BpcGVsaW5lSWR9Lmpzb25gKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy51bmxpbmsocGF0aCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIEVOT0VOVCBpcyBmaW5lIOKAlCBhbHJlYWR5IGNsZWFyZWQuIEFueXRoaW5nIGVsc2UgaXMgYSByZWFsIHByb2JsZW0uXG4gICAgaWYgKChlcnIgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlICE9PSAnRU5PRU5UJykgdGhyb3cgZXJyO1xuICB9XG59XG5cbi8qKiBSZWFkIGFsbCBwZW5kaW5nIGludGVudHMgY3VycmVudGx5IG9uIGRpc2suIEVtcHR5IGFycmF5IGlmIGRpciBkb2Vzbid0IGV4aXN0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQZW5kaW5nSW50ZW50cygpOiBQcm9taXNlPFJlZ2lzdHJ5UGF5bG9hZFtdPiB7XG4gIGxldCBlbnRyaWVzOiBzdHJpbmdbXTtcbiAgdHJ5IHtcbiAgICBlbnRyaWVzID0gYXdhaXQgZnMucmVhZGRpcihQRU5ESU5HX0lOVEVOVFNfRElSKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKChlcnIgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlID09PSAnRU5PRU5UJykgcmV0dXJuIFtdO1xuICAgIHRocm93IGVycjtcbiAgfVxuXG4gIGNvbnN0IGludGVudHM6IFJlZ2lzdHJ5UGF5bG9hZFtdID0gW107XG4gIGZvciAoY29uc3QgZmlsZSBvZiBlbnRyaWVzKSB7XG4gICAgaWYgKCFmaWxlLmVuZHNXaXRoKCcuanNvbicpKSBjb250aW51ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGZzLnJlYWRGaWxlKGpvaW4oUEVORElOR19JTlRFTlRTX0RJUiwgZmlsZSksICd1dGY4Jyk7XG4gICAgICBpbnRlbnRzLnB1c2goSlNPTi5wYXJzZSh0ZXh0KSBhcyBSZWdpc3RyeVBheWxvYWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2tpcCB1bnJlYWRhYmxlIC8gbWFsZm9ybWVkIGZpbGVzIOKAlCB0aGV5J2xsIG5lZWQgbWFudWFsIGNsZWFudXAgYnV0XG4gICAgICAvLyBzaG91bGRuJ3QgYmxvY2sgdmFsaWQgaW50ZW50cyBmcm9tIGRyYWluaW5nLlxuICAgIH1cbiAgfVxuICByZXR1cm4gaW50ZW50cztcbn1cbiJdfQ==
package/package.json CHANGED
@@ -9,9 +9,9 @@
9
9
  "pipeline-manager": "./dist/cli.js"
10
10
  },
11
11
  "devDependencies": {
12
+ "@jest/globals": "30.2.0",
12
13
  "@stylistic/eslint-plugin": "^2",
13
14
  "@types/figlet": "1.7.0",
14
- "@types/jest": "30.0.0",
15
15
  "@types/node": "^24",
16
16
  "@types/progress": "2.0.7",
17
17
  "@typescript-eslint/eslint-plugin": "^8",
@@ -20,27 +20,29 @@
20
20
  "eslint": "^9",
21
21
  "eslint-import-resolver-typescript": "^4.4.4",
22
22
  "eslint-plugin-import": "^2.32.0",
23
- "jest": "30.0.0",
23
+ "jest": "30.4.2",
24
24
  "jest-junit": "^17",
25
25
  "ts-jest": "^29",
26
- "typescript": "5.9.3"
26
+ "typescript": "6.0.3"
27
27
  },
28
28
  "dependencies": {
29
- "@aws-sdk/client-cloudformation": "3.821.0",
30
- "@aws-sdk/client-lambda": "3.821.0",
31
- "@aws-sdk/client-secrets-manager": "3.821.0",
32
- "@aws-sdk/client-sts": "3.821.0",
33
- "aws-cdk-lib": "2.257.0",
34
- "axios": "1.13.5",
35
- "commander": "14.0.3",
36
- "figlet": "1.10.0",
29
+ "@aws-sdk/client-cloudformation": "3.1064.0",
30
+ "@aws-sdk/client-lambda": "3.1064.0",
31
+ "@aws-sdk/client-secrets-manager": "3.1064.0",
32
+ "@aws-sdk/client-sts": "3.1064.0",
33
+ "aws-cdk-lib": "2.258.1",
34
+ "axios": "1.17.0",
35
+ "commander": "15.0.0",
36
+ "figlet": "1.11.0",
37
37
  "form-data": "4.0.5",
38
- "ora": "9.3.0",
38
+ "ora": "9.4.0",
39
39
  "picocolors": "1.1.1",
40
40
  "progress": "2.0.3",
41
- "typescript": "5.9.3",
42
- "yaml": "2.8.2",
43
- "@pipeline-builder/pipeline-core": "3.4.69"
41
+ "typescript": "6.0.3",
42
+ "yaml": "2.9.0",
43
+ "zod": "4.4.3",
44
+ "@pipeline-builder/ai-core": "3.4.64",
45
+ "@pipeline-builder/pipeline-core": "3.4.70"
44
46
  },
45
47
  "keywords": [
46
48
  "aws",
@@ -83,7 +85,7 @@
83
85
  "access": "public",
84
86
  "registry": "https://registry.npmjs.org/"
85
87
  },
86
- "version": "3.4.70",
88
+ "version": "3.4.71",
87
89
  "bugs": {
88
90
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
89
91
  },
@@ -125,6 +127,7 @@
125
127
  "^.+\\.[t]sx?$": [
126
128
  "ts-jest",
127
129
  {
130
+ "useESM": true,
128
131
  "tsconfig": "tsconfig.dev.json",
129
132
  "diagnostics": {
130
133
  "ignoreCodes": [
@@ -134,10 +137,16 @@
134
137
  }
135
138
  ]
136
139
  },
140
+ "extensionsToTreatAsEsm": [
141
+ ".ts",
142
+ ".tsx"
143
+ ],
137
144
  "moduleNameMapper": {
138
- "^uuid$": "<rootDir>/../../jest-uuid-stub.js"
145
+ "^uuid$": "<rootDir>/../../jest-uuid-stub.js",
146
+ "^(\\.{1,2}/.*)\\.js$": "$1"
139
147
  }
140
148
  },
149
+ "type": "module",
141
150
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"pnpm dlx projen\".",
142
151
  "scripts": {
143
152
  "audit": "pnpm dlx projen audit",