@pipeline-builder/pipeline-manager 3.4.169 → 3.4.170
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/commands/create-pat.d.ts.map +1 -1
- package/dist/commands/create-pat.js +14 -25
- package/dist/commands/entity-get.d.ts +51 -0
- package/dist/commands/entity-get.d.ts.map +1 -0
- package/dist/commands/entity-get.js +68 -0
- package/dist/commands/entity-list.d.ts +39 -0
- package/dist/commands/entity-list.d.ts.map +1 -0
- package/dist/commands/entity-list.js +87 -0
- package/dist/commands/get-pipeline.d.ts.map +1 -1
- package/dist/commands/get-pipeline.js +24 -67
- package/dist/commands/get-plugin.d.ts.map +1 -1
- package/dist/commands/get-plugin.js +25 -68
- package/dist/commands/list-pipelines.d.ts.map +1 -1
- package/dist/commands/list-pipelines.js +56 -127
- package/dist/commands/list-plugins.d.ts.map +1 -1
- package/dist/commands/list-plugins.js +45 -112
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +16 -38
- package/dist/utils/auth-utils.d.ts +68 -0
- package/dist/utils/auth-utils.d.ts.map +1 -0
- package/dist/utils/auth-utils.js +77 -0
- package/package.json +4 -4
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { Command } from 'commander';
|
|
4
|
-
import {
|
|
4
|
+
import { runListEntity } from './entity-list.js';
|
|
5
|
+
import { formatFileSize } from '../config/cli.constants.js';
|
|
5
6
|
import {} from '../types/index.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { buildCommonFilters, displayPaginationInfo, displayListResults } from '../utils/list-command-utils.js';
|
|
9
|
-
import { outputData, extractListResponse, printInfo, printKeyValue, printSection, printWarning } from '../utils/output-utils.js';
|
|
7
|
+
import {} from '../utils/list-command-utils.js';
|
|
8
|
+
import { printWarning } from '../utils/output-utils.js';
|
|
10
9
|
/**
|
|
11
10
|
* Registers the `list-plugins` command with the CLI program.
|
|
12
11
|
*
|
|
@@ -43,118 +42,52 @@ export function listPlugins(program) {
|
|
|
43
42
|
.option('--show-metadata', 'Include full metadata in output (json/yaml only)', false)
|
|
44
43
|
.option('--verify-ssl', 'Enable SSL certificate verification')
|
|
45
44
|
.option('--no-verify-ssl', 'Disable SSL certificate verification')
|
|
46
|
-
.action(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (options.name) {
|
|
56
|
-
filterParams.name = options.name;
|
|
57
|
-
}
|
|
45
|
+
.action((options) => runListEntity(program, options, {
|
|
46
|
+
labelPlural: 'Plugins',
|
|
47
|
+
responseKey: 'plugins',
|
|
48
|
+
listUrl: (config) => config.api.pluginListUrl,
|
|
49
|
+
commandName: 'list-plugins',
|
|
50
|
+
buildFilters: (options, base) => {
|
|
51
|
+
const filters = { ...base };
|
|
52
|
+
if (options.name)
|
|
53
|
+
filters.name = options.name;
|
|
58
54
|
if (options.version) {
|
|
59
55
|
// Validate semver format
|
|
60
56
|
const versionPattern = /^(\^|~)?(\d+)\.(\d+)\.(\d+)(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/;
|
|
61
57
|
if (!versionPattern.test(options.version)) {
|
|
62
58
|
printWarning(`Version "${options.version}" may not be valid semver format`);
|
|
63
59
|
}
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
// Display active filters
|
|
67
|
-
const activeFilters = {};
|
|
68
|
-
if (filterParams.id)
|
|
69
|
-
activeFilters.ID = filterParams.id;
|
|
70
|
-
if (filterParams.isActive !== undefined)
|
|
71
|
-
activeFilters['Is Active'] = filterParams.isActive;
|
|
72
|
-
if (filterParams.name)
|
|
73
|
-
activeFilters.Name = filterParams.name;
|
|
74
|
-
if (filterParams.version)
|
|
75
|
-
activeFilters.Version = filterParams.version;
|
|
76
|
-
if (Object.keys(activeFilters).length > 0) {
|
|
77
|
-
printInfo('Active Filters');
|
|
78
|
-
printKeyValue(activeFilters);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
printInfo('No filters applied - fetching all plugins');
|
|
82
|
-
}
|
|
83
|
-
displayPaginationInfo(filterParams);
|
|
84
|
-
// Security warning for SSL verification disabled
|
|
85
|
-
printSslWarning(options.verifySsl);
|
|
86
|
-
// Create authenticated API client
|
|
87
|
-
const client = createAuthenticatedClient(options);
|
|
88
|
-
const config = client.getConfig();
|
|
89
|
-
// Query plugins
|
|
90
|
-
console.log('');
|
|
91
|
-
printSection('Querying Plugins');
|
|
92
|
-
printInfo('Sending request to API...');
|
|
93
|
-
const requestStart = Date.now();
|
|
94
|
-
const response = await client.get(config.api.pluginListUrl, filterParams);
|
|
95
|
-
const requestDuration = Date.now() - requestStart;
|
|
96
|
-
// Handle response
|
|
97
|
-
const { items: plugins, total, hasMore } = extractListResponse(response, 'plugins');
|
|
98
|
-
console.log('');
|
|
99
|
-
printSection('✓ Query Complete');
|
|
100
|
-
// Display results summary
|
|
101
|
-
displayListResults(plugins, total, hasMore, 'Plugins', requestDuration, filterParams);
|
|
102
|
-
// Display statistics
|
|
103
|
-
if (plugins.length > 0 && options.format === 'table') {
|
|
104
|
-
const activeCount = plugins.filter(p => p.isActive).length;
|
|
105
|
-
const publicCount = plugins.filter(p => p.isPublic === true).length;
|
|
106
|
-
const totalSize = plugins.reduce((sum, p) => sum + (p.fileSize || 0), 0);
|
|
107
|
-
console.log('');
|
|
108
|
-
printInfo('Statistics');
|
|
109
|
-
printKeyValue({
|
|
110
|
-
'Active Plugins': `${activeCount}/${plugins.length}`,
|
|
111
|
-
'Public Plugins': `${publicCount}/${plugins.length}`,
|
|
112
|
-
'Total Size': formatFileSize(totalSize),
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
// Output data in requested format
|
|
116
|
-
console.log('');
|
|
117
|
-
if (options.output) {
|
|
118
|
-
printInfo('Saving to file', {
|
|
119
|
-
path: options.output,
|
|
120
|
-
format: options.format,
|
|
121
|
-
});
|
|
60
|
+
filters.version = options.version;
|
|
122
61
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
'
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
filters: options,
|
|
154
|
-
verifySsl: options.verifySsl,
|
|
155
|
-
},
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
});
|
|
62
|
+
return filters;
|
|
63
|
+
},
|
|
64
|
+
activeFilters: (filters) => {
|
|
65
|
+
const active = {};
|
|
66
|
+
if (filters.id)
|
|
67
|
+
active.ID = filters.id;
|
|
68
|
+
if (filters.isActive !== undefined)
|
|
69
|
+
active['Is Active'] = filters.isActive;
|
|
70
|
+
if (filters.name)
|
|
71
|
+
active.Name = filters.name;
|
|
72
|
+
if (filters.version)
|
|
73
|
+
active.Version = filters.version;
|
|
74
|
+
return active;
|
|
75
|
+
},
|
|
76
|
+
statistics: (plugins) => ({
|
|
77
|
+
'Active Plugins': `${plugins.filter(p => p.isActive).length}/${plugins.length}`,
|
|
78
|
+
'Public Plugins': `${plugins.filter(p => p.isPublic === true).length}/${plugins.length}`,
|
|
79
|
+
'Total Size': formatFileSize(plugins.reduce((sum, p) => sum + (p.fileSize || 0), 0)),
|
|
80
|
+
}),
|
|
81
|
+
rows: (plugins, options) => options.showMetadata ? plugins : plugins.map(p => ({
|
|
82
|
+
'ID': p.id,
|
|
83
|
+
'Name': p.name,
|
|
84
|
+
'Version': p.version,
|
|
85
|
+
'Organization': p.organization,
|
|
86
|
+
'Active': p.isActive ? 'Yes' : 'No',
|
|
87
|
+
'Public': p.isPublic ? 'Yes' : 'No',
|
|
88
|
+
'Size': p.fileSize ? formatFileSize(p.fileSize) : 'N/A',
|
|
89
|
+
'Created At': p.createdAt || 'N/A',
|
|
90
|
+
})),
|
|
91
|
+
}));
|
|
159
92
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2xpc3QtcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQXdDLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUEyQixxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFZakk7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQWdCO0lBQzFDLE9BQU87U0FDSixPQUFPLENBQUMsTUFBTSxDQUFDO1NBQ2YsV0FBVyxDQUFDLDBDQUEwQyxDQUFDO1FBRXhELHdCQUF3QjtTQUN2QixNQUFNLENBQUMsV0FBVyxFQUFFLHdEQUF3RCxDQUFDO1NBQzdFLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUN2RSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsb0NBQW9DLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQztTQUM5RSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNy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QUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNuQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztnQkFDdkQsWUFBWSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksS0FBSzthQUNuQyxDQUFDLENBQUMsQ0FBQztZQUVKLFVBQVUsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2FBQ3JCLENBQUMsQ0FBQztZQUVILHNCQUFzQjtZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLGFBQWEsQ0FBQztnQkFDWixjQUFjLEVBQUUsV0FBVztnQkFDM0IsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7YUFDekQsQ0FBQyxDQUFDO1lBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVsQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUU7b0JBQ1AsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFdBQVc7b0JBQ1gsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztpQkFDN0I7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgZm9ybWF0RHVyYXRpb24sIGZvcm1hdEZpbGVTaXplIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHsgdHlwZSBQbHVnaW5MaXN0UmVzcG9uc2UsIHR5cGUgUGx1Z2luIH0gZnJvbSAnLi4vdHlwZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCBwcmludFNzbFdhcm5pbmcsIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgYnVpbGRDb21tb25GaWx0ZXJzLCB0eXBlIENvbW1vbkZpbHRlclBhcmFtcywgZGlzcGxheVBhZ2luYXRpb25JbmZvLCBkaXNwbGF5TGlzdFJlc3VsdHMgfSBmcm9tICcuLi91dGlscy9saXN0LWNvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgb3V0cHV0RGF0YSwgZXh0cmFjdExpc3RSZXNwb25zZSwgcHJpbnRJbmZvLCBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24sIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbi8qKlxuICogUXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHBsdWdpbiBsaXN0IEFQSSBlbmRwb2ludC5cbiAqIENvbWJpbmVzIGNvbW1vbiBmaWx0ZXJzIChwYWdpbmF0aW9uLCBzb3J0KSB3aXRoIHBsdWdpbi1zcGVjaWZpYyBmaWx0ZXJzLlxuICovXG5pbnRlcmZhY2UgUGx1Z2luRmlsdGVyUGFyYW1zIGV4dGVuZHMgQ29tbW9uRmlsdGVyUGFyYW1zIHtcbiAgLy8gUGx1Z2luLXNwZWNpZmljIGZpbHRlcnNcbiAgbmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGBsaXN0LXBsdWdpbnNgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogUXVlcmllcyBwbHVnaW5zIHdpdGggZmlsdGVycyBmb3IgbmFtZSwgdmVyc2lvbiwgaW1hZ2UgdGFnLFxuICogYWN0aXZlIHN0YXR1cywgcGx1cyBwYWdpbmF0aW9uIGFuZCBzb3J0aW5nLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIHJvb3QgQ29tbWFuZGVyIHByb2dyYW0gaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBjbGkgcGx1Z2luIGxpc3RcbiAqIGNsaSBwbHVnaW4gbGlzdCAtLW5hbWUgYXV0aC1wbHVnaW4gLS1pcy1hY3RpdmUgdHJ1ZVxuICogY2xpIHBsdWdpbiBsaXN0IC0tdmVyc2lvbiBcIl4xLjAuMFwiXG4gKiBjbGkgcGx1Z2luIGxpc3QgLS1saW1pdCA1MCAtLW9mZnNldCAxMDAgLS1zb3J0IFwibmFtZTphc2NcIlxuICogY2xpIHBsdWdpbiBsaXN0IC0tZm9ybWF0IGpzb24gLS1vdXRwdXQgcGx1Z2lucy5qc29uXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3RQbHVnaW5zKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsaXN0JylcbiAgICAuZGVzY3JpcHRpb24oJ1F1ZXJ5IHBsdWdpbnMgd2l0aCBjb21wcmVoZW5zaXZlIGZpbHRlcnMnKVxuXG4gICAgLy8gQ29tbW9uIGZpbHRlciBvcHRpb25zXG4gICAgLm9wdGlvbignLS1pZCA8aWQ+JywgJ0ZpbHRlciBieSBwbHVnaW4gSUQgKGNhbiBzcGVjaWZ5IG11bHRpcGxlIHdpdGggY29tbWFzKScpXG4gICAgLm9wdGlvbignLS1pcy1hY3RpdmUgPGJvb2xlYW4+JywgJ0ZpbHRlciBieSBhY3RpdmUgc3RhdHVzICh0cnVlL2ZhbHNlKScpXG4gICAgLm9wdGlvbignLS1saW1pdCA8bnVtYmVyPicsICdNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzICgxLTEwMDApJywgcGFyc2VJbnQsIDUwKVxuICAgIC5vcHRpb24oJy0tb2Zmc2V0IDxudW1iZXI+JywgJ051bWJlciBvZiByZXN1bHRzIHRvIHNraXAnLCBwYXJzZUludCwgMClcbiAgICAub3B0aW9uKCctLXNvcnQgPHNvcnQ+JywgJ1NvcnQgZm9ybWF0OiBmaWVsZDpkaXJlY3Rpb24gKGUuZy4sIG5hbWU6YXNjLCBjcmVhdGVkQXQ6ZGVzYyknKVxuXG4gICAgLy8gUGx1Z2luLXNwZWNpZmljIGZpbHRlciBvcHRpb25zXG4gICAgLm9wdGlvbignLS1uYW1lIDxuYW1lPicsICdGaWx0ZXIgYnkgZXhhY3QgcGx1Z2luIG5hbWUnKVxuICAgIC5vcHRpb24oJy0tdmVyc2lvbiA8dmVyc2lvbj4nLCAnRmlsdGVyIGJ5IHZlcnNpb24gKHN1cHBvcnRzIHNlbXZlciwgZS5nLiwgXCJeMS4wLjBcIiknKVxuXG4gICAgLy8gT3V0cHV0IG9wdGlvbnNcbiAgICAub3B0aW9uKCctZiwgLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCAoanNvbiwgeWFtbCwgdGFibGUsIGNzdiknLCAndGFibGUnKVxuICAgIC5vcHRpb24oJy1vLCAtLW91dHB1dCA8ZmlsZT4nLCAnU2F2ZSBvdXRwdXQgdG8gZmlsZScpXG4gICAgLm9wdGlvbignLS1zaG93LW1ldGFkYXRhJywgJ0luY2x1ZGUgZnVsbCBtZXRhZGF0YSBpbiBvdXRwdXQgKGpzb24veWFtbCBvbmx5KScsIGZhbHNlKVxuICAgIC5vcHRpb24oJy0tdmVyaWZ5LXNzbCcsICdFbmFibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpXG4gICAgLm9wdGlvbignLS1uby12ZXJpZnktc3NsJywgJ0Rpc2FibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpXG5cbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignTGlzdCBQbHVnaW5zJywgJ1F1ZXJ5IFBsdWdpbnMnKTtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgICAgIHRyeSB7XG5cbiAgICAgICAgLy8gQnVpbGQgZmlsdGVyIHBhcmFtZXRlcnMgKGNvbW1vbiArIHBsdWdpbi1zcGVjaWZpYylcbiAgICAgICAgY29uc3QgZmlsdGVyUGFyYW1zOiBQbHVnaW5GaWx0ZXJQYXJhbXMgPSB7XG4gICAgICAgICAgLi4uYnVpbGRDb21tb25GaWx0ZXJzKG9wdGlvbnMpLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFBsdWdpbi1zcGVjaWZpYyBmaWx0ZXJzXG4gICAgICAgIGlmIChvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgICBmaWx0ZXJQYXJhbXMubmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnZlcnNpb24pIHtcbiAgICAgICAgICAvLyBWYWxpZGF0ZSBzZW12ZXIgZm9ybWF0XG4gICAgICAgICAgY29uc3QgdmVyc2lvblBhdHRlcm4gPSAvXihcXF58fik/KFxcZCspXFwuKFxcZCspXFwuKFxcZCspKC1bYS16QS1aMC05Li1dKyk/KFxcK1thLXpBLVowLTkuLV0rKT8kLztcbiAgICAgICAgICBpZiAoIXZlcnNpb25QYXR0ZXJuLnRlc3Qob3B0aW9ucy52ZXJzaW9uKSkge1xuICAgICAgICAgICAgcHJpbnRXYXJuaW5nKGBWZXJzaW9uIFwiJHtvcHRpb25zLnZlcnNpb259XCIgbWF5IG5vdCBiZSB2YWxpZCBzZW12ZXIgZm9ybWF0YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbHRlclBhcmFtcy52ZXJzaW9uID0gb3B0aW9ucy52ZXJzaW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGlzcGxheSBhY3RpdmUgZmlsdGVyc1xuICAgICAgICBjb25zdCBhY3RpdmVGaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgICAgICBpZiAoZmlsdGVyUGFyYW1zLmlkKSBhY3RpdmVGaWx0ZXJzLklEID0gZmlsdGVyUGFyYW1zLmlkO1xuICAgICAgICBpZiAoZmlsdGVyUGFyYW1zLmlzQWN0aXZlICE9PSB1bmRlZmluZWQpIGFjdGl2ZUZpbHRlcnNbJ0lzIEFjdGl2ZSddID0gZmlsdGVyUGFyYW1zLmlzQWN0aXZlO1xuICAgICAgICBpZiAoZmlsdGVyUGFyYW1zLm5hbWUpIGFjdGl2ZUZpbHRlcnMuTmFtZSA9IGZpbHRlclBhcmFtcy5uYW1lO1xuICAgICAgICBpZiAoZmlsdGVyUGFyYW1zLnZlcnNpb24pIGFjdGl2ZUZpbHRlcnMuVmVyc2lvbiA9IGZpbHRlclBhcmFtcy52ZXJzaW9uO1xuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhhY3RpdmVGaWx0ZXJzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcHJpbnRJbmZvKCdBY3RpdmUgRmlsdGVycycpO1xuICAgICAgICAgIHByaW50S2V5VmFsdWUoYWN0aXZlRmlsdGVycyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJpbnRJbmZvKCdObyBmaWx0ZXJzIGFwcGxpZWQgLSBmZXRjaGluZyBhbGwgcGx1Z2lucycpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlzcGxheVBhZ2luYXRpb25JbmZvKGZpbHRlclBhcmFtcyk7XG5cbiAgICAgICAgLy8gU2VjdXJpdHkgd2FybmluZyBmb3IgU1NMIHZlcmlmaWNhdGlvbiBkaXNhYmxlZFxuICAgICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhdXRoZW50aWNhdGVkIEFQSSBjbGllbnRcbiAgICAgICAgY29uc3QgY2xpZW50ID0gY3JlYXRlQXV0aGVudGljYXRlZENsaWVudChvcHRpb25zKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gY2xpZW50LmdldENvbmZpZygpO1xuXG4gICAgICAgIC8vIFF1ZXJ5IHBsdWdpbnNcbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFNlY3Rpb24oJ1F1ZXJ5aW5nIFBsdWdpbnMnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdTZW5kaW5nIHJlcXVlc3QgdG8gQVBJLi4uJyk7XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdFN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFBsdWdpbkxpc3RSZXNwb25zZT4oXG4gICAgICAgICAgY29uZmlnLmFwaS5wbHVnaW5MaXN0VXJsLFxuICAgICAgICAgIGZpbHRlclBhcmFtcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcmVxdWVzdER1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHJlcXVlc3RTdGFydDtcblxuICAgICAgICAvLyBIYW5kbGUgcmVzcG9uc2VcbiAgICAgICAgY29uc3QgeyBpdGVtczogcGx1Z2lucywgdG90YWwsIGhhc01vcmUgfSA9IGV4dHJhY3RMaXN0UmVzcG9uc2U8UGx1Z2luPihyZXNwb25zZSwgJ3BsdWdpbnMnKTtcblxuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50U2VjdGlvbign4pyTIFF1ZXJ5IENvbXBsZXRlJyk7XG5cbiAgICAgICAgLy8gRGlzcGxheSByZXN1bHRzIHN1bW1hcnlcbiAgICAgICAgZGlzcGxheUxpc3RSZXN1bHRzKHBsdWdpbnMsIHRvdGFsLCBoYXNNb3JlLCAnUGx1Z2lucycsIHJlcXVlc3REdXJhdGlvbiwgZmlsdGVyUGFyYW1zKTtcblxuICAgICAgICAvLyBEaXNwbGF5IHN0YXRpc3RpY3NcbiAgICAgICAgaWYgKHBsdWdpbnMubGVuZ3RoID4gMCAmJiBvcHRpb25zLmZvcm1hdCA9PT0gJ3RhYmxlJykge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZUNvdW50ID0gcGx1Z2lucy5maWx0ZXIocCA9PiBwLmlzQWN0aXZlKS5sZW5ndGg7XG4gICAgICAgICAgY29uc3QgcHVibGljQ291bnQgPSBwbHVnaW5zLmZpbHRlcihwID0+IHAuaXNQdWJsaWMgPT09IHRydWUpLmxlbmd0aDtcbiAgICAgICAgICBjb25zdCB0b3RhbFNpemUgPSBwbHVnaW5zLnJlZHVjZSgoc3VtLCBwKSA9PiBzdW0gKyAocC5maWxlU2l6ZSB8fCAwKSwgMCk7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgICAgcHJpbnRJbmZvKCdTdGF0aXN0aWNzJyk7XG4gICAgICAgICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAgICAgICAnQWN0aXZlIFBsdWdpbnMnOiBgJHthY3RpdmVDb3VudH0vJHtwbHVnaW5zLmxlbmd0aH1gLFxuICAgICAgICAgICAgJ1B1YmxpYyBQbHVnaW5zJzogYCR7cHVibGljQ291bnR9LyR7cGx1Z2lucy5sZW5ndGh9YCxcbiAgICAgICAgICAgICdUb3RhbCBTaXplJzogZm9ybWF0RmlsZVNpemUodG90YWxTaXplKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE91dHB1dCBkYXRhIGluIHJlcXVlc3RlZCBmb3JtYXRcbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBpZiAob3B0aW9ucy5vdXRwdXQpIHtcbiAgICAgICAgICBwcmludEluZm8oJ1NhdmluZyB0byBmaWxlJywge1xuICAgICAgICAgICAgcGF0aDogb3B0aW9ucy5vdXRwdXQsXG4gICAgICAgICAgICBmb3JtYXQ6IG9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9ybWF0IG91dHB1dCBkYXRhXG4gICAgICAgIGNvbnN0IG91dHB1dFBsdWdpbnMgPSBvcHRpb25zLnNob3dNZXRhZGF0YSA/IHBsdWdpbnMgOiBwbHVnaW5zLm1hcChwID0+ICh7XG4gICAgICAgICAgJ0lEJzogcC5pZCxcbiAgICAgICAgICAnTmFtZSc6IHAubmFtZSxcbiAgICAgICAgICAnVmVyc2lvbic6IHAudmVyc2lvbixcbiAgICAgICAgICAnT3JnYW5pemF0aW9uJzogcC5vcmdhbml6YXRpb24sXG4gICAgICAgICAgJ0FjdGl2ZSc6IHAuaXNBY3RpdmUgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICAgJ1B1YmxpYyc6IHAuaXNQdWJsaWMgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICAgJ1NpemUnOiBwLmZpbGVTaXplID8gZm9ybWF0RmlsZVNpemUocC5maWxlU2l6ZSkgOiAnTi9BJyxcbiAgICAgICAgICAnQ3JlYXRlZCBBdCc6IHAuY3JlYXRlZEF0IHx8ICdOL0EnLFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgb3V0cHV0RGF0YShvdXRwdXRQbHVnaW5zLCB7XG4gICAgICAgICAgZm9ybWF0OiBvcHRpb25zLmZvcm1hdCxcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLm91dHB1dCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUGVyZm9ybWFuY2UgbWV0cmljc1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICdFeGVjdXRpb24gSUQnOiBleGVjdXRpb25JZCxcbiAgICAgICAgICAnVG90YWwgRHVyYXRpb24nOiBmb3JtYXREdXJhdGlvbihEYXRlLm5vdygpIC0gc3RhcnRUaW1lKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBjb21tYW5kOiAnbGlzdC1wbHVnaW5zJyxcbiAgICAgICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgZmlsdGVyczogb3B0aW9ucyxcbiAgICAgICAgICAgIHZlcmlmeVNzbDogb3B0aW9ucy52ZXJpZnlTc2wsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2xpc3QtcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQTJCLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBWXhEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFnQjtJQUMxQyxPQUFPO1NBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUNmLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQztRQUV4RCx3QkFBd0I7U0FDdkIsTUFBTSxDQUFDLFdBQVcsRUFBRSx3REFBd0QsQ0FBQztTQUM3RSxNQUFNLENBQUMsdUJBQXVCLEVBQUUsc0NBQXNDLENBQUM7U0FDdkUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLG9DQUFvQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7U0FDOUUsTUFBTSxDQUFDLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDckUsTUFBTSxDQUFDLGVBQWUsRUFBRSwrREFBK0QsQ0FBQztRQUV6RixpQ0FBaUM7U0FDaEMsTUFBTSxDQUFDLGVBQWUsRUFBRSw2QkFBNkIsQ0FBQztTQUN0RCxNQUFNLENBQUMscUJBQXFCLEVBQUUscURBQXFELENBQUM7UUFFckYsaUJBQWlCO1NBQ2hCLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx3Q0FBd0MsRUFBRSxPQUFPLENBQUM7U0FDbEYsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO1NBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxrREFBa0QsRUFBRSxLQUFLLENBQUM7U0FDcEYsTUFBTSxDQUFDLGNBQWMsRUFBRSxxQ0FBcUMsQ0FBQztTQUM3RCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsc0NBQXNDLENBQUM7U0FFakUsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQTZCLE9BQU8sRUFBRSxPQUFPLEVBQUU7UUFDL0UsV0FBVyxFQUFFLFNBQVM7UUFDdEIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWE7UUFDN0MsV0FBVyxFQUFFLGNBQWM7UUFDM0IsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzlCLE1BQU0sT0FBTyxHQUF1QixFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDaEQsSUFBSSxPQUFPLENBQUMsSUFBSTtnQkFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFjLENBQUM7WUFDeEQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLHlCQUF5QjtnQkFDekIsTUFBTSxjQUFjLEdBQUcsbUVBQW1FLENBQUM7Z0JBQzNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFpQixDQUFDLEVBQUUsQ0FBQztvQkFDcEQsWUFBWSxDQUFDLFlBQVksT0FBTyxDQUFDLE9BQU8sa0NBQWtDLENBQUMsQ0FBQztnQkFDOUUsQ0FBQztnQkFDRCxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFpQixDQUFDO1lBQzlDLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQ0QsYUFBYSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekIsTUFBTSxNQUFNLEdBQTRCLEVBQUUsQ0FBQztZQUMzQyxJQUFJLE9BQU8sQ0FBQyxFQUFFO2dCQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUztnQkFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUMzRSxJQUFJLE9BQU8sQ0FBQyxJQUFJO2dCQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUM3QyxJQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUFFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUN0RCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hCLGdCQUFnQixFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUMvRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3hGLFlBQVksRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckYsQ0FBQztRQUNGLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0UsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1YsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPO1lBQ3BCLGNBQWMsRUFBRSxDQUFDLENBQUMsWUFBWTtZQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ25DLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbkMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDdkQsWUFBWSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksS0FBSztTQUNuQyxDQUFDLENBQUM7S0FDSixDQUFDLENBQUMsQ0FBQztBQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBydW5MaXN0RW50aXR5IH0gZnJvbSAnLi9lbnRpdHktbGlzdC5qcyc7XG5pbXBvcnQgeyBmb3JtYXRGaWxlU2l6ZSB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IHR5cGUgUGx1Z2luIH0gZnJvbSAnLi4vdHlwZXMvaW5kZXguanMnO1xuaW1wb3J0IHsgdHlwZSBDb21tb25GaWx0ZXJQYXJhbXMgfSBmcm9tICcuLi91dGlscy9saXN0LWNvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuLyoqXG4gKiBRdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcGx1Z2luIGxpc3QgQVBJIGVuZHBvaW50LlxuICogQ29tYmluZXMgY29tbW9uIGZpbHRlcnMgKHBhZ2luYXRpb24sIHNvcnQpIHdpdGggcGx1Z2luLXNwZWNpZmljIGZpbHRlcnMuXG4gKi9cbmludGVyZmFjZSBQbHVnaW5GaWx0ZXJQYXJhbXMgZXh0ZW5kcyBDb21tb25GaWx0ZXJQYXJhbXMge1xuICAvLyBQbHVnaW4tc3BlY2lmaWMgZmlsdGVyc1xuICBuYW1lPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYGxpc3QtcGx1Z2luc2AgY29tbWFuZCB3aXRoIHRoZSBDTEkgcHJvZ3JhbS5cbiAqXG4gKiBRdWVyaWVzIHBsdWdpbnMgd2l0aCBmaWx0ZXJzIGZvciBuYW1lLCB2ZXJzaW9uLCBpbWFnZSB0YWcsXG4gKiBhY3RpdmUgc3RhdHVzLCBwbHVzIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcuXG4gKlxuICogQHBhcmFtIHByb2dyYW0gLSBUaGUgcm9vdCBDb21tYW5kZXIgcHJvZ3JhbSBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGNvbW1hbmQgdG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIGNsaSBwbHVnaW4gbGlzdFxuICogY2xpIHBsdWdpbiBsaXN0IC0tbmFtZSBhdXRoLXBsdWdpbiAtLWlzLWFjdGl2ZSB0cnVlXG4gKiBjbGkgcGx1Z2luIGxpc3QgLS12ZXJzaW9uIFwiXjEuMC4wXCJcbiAqIGNsaSBwbHVnaW4gbGlzdCAtLWxpbWl0IDUwIC0tb2Zmc2V0IDEwMCAtLXNvcnQgXCJuYW1lOmFzY1wiXG4gKiBjbGkgcGx1Z2luIGxpc3QgLS1mb3JtYXQganNvbiAtLW91dHB1dCBwbHVnaW5zLmpzb25cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gbGlzdFBsdWdpbnMocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2xpc3QnKVxuICAgIC5kZXNjcmlwdGlvbignUXVlcnkgcGx1Z2lucyB3aXRoIGNvbXByZWhlbnNpdmUgZmlsdGVycycpXG5cbiAgICAvLyBDb21tb24gZmlsdGVyIG9wdGlvbnNcbiAgICAub3B0aW9uKCctLWlkIDxpZD4nLCAnRmlsdGVyIGJ5IHBsdWdpbiBJRCAoY2FuIHNwZWNpZnkgbXVsdGlwbGUgd2l0aCBjb21tYXMpJylcbiAgICAub3B0aW9uKCctLWlzLWFjdGl2ZSA8Ym9vbGVhbj4nLCAnRmlsdGVyIGJ5IGFjdGl2ZSBzdGF0dXMgKHRydWUvZmFsc2UpJylcbiAgICAub3B0aW9uKCctLWxpbWl0IDxudW1iZXI+JywgJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgKDEtMTAwMCknLCBwYXJzZUludCwgNTApXG4gICAgLm9wdGlvbignLS1vZmZzZXQgPG51bWJlcj4nLCAnTnVtYmVyIG9mIHJlc3VsdHMgdG8gc2tpcCcsIHBhcnNlSW50LCAwKVxuICAgIC5vcHRpb24oJy0tc29ydCA8c29ydD4nLCAnU29ydCBmb3JtYXQ6IGZpZWxkOmRpcmVjdGlvbiAoZS5nLiwgbmFtZTphc2MsIGNyZWF0ZWRBdDpkZXNjKScpXG5cbiAgICAvLyBQbHVnaW4tc3BlY2lmaWMgZmlsdGVyIG9wdGlvbnNcbiAgICAub3B0aW9uKCctLW5hbWUgPG5hbWU+JywgJ0ZpbHRlciBieSBleGFjdCBwbHVnaW4gbmFtZScpXG4gICAgLm9wdGlvbignLS12ZXJzaW9uIDx2ZXJzaW9uPicsICdGaWx0ZXIgYnkgdmVyc2lvbiAoc3VwcG9ydHMgc2VtdmVyLCBlLmcuLCBcIl4xLjAuMFwiKScpXG5cbiAgICAvLyBPdXRwdXQgb3B0aW9uc1xuICAgIC5vcHRpb24oJy1mLCAtLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0IChqc29uLCB5YW1sLCB0YWJsZSwgY3N2KScsICd0YWJsZScpXG4gICAgLm9wdGlvbignLW8sIC0tb3V0cHV0IDxmaWxlPicsICdTYXZlIG91dHB1dCB0byBmaWxlJylcbiAgICAub3B0aW9uKCctLXNob3ctbWV0YWRhdGEnLCAnSW5jbHVkZSBmdWxsIG1ldGFkYXRhIGluIG91dHB1dCAoanNvbi95YW1sIG9ubHkpJywgZmFsc2UpXG4gICAgLm9wdGlvbignLS12ZXJpZnktc3NsJywgJ0VuYWJsZSBTU0wgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uJylcbiAgICAub3B0aW9uKCctLW5vLXZlcmlmeS1zc2wnLCAnRGlzYWJsZSBTU0wgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uJylcblxuICAgIC5hY3Rpb24oKG9wdGlvbnMpID0+IHJ1bkxpc3RFbnRpdHk8UGx1Z2luLCBQbHVnaW5GaWx0ZXJQYXJhbXM+KHByb2dyYW0sIG9wdGlvbnMsIHtcbiAgICAgIGxhYmVsUGx1cmFsOiAnUGx1Z2lucycsXG4gICAgICByZXNwb25zZUtleTogJ3BsdWdpbnMnLFxuICAgICAgbGlzdFVybDogKGNvbmZpZykgPT4gY29uZmlnLmFwaS5wbHVnaW5MaXN0VXJsLFxuICAgICAgY29tbWFuZE5hbWU6ICdsaXN0LXBsdWdpbnMnLFxuICAgICAgYnVpbGRGaWx0ZXJzOiAob3B0aW9ucywgYmFzZSkgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJzOiBQbHVnaW5GaWx0ZXJQYXJhbXMgPSB7IC4uLmJhc2UgfTtcbiAgICAgICAgaWYgKG9wdGlvbnMubmFtZSkgZmlsdGVycy5uYW1lID0gb3B0aW9ucy5uYW1lIGFzIHN0cmluZztcbiAgICAgICAgaWYgKG9wdGlvbnMudmVyc2lvbikge1xuICAgICAgICAgIC8vIFZhbGlkYXRlIHNlbXZlciBmb3JtYXRcbiAgICAgICAgICBjb25zdCB2ZXJzaW9uUGF0dGVybiA9IC9eKFxcXnx+KT8oXFxkKylcXC4oXFxkKylcXC4oXFxkKykoLVthLXpBLVowLTkuLV0rKT8oXFwrW2EtekEtWjAtOS4tXSspPyQvO1xuICAgICAgICAgIGlmICghdmVyc2lvblBhdHRlcm4udGVzdChvcHRpb25zLnZlcnNpb24gYXMgc3RyaW5nKSkge1xuICAgICAgICAgICAgcHJpbnRXYXJuaW5nKGBWZXJzaW9uIFwiJHtvcHRpb25zLnZlcnNpb259XCIgbWF5IG5vdCBiZSB2YWxpZCBzZW12ZXIgZm9ybWF0YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbHRlcnMudmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbiBhcyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgICB9LFxuICAgICAgYWN0aXZlRmlsdGVyczogKGZpbHRlcnMpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgICAgICBpZiAoZmlsdGVycy5pZCkgYWN0aXZlLklEID0gZmlsdGVycy5pZDtcbiAgICAgICAgaWYgKGZpbHRlcnMuaXNBY3RpdmUgIT09IHVuZGVmaW5lZCkgYWN0aXZlWydJcyBBY3RpdmUnXSA9IGZpbHRlcnMuaXNBY3RpdmU7XG4gICAgICAgIGlmIChmaWx0ZXJzLm5hbWUpIGFjdGl2ZS5OYW1lID0gZmlsdGVycy5uYW1lO1xuICAgICAgICBpZiAoZmlsdGVycy52ZXJzaW9uKSBhY3RpdmUuVmVyc2lvbiA9IGZpbHRlcnMudmVyc2lvbjtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZTtcbiAgICAgIH0sXG4gICAgICBzdGF0aXN0aWNzOiAocGx1Z2lucykgPT4gKHtcbiAgICAgICAgJ0FjdGl2ZSBQbHVnaW5zJzogYCR7cGx1Z2lucy5maWx0ZXIocCA9PiBwLmlzQWN0aXZlKS5sZW5ndGh9LyR7cGx1Z2lucy5sZW5ndGh9YCxcbiAgICAgICAgJ1B1YmxpYyBQbHVnaW5zJzogYCR7cGx1Z2lucy5maWx0ZXIocCA9PiBwLmlzUHVibGljID09PSB0cnVlKS5sZW5ndGh9LyR7cGx1Z2lucy5sZW5ndGh9YCxcbiAgICAgICAgJ1RvdGFsIFNpemUnOiBmb3JtYXRGaWxlU2l6ZShwbHVnaW5zLnJlZHVjZSgoc3VtLCBwKSA9PiBzdW0gKyAocC5maWxlU2l6ZSB8fCAwKSwgMCkpLFxuICAgICAgfSksXG4gICAgICByb3dzOiAocGx1Z2lucywgb3B0aW9ucykgPT4gb3B0aW9ucy5zaG93TWV0YWRhdGEgPyBwbHVnaW5zIDogcGx1Z2lucy5tYXAocCA9PiAoe1xuICAgICAgICAnSUQnOiBwLmlkLFxuICAgICAgICAnTmFtZSc6IHAubmFtZSxcbiAgICAgICAgJ1ZlcnNpb24nOiBwLnZlcnNpb24sXG4gICAgICAgICdPcmdhbml6YXRpb24nOiBwLm9yZ2FuaXphdGlvbixcbiAgICAgICAgJ0FjdGl2ZSc6IHAuaXNBY3RpdmUgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICdQdWJsaWMnOiBwLmlzUHVibGljID8gJ1llcycgOiAnTm8nLFxuICAgICAgICAnU2l6ZSc6IHAuZmlsZVNpemUgPyBmb3JtYXRGaWxlU2l6ZShwLmZpbGVTaXplKSA6ICdOL0EnLFxuICAgICAgICAnQ3JlYXRlZCBBdCc6IHAuY3JlYXRlZEF0IHx8ICdOL0EnLFxuICAgICAgfSkpLFxuICAgIH0pKTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+J5C"}
|
package/dist/commands/login.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import https from 'https';
|
|
4
3
|
import axios from 'axios';
|
|
5
4
|
import { Command } from 'commander';
|
|
6
5
|
import pico from 'picocolors';
|
|
7
6
|
import { generateExecutionId, TIMEOUTS } from '../config/cli.constants.js';
|
|
7
|
+
import { assertCredentialTlsAllowed, credentialHttpsAgent, postLogin, resolveCredentials, switchOrganization } from '../utils/auth-utils.js';
|
|
8
8
|
import { ERROR_CODES, handleError } from '../utils/error-handler.js';
|
|
9
9
|
import { printDebug, printError, printInfo, printSection, printSuccess, printWarning } from '../utils/output-utils.js';
|
|
10
10
|
import { checkAuthRateLimit, recordAuthFailure, recordAuthSuccess } from '../utils/rate-limiter.js';
|
|
11
|
-
import { isProductionEnv } from '../utils/tls.js';
|
|
12
11
|
const { bold, cyan, green, magenta } = pico;
|
|
13
12
|
/**
|
|
14
13
|
* Registers the `login` command with the CLI program.
|
|
@@ -45,16 +44,11 @@ export function login(program) {
|
|
|
45
44
|
const isRefresh = !!options.refresh;
|
|
46
45
|
// SECURITY: login/refresh POST plaintext passwords and JWTs. Never send them
|
|
47
46
|
// over an unverified TLS connection in production — a MITM would harvest them.
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
if (options.verifySsl === false && isProductionEnv()) {
|
|
51
|
-
printError('Refusing to disable TLS verification in production (NODE_ENV=production) — credentials must not be transmitted over an unverified connection. Use a valid certificate, or unset NODE_ENV for local/self-signed development.');
|
|
52
|
-
process.exit(ERROR_CODES.AUTHENTICATION);
|
|
53
|
-
}
|
|
47
|
+
// In non-production, --no-verify-ssl is still honored (self-signed dev platforms).
|
|
48
|
+
assertCredentialTlsAllowed(options.verifySsl);
|
|
54
49
|
// Credentials may come from flags OR the PLATFORM_IDENTIFIER/PLATFORM_PASSWORD
|
|
55
50
|
// env vars (so the password need not appear in shell history / `ps`).
|
|
56
|
-
const identifier = options
|
|
57
|
-
const password = options.password || process.env.PLATFORM_PASSWORD;
|
|
51
|
+
const { identifier, password } = resolveCredentials(options);
|
|
58
52
|
try {
|
|
59
53
|
// Validate required options
|
|
60
54
|
if (!isRefresh && (!identifier || !password)) {
|
|
@@ -83,9 +77,7 @@ export function login(program) {
|
|
|
83
77
|
verifySsl: options.verifySsl,
|
|
84
78
|
});
|
|
85
79
|
}
|
|
86
|
-
const httpsAgent =
|
|
87
|
-
rejectUnauthorized: options.verifySsl ?? true,
|
|
88
|
-
});
|
|
80
|
+
const httpsAgent = credentialHttpsAgent(options.verifySsl);
|
|
89
81
|
let token;
|
|
90
82
|
if (isRefresh) {
|
|
91
83
|
const refreshUrl = `${options.url}/api/auth/refresh`;
|
|
@@ -98,17 +90,14 @@ export function login(program) {
|
|
|
98
90
|
token = response.data?.data?.accessToken;
|
|
99
91
|
}
|
|
100
92
|
else {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
identifier,
|
|
105
|
-
password,
|
|
106
|
-
}, {
|
|
107
|
-
headers: { 'Content-Type': 'application/json' },
|
|
93
|
+
// identifier/password validated non-null above (the `!isRefresh` guard).
|
|
94
|
+
token = await postLogin({
|
|
95
|
+
url: options.url,
|
|
96
|
+
identifier: identifier,
|
|
97
|
+
password: password,
|
|
108
98
|
httpsAgent,
|
|
109
99
|
timeout: TIMEOUTS.HTTP_REQUEST,
|
|
110
100
|
});
|
|
111
|
-
token = response.data?.data?.accessToken;
|
|
112
101
|
}
|
|
113
102
|
if (!token) {
|
|
114
103
|
if (!isRefresh)
|
|
@@ -123,25 +112,14 @@ export function login(program) {
|
|
|
123
112
|
if (!quiet) {
|
|
124
113
|
printInfo('Switching to organization', { orgId: options.org });
|
|
125
114
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
'Content-Type': 'application/json',
|
|
131
|
-
'Authorization': `Bearer ${token}`,
|
|
132
|
-
},
|
|
115
|
+
token = await switchOrganization({
|
|
116
|
+
url: options.url,
|
|
117
|
+
orgId: options.org,
|
|
118
|
+
accessToken: token,
|
|
133
119
|
httpsAgent,
|
|
134
120
|
timeout: TIMEOUTS.HTTP_REQUEST,
|
|
121
|
+
quiet,
|
|
135
122
|
});
|
|
136
|
-
const switchedToken = switchResponse.data?.data?.accessToken;
|
|
137
|
-
if (!switchedToken) {
|
|
138
|
-
printError('Organization switch failed: no access token in response');
|
|
139
|
-
process.exit(ERROR_CODES.AUTHENTICATION);
|
|
140
|
-
}
|
|
141
|
-
token = switchedToken;
|
|
142
|
-
if (!quiet) {
|
|
143
|
-
printSuccess(`Switched to organization ${options.org}`);
|
|
144
|
-
}
|
|
145
123
|
}
|
|
146
124
|
if (!quiet) {
|
|
147
125
|
console.log('');
|
|
@@ -190,4 +168,4 @@ export function login(program) {
|
|
|
190
168
|
}
|
|
191
169
|
});
|
|
192
170
|
}
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBYTVDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBZ0I7SUFDcEMsT0FBTztTQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEIsV0FBVyxDQUFDLDREQUE0RCxDQUFDO1NBQ3pFLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxtQkFBbUIsQ0FBQztTQUM1RCxNQUFNLENBQUMsMkJBQTJCLEVBQUUsVUFBVSxDQUFDO1NBQy9DLE1BQU0sQ0FBQywwQkFBMEIsRUFBRSxrREFBa0QsQ0FBQztTQUN0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QUFFLE9BQU8sQ0FBQyxVQUFVO29CQUM5QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7aUJBQ2pCO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUV4ZWN1dGlvbklkLCBUSU1FT1VUUyB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnREZWJ1ZywgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IGNoZWNrQXV0aFJhdGVMaW1pdCwgcmVjb3JkQXV0aEZhaWx1cmUsIHJlY29yZEF1dGhTdWNjZXNzIH0gZnJvbSAnLi4vdXRpbHMvcmF0ZS1saW1pdGVyLmpzJztcbmltcG9ydCB7IGlzUHJvZHVjdGlvbkVudiB9IGZyb20gJy4uL3V0aWxzL3Rscy5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgY3lhbiwgZ3JlZW4sIG1hZ2VudGEgfSA9IHBpY287XG5cbi8qKlxuICogRXhwZWN0ZWQgc2hhcGUgb2YgdGhlIGxvZ2luL3JlZnJlc2ggQVBJIHJlc3BvbnNlLlxuICovXG5pbnRlcmZhY2UgTG9naW5SZXNwb25zZSB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE6IHtcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYGxvZ2luYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIEF1dGhlbnRpY2F0ZXMgYWdhaW5zdCB0aGUgcGxhdGZvcm0gQVBJIGFuZCBwcmludHMgYW4gZXhwb3J0IHN0YXRlbWVudFxuICogZm9yIGBQTEFURk9STV9UT0tFTmAgb24gc3VjY2Vzcy4gIERvZXMgTk9UIHJlcXVpcmUgYFBMQVRGT1JNX1RPS0VOYFxuICogdG8gYmUgc2V0IGJlZm9yZWhhbmQgKHVubGlrZSBvdGhlciBjb21tYW5kcykuXG4gKlxuICogQHBhcmFtIHByb2dyYW0gLSBUaGUgcm9vdCBDb21tYW5kZXIgcHJvZ3JhbSBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGNvbW1hbmQgdG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtLWlkZW50aWZpZXIgYWRtaW5AZXhhbXBsZS5jb20gLS1wYXNzd29yZCBzZWNyZXRcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtdSBhZG1pbkBleGFtcGxlLmNvbSAtcCBzZWNyZXRcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtdSBhZG1pbkBleGFtcGxlLmNvbSAtcCBzZWNyZXQgLS11cmwgaHR0cHM6Ly9teWhvc3Q6ODQ0M1xuICogZXZhbCAkKHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtdSBhZG1pbkBleGFtcGxlLmNvbSAtcCBzZWNyZXQgLS1xdWlldClcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtLXJlZnJlc2ggPHJlZnJlc2gtdG9rZW4+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvZ2luKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsb2dpbicpXG4gICAgLmRlc2NyaXB0aW9uKCdBdXRoZW50aWNhdGUgd2l0aCB0aGUgcGxhdGZvcm0gYW5kIG9idGFpbiBhIFBMQVRGT1JNX1RPS0VOJylcbiAgICAub3B0aW9uKCctdSwgLS1pZGVudGlmaWVyIDxpZGVudGlmaWVyPicsICdVc2VybmFtZSBvciBlbWFpbCcpXG4gICAgLm9wdGlvbignLXAsIC0tcGFzc3dvcmQgPHBhc3N3b3JkPicsICdQYXNzd29yZCcpXG4gICAgLm9wdGlvbignLS1yZWZyZXNoIDxyZWZyZXNoVG9rZW4+JywgJ1VzZSBhIHJlZnJlc2ggdG9rZW4gaW5zdGVhZCBvZiBsb2dpbiBjcmVkZW50aWFscycpXG4gICAgLm9wdGlvbignLS1vcmcgPG9yZ0lkPicsICdTd2l0Y2ggdG8gYSBzcGVjaWZpYyBvcmdhbml6YXRpb24gYWZ0ZXIgbG9naW4nKVxuICAgIC5vcHRpb24oJy0tdXJsIDx1cmw+JywgJ1BsYXRmb3JtIGJhc2UgVVJMJywgcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgfHwgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnKVxuICAgIC5vcHRpb24oJy0tdmVyaWZ5LXNzbCcsICdFbmFibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpXG4gICAgLm9wdGlvbignLS1uby12ZXJpZnktc3NsJywgJ0Rpc2FibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpXG4gICAgLm9wdGlvbignLS1xdWlldCcsICdPbmx5IHByaW50IHRoZSBleHBvcnQgc3RhdGVtZW50ICh1c2VmdWwgZm9yIGV2YWwpJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IGdlbmVyYXRlRXhlY3V0aW9uSWQoKTtcbiAgICAgIGNvbnN0IGlzUmVmcmVzaCA9ICEhb3B0aW9ucy5yZWZyZXNoO1xuXG4gICAgICAvLyBTRUNVUklUWTogbG9naW4vcmVmcmVzaCBQT1NUIHBsYWludGV4dCBwYXNzd29yZHMgYW5kIEpXVHMuIE5ldmVyIHNlbmQgdGhlbVxuICAgICAgLy8gb3ZlciBhbiB1bnZlcmlmaWVkIFRMUyBjb25uZWN0aW9uIGluIHByb2R1Y3Rpb24g4oCUIGEgTUlUTSB3b3VsZCBoYXJ2ZXN0IHRoZW0uXG4gICAgICAvLyBNaXJyb3JzIHRoZSBndWFyZCBpbiBjb25maWctbG9hZGVyIC8gdGxzLiBJbiBub24tcHJvZHVjdGlvbiwgLS1uby12ZXJpZnktc3NsXG4gICAgICAvLyBpcyBzdGlsbCBob25vcmVkIChzZWxmLXNpZ25lZCBkZXYgcGxhdGZvcm1zKS5cbiAgICAgIGlmIChvcHRpb25zLnZlcmlmeVNzbCA9PT0gZmFsc2UgJiYgaXNQcm9kdWN0aW9uRW52KCkpIHtcbiAgICAgICAgcHJpbnRFcnJvcignUmVmdXNpbmcgdG8gZGlzYWJsZSBUTFMgdmVyaWZpY2F0aW9uIGluIHByb2R1Y3Rpb24gKE5PREVfRU5WPXByb2R1Y3Rpb24pIOKAlCBjcmVkZW50aWFscyBtdXN0IG5vdCBiZSB0cmFuc21pdHRlZCBvdmVyIGFuIHVudmVyaWZpZWQgY29ubmVjdGlvbi4gVXNlIGEgdmFsaWQgY2VydGlmaWNhdGUsIG9yIHVuc2V0IE5PREVfRU5WIGZvciBsb2NhbC9zZWxmLXNpZ25lZCBkZXZlbG9wbWVudC4nKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ3JlZGVudGlhbHMgbWF5IGNvbWUgZnJvbSBmbGFncyBPUiB0aGUgUExBVEZPUk1fSURFTlRJRklFUi9QTEFURk9STV9QQVNTV09SRFxuICAgICAgLy8gZW52IHZhcnMgKHNvIHRoZSBwYXNzd29yZCBuZWVkIG5vdCBhcHBlYXIgaW4gc2hlbGwgaGlzdG9yeSAvIGBwc2ApLlxuICAgICAgY29uc3QgaWRlbnRpZmllciA9IG9wdGlvbnMuaWRlbnRpZmllciB8fCBwcm9jZXNzLmVudi5QTEFURk9STV9JREVOVElGSUVSO1xuICAgICAgY29uc3QgcGFzc3dvcmQgPSBvcHRpb25zLnBhc3N3b3JkIHx8IHByb2Nlc3MuZW52LlBMQVRGT1JNX1BBU1NXT1JEO1xuXG4gICAgICB0cnkge1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHJlcXVpcmVkIG9wdGlvbnNcbiAgICAgICAgaWYgKCFpc1JlZnJlc2ggJiYgKCFpZGVudGlmaWVyIHx8ICFwYXNzd29yZCkpIHtcbiAgICAgICAgICBwcmludEVycm9yKCdMb2dpbiByZXF1aXJlcyAtLWlkZW50aWZpZXIgYW5kIC0tcGFzc3dvcmQgKG9yIFBMQVRGT1JNX0lERU5USUZJRVIvUExBVEZPUk1fUEFTU1dPUkQgZW52KSwgb3IgLS1yZWZyZXNoIDx0b2tlbj4nKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNSZWZyZXNoICYmIG9wdGlvbnMucGFzc3dvcmQpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ1Bhc3NpbmcgLS1wYXNzd29yZCBvbiB0aGUgY29tbWFuZCBsaW5lIGNhbiBleHBvc2UgaXQgdmlhIHNoZWxsIGhpc3Rvcnk7IHByZWZlciB0aGUgUExBVEZPUk1fUEFTU1dPUkQgZW52IHZhci4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJhdGUgbGltaXRpbmcg4oCUIHByZXZlbnQgYnJ1dGUgZm9yY2UgKGxvZ2luIG9ubHkpXG4gICAgICAgIGlmICghaXNSZWZyZXNoKSB7XG4gICAgICAgICAgY29uc3QgcmF0ZUxpbWl0TXNnID0gY2hlY2tBdXRoUmF0ZUxpbWl0KGlkZW50aWZpZXIsIG9wdGlvbnMudXJsKTtcbiAgICAgICAgICBpZiAocmF0ZUxpbWl0TXNnKSB7XG4gICAgICAgICAgICBwcmludEVycm9yKHJhdGVMaW1pdE1zZyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1aWV0ID0gb3B0aW9ucy5xdWlldCA/PyBmYWxzZTtcblxuICAgICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgICAgcHJpbnRTZWN0aW9uKGlzUmVmcmVzaCA/ICdUb2tlbiBSZWZyZXNoJyA6ICdMb2dpbicpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAke21hZ2VudGEoYFtFWEUtJHtleGVjdXRpb25JZH1dYCl9ICR7Y3lhbihib2xkKGlzUmVmcmVzaCA/ICdUb2tlbiBSZWZyZXNoJyA6ICdQbGF0Zm9ybSBBdXRoZW50aWNhdGlvbicpKX1gKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgICAgcHJpbnRJbmZvKGlzUmVmcmVzaCA/ICdSZWZyZXNoaW5nIGFjY2VzcyB0b2tlbicgOiAnQXV0aGVudGljYXRpbmcnLCB7XG4gICAgICAgICAgICAuLi4oaWRlbnRpZmllciA/IHsgaWRlbnRpZmllciB9IDoge30pLFxuICAgICAgICAgICAgdXJsOiBvcHRpb25zLnVybCxcbiAgICAgICAgICAgIHZlcmlmeVNzbDogb3B0aW9ucy52ZXJpZnlTc2wsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBodHRwc0FnZW50ID0gbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IG9wdGlvbnMudmVyaWZ5U3NsID8/IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCB0b2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChpc1JlZnJlc2gpIHtcbiAgICAgICAgICBjb25zdCByZWZyZXNoVXJsID0gYCR7b3B0aW9ucy51cmx9L2FwaS9hdXRoL3JlZnJlc2hgO1xuICAgICAgICAgIHByaW50RGVidWcoJ1BPU1QnLCB7IHVybDogcmVmcmVzaFVybCB9KTtcblxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdDxMb2dpblJlc3BvbnNlPihcbiAgICAgICAgICAgIHJlZnJlc2hVcmwsXG4gICAgICAgICAgICB7IHJlZnJlc2hUb2tlbjogb3B0aW9ucy5yZWZyZXNoIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICAgICAgICBodHRwc0FnZW50LFxuICAgICAgICAgICAgICB0aW1lb3V0OiBUSU1FT1VUUy5IVFRQX1JFUVVFU1QsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0b2tlbiA9IHJlc3BvbnNlLmRhdGE/LmRhdGE/LmFjY2Vzc1Rva2VuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGxvZ2luVXJsID0gYCR7b3B0aW9ucy51cmx9L2FwaS9hdXRoL2xvZ2luYDtcbiAgICAgICAgICBwcmludERlYnVnKCdQT1NUJywgeyB1cmw6IGxvZ2luVXJsIH0pO1xuXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0PExvZ2luUmVzcG9uc2U+KFxuICAgICAgICAgICAgbG9naW5VcmwsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgICAgICAgIGh0dHBzQWdlbnQsXG4gICAgICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRva2VuID0gcmVzcG9uc2UuZGF0YT8uZGF0YT8uYWNjZXNzVG9rZW47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgaWYgKCFpc1JlZnJlc2gpIHJlY29yZEF1dGhGYWlsdXJlKGlkZW50aWZpZXIsIG9wdGlvbnMudXJsKTtcbiAgICAgICAgICBwcmludEVycm9yKGAke2lzUmVmcmVzaCA/ICdUb2tlbiByZWZyZXNoJyA6ICdMb2dpbid9IGZhaWxlZDogbm8gYWNjZXNzIHRva2VuIGluIHJlc3BvbnNlYCk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNSZWZyZXNoKSByZWNvcmRBdXRoU3VjY2VzcyhpZGVudGlmaWVyLCBvcHRpb25zLnVybCk7XG5cbiAgICAgICAgLy8gU3dpdGNoIHRvIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uIGlmIC0tb3JnIGlzIHByb3ZpZGVkXG4gICAgICAgIGlmIChvcHRpb25zLm9yZykge1xuICAgICAgICAgIGlmICghcXVpZXQpIHtcbiAgICAgICAgICAgIHByaW50SW5mbygnU3dpdGNoaW5nIHRvIG9yZ2FuaXphdGlvbicsIHsgb3JnSWQ6IG9wdGlvbnMub3JnIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHN3aXRjaFVybCA9IGAke29wdGlvbnMudXJsfS9hcGkvYXV0aC9zd2l0Y2gtb3JnYDtcbiAgICAgICAgICBwcmludERlYnVnKCdQT1NUJywgeyB1cmw6IHN3aXRjaFVybCB9KTtcblxuICAgICAgICAgIGNvbnN0IHN3aXRjaFJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdDxMb2dpblJlc3BvbnNlPihcbiAgICAgICAgICAgIHN3aXRjaFVybCxcbiAgICAgICAgICAgIHsgb3JnYW5pemF0aW9uSWQ6IG9wdGlvbnMub3JnIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGh0dHBzQWdlbnQsXG4gICAgICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IHN3aXRjaGVkVG9rZW4gPSBzd2l0Y2hSZXNwb25zZS5kYXRhPy5kYXRhPy5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICBpZiAoIXN3aXRjaGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHByaW50RXJyb3IoJ09yZ2FuaXphdGlvbiBzd2l0Y2ggZmFpbGVkOiBubyBhY2Nlc3MgdG9rZW4gaW4gcmVzcG9uc2UnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdG9rZW4gPSBzd2l0Y2hlZFRva2VuO1xuXG4gICAgICAgICAgaWYgKCFxdWlldCkge1xuICAgICAgICAgICAgcHJpbnRTdWNjZXNzKGBTd2l0Y2hlZCB0byBvcmdhbml6YXRpb24gJHtvcHRpb25zLm9yZ31gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICAgIHByaW50U3VjY2Vzcyhpc1JlZnJlc2ggPyAnVG9rZW4gcmVmcmVzaGVkIHN1Y2Nlc3NmdWxseScgOiAnTG9naW4gc3VjY2Vzc2Z1bCcpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGBleHBvcnQgUExBVEZPUk1fVE9LRU49JHt0b2tlbn1gKTtcblxuICAgICAgICBpZiAoIXF1aWV0KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICAgIHByaW50SW5mbygnVGlwOiBSdW4gdGhlIGZvbGxvd2luZyB0byBzZXQgdGhlIHRva2VuIGluIHlvdXIgc2hlbGw6Jyk7XG4gICAgICAgICAgY29uc3Qgb3JnRmxhZyA9IG9wdGlvbnMub3JnID8gYCAtLW9yZyAke29wdGlvbnMub3JnfWAgOiAnJztcbiAgICAgICAgICBpZiAoaXNSZWZyZXNoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhncmVlbihgICBldmFsICQocGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tcmVmcmVzaCAnPHJlZnJlc2gtdG9rZW4+JyR7b3JnRmxhZ30gLS1xdWlldClgKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGdyZWVuKGAgIGV2YWwgJChwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4gLXUgJHtpZGVudGlmaWVyfSAtcCAnKioqJyR7b3JnRmxhZ30gLS1xdWlldClgKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBLZXkgdGhlIGZhaWx1cmUgdG8gKGlkZW50aWZpZXIsIHVybCkgbGlrZSB0aGUgY2hlY2svc3VjY2Vzcy9uby10b2tlblxuICAgICAgICAvLyBwYXRocyDigJQgYSBiYWQtcGFzc3dvcmQgNDAxIHRocm93cyB0byBoZXJlLCBzbyBrZXlpbmcgaXQgdG8gdGhlIHNoYXJlZFxuICAgICAgICAvLyBkZWZhdWx0IGJ1Y2tldCBtZWFudCBicnV0ZS1mb3JjZSBhdHRlbXB0cyBuZXZlciBhY2NydWVkIHRvd2FyZCBsb2Nrb3V0LlxuICAgICAgICBpZiAoIWlzUmVmcmVzaCkgcmVjb3JkQXV0aEZhaWx1cmUoaWRlbnRpZmllciwgb3B0aW9ucy51cmwpO1xuICAgICAgICAvLyBQcm92aWRlIGEgY2xlYXIgZmFpbHVyZSBtZXNzYWdlIGZvciBhdXRoIGVycm9yc1xuICAgICAgICBpZiAoYXhpb3MuaXNBeGlvc0Vycm9yKGVycm9yKSkge1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGVycm9yLnJlc3BvbnNlPy5zdGF0dXM7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IChlcnJvci5yZXNwb25zZT8uZGF0YSBhcyB7IG1lc3NhZ2U/OiBzdHJpbmcgfSk/Lm1lc3NhZ2U7XG5cbiAgICAgICAgICBwcmludEVycm9yKGAke2lzUmVmcmVzaCA/ICdUb2tlbiByZWZyZXNoJyA6ICdMb2dpbid9IGZhaWxlZGAsIHtcbiAgICAgICAgICAgIHN0YXR1czogc3RhdHVzID8/ICdubyByZXNwb25zZScsXG4gICAgICAgICAgICAuLi4obWVzc2FnZSA/IHsgbWVzc2FnZSB9IDoge30pLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gICAgICAgIH1cblxuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04sIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBjb21tYW5kOiAnbG9naW4nLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBvcHRpb25zLmlkZW50aWZpZXIsXG4gICAgICAgICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBcUIsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEssT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBZ0I7SUFDcEMsT0FBTztTQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEIsV0FBVyxDQUFDLDREQUE0RCxDQUFDO1NBQ3pFLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxtQkFBbUIsQ0FBQztTQUM1RCxNQUFNLENBQUMsMkJBQTJCLEVBQUUsVUFBVSxDQUFDO1NBQy9DLE1BQU0sQ0FBQywwQkFBMEIsRUFB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WCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7b0JBQzlCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztpQkFDakI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVFeGVjdXRpb25JZCwgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZCwgdHlwZSBBdXRoUmVzcG9uc2UsIGNyZWRlbnRpYWxIdHRwc0FnZW50LCBwb3N0TG9naW4sIHJlc29sdmVDcmVkZW50aWFscywgc3dpdGNoT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vdXRpbHMvYXV0aC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50RGVidWcsIHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5pbXBvcnQgeyBjaGVja0F1dGhSYXRlTGltaXQsIHJlY29yZEF1dGhGYWlsdXJlLCByZWNvcmRBdXRoU3VjY2VzcyB9IGZyb20gJy4uL3V0aWxzL3JhdGUtbGltaXRlci5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgY3lhbiwgZ3JlZW4sIG1hZ2VudGEgfSA9IHBpY287XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgbG9naW5gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogQXV0aGVudGljYXRlcyBhZ2FpbnN0IHRoZSBwbGF0Zm9ybSBBUEkgYW5kIHByaW50cyBhbiBleHBvcnQgc3RhdGVtZW50XG4gKiBmb3IgYFBMQVRGT1JNX1RPS0VOYCBvbiBzdWNjZXNzLiAgRG9lcyBOT1QgcmVxdWlyZSBgUExBVEZPUk1fVE9LRU5gXG4gKiB0byBiZSBzZXQgYmVmb3JlaGFuZCAodW5saWtlIG90aGVyIGNvbW1hbmRzKS5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSAtIFRoZSByb290IENvbW1hbmRlciBwcm9ncmFtIGluc3RhbmNlIHRvIGF0dGFjaCB0aGUgY29tbWFuZCB0by5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0taWRlbnRpZmllciBhZG1pbkBleGFtcGxlLmNvbSAtLXBhc3N3b3JkIHNlY3JldFxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC11IGFkbWluQGV4YW1wbGUuY29tIC1wIHNlY3JldFxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC11IGFkbWluQGV4YW1wbGUuY29tIC1wIHNlY3JldCAtLXVybCBodHRwczovL215aG9zdDo4NDQzXG4gKiBldmFsICQocGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC11IGFkbWluQGV4YW1wbGUuY29tIC1wIHNlY3JldCAtLXF1aWV0KVxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tcmVmcmVzaCA8cmVmcmVzaC10b2tlbj5cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9naW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2xvZ2luJylcbiAgICAuZGVzY3JpcHRpb24oJ0F1dGhlbnRpY2F0ZSB3aXRoIHRoZSBwbGF0Zm9ybSBhbmQgb2J0YWluIGEgUExBVEZPUk1fVE9LRU4nKVxuICAgIC5vcHRpb24oJy11LCAtLWlkZW50aWZpZXIgPGlkZW50aWZpZXI+JywgJ1VzZXJuYW1lIG9yIGVtYWlsJylcbiAgICAub3B0aW9uKCctcCwgLS1wYXNzd29yZCA8cGFzc3dvcmQ+JywgJ1Bhc3N3b3JkJylcbiAgICAub3B0aW9uKCctLXJlZnJlc2ggPHJlZnJlc2hUb2tlbj4nLCAnVXNlIGEgcmVmcmVzaCB0b2tlbiBpbnN0ZWFkIG9mIGxvZ2luIGNyZWRlbnRpYWxzJylcbiAgICAub3B0aW9uKCctLW9yZyA8b3JnSWQ+JywgJ1N3aXRjaCB0byBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbiBhZnRlciBsb2dpbicpXG4gICAgLm9wdGlvbignLS11cmwgPHVybD4nLCAnUGxhdGZvcm0gYmFzZSBVUkwnLCBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTCB8fCAnaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MycpXG4gICAgLm9wdGlvbignLS12ZXJpZnktc3NsJywgJ0VuYWJsZSBTU0wgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uJylcbiAgICAub3B0aW9uKCctLW5vLXZlcmlmeS1zc2wnLCAnRGlzYWJsZSBTU0wgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uJylcbiAgICAub3B0aW9uKCctLXF1aWV0JywgJ09ubHkgcHJpbnQgdGhlIGV4cG9ydCBzdGF0ZW1lbnQgKHVzZWZ1bCBmb3IgZXZhbCknKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gZ2VuZXJhdGVFeGVjdXRpb25JZCgpO1xuICAgICAgY29uc3QgaXNSZWZyZXNoID0gISFvcHRpb25zLnJlZnJlc2g7XG5cbiAgICAgIC8vIFNFQ1VSSVRZOiBsb2dpbi9yZWZyZXNoIFBPU1QgcGxhaW50ZXh0IHBhc3N3b3JkcyBhbmQgSldUcy4gTmV2ZXIgc2VuZCB0aGVtXG4gICAgICAvLyBvdmVyIGFuIHVudmVyaWZpZWQgVExTIGNvbm5lY3Rpb24gaW4gcHJvZHVjdGlvbiDigJQgYSBNSVRNIHdvdWxkIGhhcnZlc3QgdGhlbS5cbiAgICAgIC8vIEluIG5vbi1wcm9kdWN0aW9uLCAtLW5vLXZlcmlmeS1zc2wgaXMgc3RpbGwgaG9ub3JlZCAoc2VsZi1zaWduZWQgZGV2IHBsYXRmb3JtcykuXG4gICAgICBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZChvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgIC8vIENyZWRlbnRpYWxzIG1heSBjb21lIGZyb20gZmxhZ3MgT1IgdGhlIFBMQVRGT1JNX0lERU5USUZJRVIvUExBVEZPUk1fUEFTU1dPUkRcbiAgICAgIC8vIGVudiB2YXJzIChzbyB0aGUgcGFzc3dvcmQgbmVlZCBub3QgYXBwZWFyIGluIHNoZWxsIGhpc3RvcnkgLyBgcHNgKS5cbiAgICAgIGNvbnN0IHsgaWRlbnRpZmllciwgcGFzc3dvcmQgfSA9IHJlc29sdmVDcmVkZW50aWFscyhvcHRpb25zKTtcblxuICAgICAgdHJ5IHtcblxuICAgICAgICAvLyBWYWxpZGF0ZSByZXF1aXJlZCBvcHRpb25zXG4gICAgICAgIGlmICghaXNSZWZyZXNoICYmICghaWRlbnRpZmllciB8fCAhcGFzc3dvcmQpKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcignTG9naW4gcmVxdWlyZXMgLS1pZGVudGlmaWVyIGFuZCAtLXBhc3N3b3JkIChvciBQTEFURk9STV9JREVOVElGSUVSL1BMQVRGT1JNX1BBU1NXT1JEIGVudiksIG9yIC0tcmVmcmVzaCA8dG9rZW4+Jyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzUmVmcmVzaCAmJiBvcHRpb25zLnBhc3N3b3JkKSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdQYXNzaW5nIC0tcGFzc3dvcmQgb24gdGhlIGNvbW1hbmQgbGluZSBjYW4gZXhwb3NlIGl0IHZpYSBzaGVsbCBoaXN0b3J5OyBwcmVmZXIgdGhlIFBMQVRGT1JNX1BBU1NXT1JEIGVudiB2YXIuJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSYXRlIGxpbWl0aW5nIOKAlCBwcmV2ZW50IGJydXRlIGZvcmNlIChsb2dpbiBvbmx5KVxuICAgICAgICBpZiAoIWlzUmVmcmVzaCkge1xuICAgICAgICAgIGNvbnN0IHJhdGVMaW1pdE1zZyA9IGNoZWNrQXV0aFJhdGVMaW1pdChpZGVudGlmaWVyLCBvcHRpb25zLnVybCk7XG4gICAgICAgICAgaWYgKHJhdGVMaW1pdE1zZykge1xuICAgICAgICAgICAgcHJpbnRFcnJvcihyYXRlTGltaXRNc2cpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdWlldCA9IG9wdGlvbnMucXVpZXQgPz8gZmFsc2U7XG5cbiAgICAgICAgaWYgKCFxdWlldCkge1xuICAgICAgICAgIHByaW50U2VjdGlvbihpc1JlZnJlc2ggPyAnVG9rZW4gUmVmcmVzaCcgOiAnTG9naW4nKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgJHttYWdlbnRhKGBbRVhFLSR7ZXhlY3V0aW9uSWR9XWApfSAke2N5YW4oYm9sZChpc1JlZnJlc2ggPyAnVG9rZW4gUmVmcmVzaCcgOiAnUGxhdGZvcm0gQXV0aGVudGljYXRpb24nKSl9YCk7XG4gICAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICAgIHByaW50SW5mbyhpc1JlZnJlc2ggPyAnUmVmcmVzaGluZyBhY2Nlc3MgdG9rZW4nIDogJ0F1dGhlbnRpY2F0aW5nJywge1xuICAgICAgICAgICAgLi4uKGlkZW50aWZpZXIgPyB7IGlkZW50aWZpZXIgfSA6IHt9KSxcbiAgICAgICAgICAgIHVybDogb3B0aW9ucy51cmwsXG4gICAgICAgICAgICB2ZXJpZnlTc2w6IG9wdGlvbnMudmVyaWZ5U3NsLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaHR0cHNBZ2VudCA9IGNyZWRlbnRpYWxIdHRwc0FnZW50KG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICBsZXQgdG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAoaXNSZWZyZXNoKSB7XG4gICAgICAgICAgY29uc3QgcmVmcmVzaFVybCA9IGAke29wdGlvbnMudXJsfS9hcGkvYXV0aC9yZWZyZXNoYDtcbiAgICAgICAgICBwcmludERlYnVnKCdQT1NUJywgeyB1cmw6IHJlZnJlc2hVcmwgfSk7XG5cbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8QXV0aFJlc3BvbnNlPihcbiAgICAgICAgICAgIHJlZnJlc2hVcmwsXG4gICAgICAgICAgICB7IHJlZnJlc2hUb2tlbjogb3B0aW9ucy5yZWZyZXNoIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICAgICAgICBodHRwc0FnZW50LFxuICAgICAgICAgICAgICB0aW1lb3V0OiBUSU1FT1VUUy5IVFRQX1JFUVVFU1QsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0b2tlbiA9IHJlc3BvbnNlLmRhdGE/LmRhdGE/LmFjY2Vzc1Rva2VuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGlkZW50aWZpZXIvcGFzc3dvcmQgdmFsaWRhdGVkIG5vbi1udWxsIGFib3ZlICh0aGUgYCFpc1JlZnJlc2hgIGd1YXJkKS5cbiAgICAgICAgICB0b2tlbiA9IGF3YWl0IHBvc3RMb2dpbih7XG4gICAgICAgICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllciEsXG4gICAgICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQhLFxuICAgICAgICAgICAgaHR0cHNBZ2VudCxcbiAgICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICBpZiAoIWlzUmVmcmVzaCkgcmVjb3JkQXV0aEZhaWx1cmUoaWRlbnRpZmllciwgb3B0aW9ucy51cmwpO1xuICAgICAgICAgIHByaW50RXJyb3IoYCR7aXNSZWZyZXNoID8gJ1Rva2VuIHJlZnJlc2gnIDogJ0xvZ2luJ30gZmFpbGVkOiBubyBhY2Nlc3MgdG9rZW4gaW4gcmVzcG9uc2VgKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc1JlZnJlc2gpIHJlY29yZEF1dGhTdWNjZXNzKGlkZW50aWZpZXIsIG9wdGlvbnMudXJsKTtcblxuICAgICAgICAvLyBTd2l0Y2ggdG8gYSBzcGVjaWZpYyBvcmdhbml6YXRpb24gaWYgLS1vcmcgaXMgcHJvdmlkZWRcbiAgICAgICAgaWYgKG9wdGlvbnMub3JnKSB7XG4gICAgICAgICAgaWYgKCFxdWlldCkge1xuICAgICAgICAgICAgcHJpbnRJbmZvKCdTd2l0Y2hpbmcgdG8gb3JnYW5pemF0aW9uJywgeyBvcmdJZDogb3B0aW9ucy5vcmcgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdG9rZW4gPSBhd2FpdCBzd2l0Y2hPcmdhbml6YXRpb24oe1xuICAgICAgICAgICAgdXJsOiBvcHRpb25zLnVybCxcbiAgICAgICAgICAgIG9yZ0lkOiBvcHRpb25zLm9yZyxcbiAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiB0b2tlbixcbiAgICAgICAgICAgIGh0dHBzQWdlbnQsXG4gICAgICAgICAgICB0aW1lb3V0OiBUSU1FT1VUUy5IVFRQX1JFUVVFU1QsXG4gICAgICAgICAgICBxdWlldCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcXVpZXQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgICAgcHJpbnRTdWNjZXNzKGlzUmVmcmVzaCA/ICdUb2tlbiByZWZyZXNoZWQgc3VjY2Vzc2Z1bGx5JyA6ICdMb2dpbiBzdWNjZXNzZnVsJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYGV4cG9ydCBQTEFURk9STV9UT0tFTj0ke3Rva2VufWApO1xuXG4gICAgICAgIGlmICghcXVpZXQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgICAgcHJpbnRJbmZvKCdUaXA6IFJ1biB0aGUgZm9sbG93aW5nIHRvIHNldCB0aGUgdG9rZW4gaW4geW91ciBzaGVsbDonKTtcbiAgICAgICAgICBjb25zdCBvcmdGbGFnID0gb3B0aW9ucy5vcmcgPyBgIC0tb3JnICR7b3B0aW9ucy5vcmd9YCA6ICcnO1xuICAgICAgICAgIGlmIChpc1JlZnJlc2gpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGdyZWVuKGAgIGV2YWwgJChwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4gLS1yZWZyZXNoICc8cmVmcmVzaC10b2tlbj4nJHtvcmdGbGFnfSAtLXF1aWV0KWApKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZ3JlZW4oYCAgZXZhbCAkKHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtdSAke2lkZW50aWZpZXJ9IC1wICcqKionJHtvcmdGbGFnfSAtLXF1aWV0KWApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIEtleSB0aGUgZmFpbHVyZSB0byAoaWRlbnRpZmllciwgdXJsKSBsaWtlIHRoZSBjaGVjay9zdWNjZXNzL25vLXRva2VuXG4gICAgICAgIC8vIHBhdGhzIOKAlCBhIGJhZC1wYXNzd29yZCA0MDEgdGhyb3dzIHRvIGhlcmUsIHNvIGtleWluZyBpdCB0byB0aGUgc2hhcmVkXG4gICAgICAgIC8vIGRlZmF1bHQgYnVja2V0IG1lYW50IGJydXRlLWZvcmNlIGF0dGVtcHRzIG5ldmVyIGFjY3J1ZWQgdG93YXJkIGxvY2tvdXQuXG4gICAgICAgIGlmICghaXNSZWZyZXNoKSByZWNvcmRBdXRoRmFpbHVyZShpZGVudGlmaWVyLCBvcHRpb25zLnVybCk7XG4gICAgICAgIC8vIFByb3ZpZGUgYSBjbGVhciBmYWlsdXJlIG1lc3NhZ2UgZm9yIGF1dGggZXJyb3JzXG4gICAgICAgIGlmIChheGlvcy5pc0F4aW9zRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdHVzID0gZXJyb3IucmVzcG9uc2U/LnN0YXR1cztcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gKGVycm9yLnJlc3BvbnNlPy5kYXRhIGFzIHsgbWVzc2FnZT86IHN0cmluZyB9KT8ubWVzc2FnZTtcblxuICAgICAgICAgIHByaW50RXJyb3IoYCR7aXNSZWZyZXNoID8gJ1Rva2VuIHJlZnJlc2gnIDogJ0xvZ2luJ30gZmFpbGVkYCwge1xuICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXMgPz8gJ25vIHJlc3BvbnNlJyxcbiAgICAgICAgICAgIC4uLihtZXNzYWdlID8geyBtZXNzYWdlIH0gOiB7fSksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTiwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgIGNvbW1hbmQ6ICdsb2dpbicsXG4gICAgICAgICAgICBleGVjdXRpb25JZCxcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IG9wdGlvbnMuaWRlbnRpZmllcixcbiAgICAgICAgICAgIHVybDogb3B0aW9ucy51cmwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import https from 'https';
|
|
2
|
+
/**
|
|
3
|
+
* Login / refresh / switch-org response — every platform auth endpoint returns
|
|
4
|
+
* the session tokens under this envelope.
|
|
5
|
+
*/
|
|
6
|
+
export interface AuthResponse {
|
|
7
|
+
success: boolean;
|
|
8
|
+
data: {
|
|
9
|
+
accessToken: string;
|
|
10
|
+
refreshToken: string;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Guard the credential-transmitting commands (`login`, `create-pat`) against
|
|
15
|
+
* disabling TLS verification in production. These POST plaintext passwords/JWTs,
|
|
16
|
+
* so a MITM on a `prod + --no-verify-ssl` run would harvest them.
|
|
17
|
+
*
|
|
18
|
+
* Unlike {@link assertSslDisableAllowed} (which throws — for paths already inside
|
|
19
|
+
* a try/catch), this prints and hard-exits, matching the pre-flight checks these
|
|
20
|
+
* commands run before their try block. In non-production it is a no-op, so
|
|
21
|
+
* `--no-verify-ssl` still works against self-signed dev platforms.
|
|
22
|
+
*/
|
|
23
|
+
export declare function assertCredentialTlsAllowed(verifySsl: boolean | undefined): void;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve credentials from flags, falling back to the
|
|
26
|
+
* PLATFORM_IDENTIFIER / PLATFORM_PASSWORD env vars (so the password need not
|
|
27
|
+
* appear in shell history / `ps`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveCredentials(options: {
|
|
30
|
+
identifier?: string;
|
|
31
|
+
password?: string;
|
|
32
|
+
}): {
|
|
33
|
+
identifier?: string;
|
|
34
|
+
password?: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Build the https agent used by the credential commands. `--verify-ssl`
|
|
38
|
+
* defaults to on; only an explicit `--no-verify-ssl` relaxes it (and only
|
|
39
|
+
* outside production, enforced by {@link assertCredentialTlsAllowed}).
|
|
40
|
+
*/
|
|
41
|
+
export declare function credentialHttpsAgent(verifySsl: boolean | undefined): https.Agent;
|
|
42
|
+
/**
|
|
43
|
+
* POST /api/auth/login and return the access token (or `undefined` if the
|
|
44
|
+
* response carried none). Rate-limit accounting (record success/failure) and
|
|
45
|
+
* the no-token exit are intentionally left to the caller so each command keeps
|
|
46
|
+
* its exact lockout semantics.
|
|
47
|
+
*/
|
|
48
|
+
export declare function postLogin(params: {
|
|
49
|
+
url: string;
|
|
50
|
+
identifier: string;
|
|
51
|
+
password: string;
|
|
52
|
+
httpsAgent: https.Agent;
|
|
53
|
+
timeout: number;
|
|
54
|
+
}): Promise<string | undefined>;
|
|
55
|
+
/**
|
|
56
|
+
* POST /api/auth/switch-org with the current access token and return the new,
|
|
57
|
+
* org-scoped access token. Prints a success line (unless `quiet`) and hard-exits
|
|
58
|
+
* on a missing token — both credential commands treat a failed switch the same.
|
|
59
|
+
*/
|
|
60
|
+
export declare function switchOrganization(params: {
|
|
61
|
+
url: string;
|
|
62
|
+
orgId: string;
|
|
63
|
+
accessToken: string;
|
|
64
|
+
httpsAgent: https.Agent;
|
|
65
|
+
timeout: number;
|
|
66
|
+
quiet: boolean;
|
|
67
|
+
}): Promise<string>;
|
|
68
|
+
//# sourceMappingURL=auth-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-utils.d.ts","sourceRoot":"","sources":["../../src/utils/auth-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAK/E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAKA;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,KAAK,CAEhF;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS9B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import https from 'https';
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
import { ERROR_CODES } from './error-handler.js';
|
|
6
|
+
import { printDebug, printError, printSuccess } from './output-utils.js';
|
|
7
|
+
import { isProductionEnv } from './tls.js';
|
|
8
|
+
/**
|
|
9
|
+
* Guard the credential-transmitting commands (`login`, `create-pat`) against
|
|
10
|
+
* disabling TLS verification in production. These POST plaintext passwords/JWTs,
|
|
11
|
+
* so a MITM on a `prod + --no-verify-ssl` run would harvest them.
|
|
12
|
+
*
|
|
13
|
+
* Unlike {@link assertSslDisableAllowed} (which throws — for paths already inside
|
|
14
|
+
* a try/catch), this prints and hard-exits, matching the pre-flight checks these
|
|
15
|
+
* commands run before their try block. In non-production it is a no-op, so
|
|
16
|
+
* `--no-verify-ssl` still works against self-signed dev platforms.
|
|
17
|
+
*/
|
|
18
|
+
export function assertCredentialTlsAllowed(verifySsl) {
|
|
19
|
+
if (verifySsl === false && isProductionEnv()) {
|
|
20
|
+
printError('Refusing to disable TLS verification in production (NODE_ENV=production) — credentials must not be transmitted over an unverified connection. Use a valid certificate, or unset NODE_ENV for local/self-signed development.');
|
|
21
|
+
process.exit(ERROR_CODES.AUTHENTICATION);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve credentials from flags, falling back to the
|
|
26
|
+
* PLATFORM_IDENTIFIER / PLATFORM_PASSWORD env vars (so the password need not
|
|
27
|
+
* appear in shell history / `ps`).
|
|
28
|
+
*/
|
|
29
|
+
export function resolveCredentials(options) {
|
|
30
|
+
return {
|
|
31
|
+
identifier: options.identifier || process.env.PLATFORM_IDENTIFIER,
|
|
32
|
+
password: options.password || process.env.PLATFORM_PASSWORD,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build the https agent used by the credential commands. `--verify-ssl`
|
|
37
|
+
* defaults to on; only an explicit `--no-verify-ssl` relaxes it (and only
|
|
38
|
+
* outside production, enforced by {@link assertCredentialTlsAllowed}).
|
|
39
|
+
*/
|
|
40
|
+
export function credentialHttpsAgent(verifySsl) {
|
|
41
|
+
return new https.Agent({ rejectUnauthorized: verifySsl ?? true });
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* POST /api/auth/login and return the access token (or `undefined` if the
|
|
45
|
+
* response carried none). Rate-limit accounting (record success/failure) and
|
|
46
|
+
* the no-token exit are intentionally left to the caller so each command keeps
|
|
47
|
+
* its exact lockout semantics.
|
|
48
|
+
*/
|
|
49
|
+
export async function postLogin(params) {
|
|
50
|
+
const loginUrl = `${params.url}/api/auth/login`;
|
|
51
|
+
printDebug('POST', { url: loginUrl });
|
|
52
|
+
const response = await axios.post(loginUrl, { identifier: params.identifier, password: params.password }, { headers: { 'Content-Type': 'application/json' }, httpsAgent: params.httpsAgent, timeout: params.timeout });
|
|
53
|
+
return response.data?.data?.accessToken;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* POST /api/auth/switch-org with the current access token and return the new,
|
|
57
|
+
* org-scoped access token. Prints a success line (unless `quiet`) and hard-exits
|
|
58
|
+
* on a missing token — both credential commands treat a failed switch the same.
|
|
59
|
+
*/
|
|
60
|
+
export async function switchOrganization(params) {
|
|
61
|
+
const switchUrl = `${params.url}/api/auth/switch-org`;
|
|
62
|
+
printDebug('POST', { url: switchUrl });
|
|
63
|
+
const response = await axios.post(switchUrl, { organizationId: params.orgId }, {
|
|
64
|
+
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${params.accessToken}` },
|
|
65
|
+
httpsAgent: params.httpsAgent,
|
|
66
|
+
timeout: params.timeout,
|
|
67
|
+
});
|
|
68
|
+
const switched = response.data?.data?.accessToken;
|
|
69
|
+
if (!switched) {
|
|
70
|
+
printError('Organization switch failed: no access token in response');
|
|
71
|
+
process.exit(ERROR_CODES.AUTHENTICATION);
|
|
72
|
+
}
|
|
73
|
+
if (!params.quiet)
|
|
74
|
+
printSuccess(`Switched to organization ${params.orgId}`);
|
|
75
|
+
return switched;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdXRoLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQWMzQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsU0FBOEI7SUFDdkUsSUFBSSxTQUFTLEtBQUssS0FBSyxJQUFJLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFDN0MsVUFBVSxDQUFDLDZOQUE2TixDQUFDLENBQUM7UUFDMU8sT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0MsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQW1EO0lBSXBGLE9BQU87UUFDTCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtRQUNqRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQjtLQUM1RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBOEI7SUFDakUsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxNQU0vQjtJQUNDLE1BQU0sUUFBUSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7SUFDaEQsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FDL0IsUUFBUSxFQUNSLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFDNUQsRUFBRSxPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUM1RyxDQUFDO0lBQ0YsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUM7QUFDMUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGtCQUFrQixDQUFDLE1BT3hDO0lBQ0MsTUFBTSxTQUFTLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxzQkFBc0IsQ0FBQztJQUN0RCxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUMvQixTQUFTLEVBQ1QsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUNoQztRQUNFLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsVUFBVSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDaEcsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1FBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztLQUN4QixDQUNGLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUM7SUFDbEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsVUFBVSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7UUFDdEUsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztRQUFFLFlBQVksQ0FBQyw0QkFBNEIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUUsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IEVSUk9SX0NPREVTIH0gZnJvbSAnLi9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50RGVidWcsIHByaW50RXJyb3IsIHByaW50U3VjY2VzcyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IGlzUHJvZHVjdGlvbkVudiB9IGZyb20gJy4vdGxzLmpzJztcblxuLyoqXG4gKiBMb2dpbiAvIHJlZnJlc2ggLyBzd2l0Y2gtb3JnIHJlc3BvbnNlIOKAlCBldmVyeSBwbGF0Zm9ybSBhdXRoIGVuZHBvaW50IHJldHVybnNcbiAqIHRoZSBzZXNzaW9uIHRva2VucyB1bmRlciB0aGlzIGVudmVsb3BlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhSZXNwb25zZSB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE6IHtcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIEd1YXJkIHRoZSBjcmVkZW50aWFsLXRyYW5zbWl0dGluZyBjb21tYW5kcyAoYGxvZ2luYCwgYGNyZWF0ZS1wYXRgKSBhZ2FpbnN0XG4gKiBkaXNhYmxpbmcgVExTIHZlcmlmaWNhdGlvbiBpbiBwcm9kdWN0aW9uLiBUaGVzZSBQT1NUIHBsYWludGV4dCBwYXNzd29yZHMvSldUcyxcbiAqIHNvIGEgTUlUTSBvbiBhIGBwcm9kICsgLS1uby12ZXJpZnktc3NsYCBydW4gd291bGQgaGFydmVzdCB0aGVtLlxuICpcbiAqIFVubGlrZSB7QGxpbmsgYXNzZXJ0U3NsRGlzYWJsZUFsbG93ZWR9ICh3aGljaCB0aHJvd3Mg4oCUIGZvciBwYXRocyBhbHJlYWR5IGluc2lkZVxuICogYSB0cnkvY2F0Y2gpLCB0aGlzIHByaW50cyBhbmQgaGFyZC1leGl0cywgbWF0Y2hpbmcgdGhlIHByZS1mbGlnaHQgY2hlY2tzIHRoZXNlXG4gKiBjb21tYW5kcyBydW4gYmVmb3JlIHRoZWlyIHRyeSBibG9jay4gSW4gbm9uLXByb2R1Y3Rpb24gaXQgaXMgYSBuby1vcCwgc29cbiAqIGAtLW5vLXZlcmlmeS1zc2xgIHN0aWxsIHdvcmtzIGFnYWluc3Qgc2VsZi1zaWduZWQgZGV2IHBsYXRmb3Jtcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydENyZWRlbnRpYWxUbHNBbGxvd2VkKHZlcmlmeVNzbDogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICBpZiAodmVyaWZ5U3NsID09PSBmYWxzZSAmJiBpc1Byb2R1Y3Rpb25FbnYoKSkge1xuICAgIHByaW50RXJyb3IoJ1JlZnVzaW5nIHRvIGRpc2FibGUgVExTIHZlcmlmaWNhdGlvbiBpbiBwcm9kdWN0aW9uIChOT0RFX0VOVj1wcm9kdWN0aW9uKSDigJQgY3JlZGVudGlhbHMgbXVzdCBub3QgYmUgdHJhbnNtaXR0ZWQgb3ZlciBhbiB1bnZlcmlmaWVkIGNvbm5lY3Rpb24uIFVzZSBhIHZhbGlkIGNlcnRpZmljYXRlLCBvciB1bnNldCBOT0RFX0VOViBmb3IgbG9jYWwvc2VsZi1zaWduZWQgZGV2ZWxvcG1lbnQuJyk7XG4gICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlc29sdmUgY3JlZGVudGlhbHMgZnJvbSBmbGFncywgZmFsbGluZyBiYWNrIHRvIHRoZVxuICogUExBVEZPUk1fSURFTlRJRklFUiAvIFBMQVRGT1JNX1BBU1NXT1JEIGVudiB2YXJzIChzbyB0aGUgcGFzc3dvcmQgbmVlZCBub3RcbiAqIGFwcGVhciBpbiBzaGVsbCBoaXN0b3J5IC8gYHBzYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ3JlZGVudGlhbHMob3B0aW9uczogeyBpZGVudGlmaWVyPzogc3RyaW5nOyBwYXNzd29yZD86IHN0cmluZyB9KToge1xuICBpZGVudGlmaWVyPzogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbn0ge1xuICByZXR1cm4ge1xuICAgIGlkZW50aWZpZXI6IG9wdGlvbnMuaWRlbnRpZmllciB8fCBwcm9jZXNzLmVudi5QTEFURk9STV9JREVOVElGSUVSLFxuICAgIHBhc3N3b3JkOiBvcHRpb25zLnBhc3N3b3JkIHx8IHByb2Nlc3MuZW52LlBMQVRGT1JNX1BBU1NXT1JELFxuICB9O1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBodHRwcyBhZ2VudCB1c2VkIGJ5IHRoZSBjcmVkZW50aWFsIGNvbW1hbmRzLiBgLS12ZXJpZnktc3NsYFxuICogZGVmYXVsdHMgdG8gb247IG9ubHkgYW4gZXhwbGljaXQgYC0tbm8tdmVyaWZ5LXNzbGAgcmVsYXhlcyBpdCAoYW5kIG9ubHlcbiAqIG91dHNpZGUgcHJvZHVjdGlvbiwgZW5mb3JjZWQgYnkge0BsaW5rIGFzc2VydENyZWRlbnRpYWxUbHNBbGxvd2VkfSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVkZW50aWFsSHR0cHNBZ2VudCh2ZXJpZnlTc2w6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBodHRwcy5BZ2VudCB7XG4gIHJldHVybiBuZXcgaHR0cHMuQWdlbnQoeyByZWplY3RVbmF1dGhvcml6ZWQ6IHZlcmlmeVNzbCA/PyB0cnVlIH0pO1xufVxuXG4vKipcbiAqIFBPU1QgL2FwaS9hdXRoL2xvZ2luIGFuZCByZXR1cm4gdGhlIGFjY2VzcyB0b2tlbiAob3IgYHVuZGVmaW5lZGAgaWYgdGhlXG4gKiByZXNwb25zZSBjYXJyaWVkIG5vbmUpLiBSYXRlLWxpbWl0IGFjY291bnRpbmcgKHJlY29yZCBzdWNjZXNzL2ZhaWx1cmUpIGFuZFxuICogdGhlIG5vLXRva2VuIGV4aXQgYXJlIGludGVudGlvbmFsbHkgbGVmdCB0byB0aGUgY2FsbGVyIHNvIGVhY2ggY29tbWFuZCBrZWVwc1xuICogaXRzIGV4YWN0IGxvY2tvdXQgc2VtYW50aWNzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9zdExvZ2luKHBhcmFtczoge1xuICB1cmw6IHN0cmluZztcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBodHRwc0FnZW50OiBodHRwcy5BZ2VudDtcbiAgdGltZW91dDogbnVtYmVyO1xufSk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IGxvZ2luVXJsID0gYCR7cGFyYW1zLnVybH0vYXBpL2F1dGgvbG9naW5gO1xuICBwcmludERlYnVnKCdQT1NUJywgeyB1cmw6IGxvZ2luVXJsIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8QXV0aFJlc3BvbnNlPihcbiAgICBsb2dpblVybCxcbiAgICB7IGlkZW50aWZpZXI6IHBhcmFtcy5pZGVudGlmaWVyLCBwYXNzd29yZDogcGFyYW1zLnBhc3N3b3JkIH0sXG4gICAgeyBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSwgaHR0cHNBZ2VudDogcGFyYW1zLmh0dHBzQWdlbnQsIHRpbWVvdXQ6IHBhcmFtcy50aW1lb3V0IH0sXG4gICk7XG4gIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhPy5hY2Nlc3NUb2tlbjtcbn1cblxuLyoqXG4gKiBQT1NUIC9hcGkvYXV0aC9zd2l0Y2gtb3JnIHdpdGggdGhlIGN1cnJlbnQgYWNjZXNzIHRva2VuIGFuZCByZXR1cm4gdGhlIG5ldyxcbiAqIG9yZy1zY29wZWQgYWNjZXNzIHRva2VuLiBQcmludHMgYSBzdWNjZXNzIGxpbmUgKHVubGVzcyBgcXVpZXRgKSBhbmQgaGFyZC1leGl0c1xuICogb24gYSBtaXNzaW5nIHRva2VuIOKAlCBib3RoIGNyZWRlbnRpYWwgY29tbWFuZHMgdHJlYXQgYSBmYWlsZWQgc3dpdGNoIHRoZSBzYW1lLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3dpdGNoT3JnYW5pemF0aW9uKHBhcmFtczoge1xuICB1cmw6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgaHR0cHNBZ2VudDogaHR0cHMuQWdlbnQ7XG4gIHRpbWVvdXQ6IG51bWJlcjtcbiAgcXVpZXQ6IGJvb2xlYW47XG59KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgc3dpdGNoVXJsID0gYCR7cGFyYW1zLnVybH0vYXBpL2F1dGgvc3dpdGNoLW9yZ2A7XG4gIHByaW50RGVidWcoJ1BPU1QnLCB7IHVybDogc3dpdGNoVXJsIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8QXV0aFJlc3BvbnNlPihcbiAgICBzd2l0Y2hVcmwsXG4gICAgeyBvcmdhbml6YXRpb25JZDogcGFyYW1zLm9yZ0lkIH0sXG4gICAge1xuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHtwYXJhbXMuYWNjZXNzVG9rZW59YCB9LFxuICAgICAgaHR0cHNBZ2VudDogcGFyYW1zLmh0dHBzQWdlbnQsXG4gICAgICB0aW1lb3V0OiBwYXJhbXMudGltZW91dCxcbiAgICB9LFxuICApO1xuICBjb25zdCBzd2l0Y2hlZCA9IHJlc3BvbnNlLmRhdGE/LmRhdGE/LmFjY2Vzc1Rva2VuO1xuICBpZiAoIXN3aXRjaGVkKSB7XG4gICAgcHJpbnRFcnJvcignT3JnYW5pemF0aW9uIHN3aXRjaCBmYWlsZWQ6IG5vIGFjY2VzcyB0b2tlbiBpbiByZXNwb25zZScpO1xuICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gIH1cbiAgaWYgKCFwYXJhbXMucXVpZXQpIHByaW50U3VjY2VzcyhgU3dpdGNoZWQgdG8gb3JnYW5pemF0aW9uICR7cGFyYW1zLm9yZ0lkfWApO1xuICByZXR1cm4gc3dpdGNoZWQ7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
43
43
|
"yaml": "2.9.0",
|
|
44
44
|
"zod": "4.4.3",
|
|
45
|
-
"@pipeline-builder/api-core": "3.4.
|
|
46
|
-
"@pipeline-builder/
|
|
47
|
-
"@pipeline-builder/
|
|
45
|
+
"@pipeline-builder/api-core": "3.4.112",
|
|
46
|
+
"@pipeline-builder/ai-core": "3.4.112",
|
|
47
|
+
"@pipeline-builder/pipeline-core": "3.4.131"
|
|
48
48
|
},
|
|
49
49
|
"keywords": [
|
|
50
50
|
"ci-cd",
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
"access": "public",
|
|
100
100
|
"registry": "https://registry.npmjs.org/"
|
|
101
101
|
},
|
|
102
|
-
"version": "3.4.
|
|
102
|
+
"version": "3.4.170",
|
|
103
103
|
"bugs": {
|
|
104
104
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
105
105
|
},
|