@pipeline-builder/ai-core 4.0.3 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/provider-registry.js +43 -8
- package/package.json +2 -2
package/lib/provider-registry.js
CHANGED
|
@@ -46,14 +46,43 @@ const PROVIDER_FACTORIES = {
|
|
|
46
46
|
/** Providers that authenticate WITHOUT an API key (Bedrock uses the IAM role). */
|
|
47
47
|
const KEYLESS_PROVIDERS = new Set(['amazon-bedrock']);
|
|
48
48
|
/**
|
|
49
|
-
* Whether
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
49
|
+
* Whether the runtime has an AWS credential SOURCE the provider chain can
|
|
50
|
+
* actually resolve.
|
|
51
|
+
*
|
|
52
|
+
* A configured region is NOT such a signal: every deploy target sets
|
|
53
|
+
* `AWS_REGION` (it is needed for pipeline synthesis), including minikube and
|
|
54
|
+
* docker-compose, where nothing grants the pod AWS credentials. Gating Bedrock
|
|
55
|
+
* on the region alone therefore advertised it on local installs as the ONLY
|
|
56
|
+
* provider, `resolveAskModel` picked it as the default, and every Ask turn died
|
|
57
|
+
* with "Could not load credentials from any providers" — an error about AWS
|
|
58
|
+
* that has nothing to do with what the user asked.
|
|
59
|
+
*
|
|
60
|
+
* Each check below corresponds to a way `fromNodeProviderChain()` can succeed:
|
|
61
|
+
* - static keys in the environment;
|
|
62
|
+
* - EKS Pod Identity / ECS task role (the agent injects a credentials URI);
|
|
63
|
+
* - IRSA (a projected web-identity token file);
|
|
64
|
+
* - a shared-config profile, for a developer running against real AWS.
|
|
65
|
+
*
|
|
66
|
+
* The EC2 instance profile is the one case with NO environment marker — its
|
|
67
|
+
* credentials come from IMDS at call time — so it takes the explicit
|
|
68
|
+
* `BEDROCK_ENABLED=true` opt-in rather than being guessed at.
|
|
69
|
+
*/
|
|
70
|
+
function awsCredentialSourceConfigured() {
|
|
71
|
+
return !!(process.env.AWS_ACCESS_KEY_ID
|
|
72
|
+
|| process.env.AWS_CONTAINER_CREDENTIALS_FULL_URI
|
|
73
|
+
|| process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
|
|
74
|
+
|| process.env.AWS_WEB_IDENTITY_TOKEN_FILE
|
|
75
|
+
|| process.env.AWS_PROFILE
|
|
76
|
+
|| process.env.BEDROCK_ENABLED === 'true');
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Whether a keyless provider (Bedrock) should be advertised. It authenticates
|
|
80
|
+
* with the runtime's IAM role rather than an API key, so it needs BOTH a region
|
|
81
|
+
* to call and a resolvable credential source — see
|
|
82
|
+
* {@link awsCredentialSourceConfigured} for why the region alone is not enough.
|
|
54
83
|
*/
|
|
55
84
|
function keylessProviderAvailable() {
|
|
56
|
-
return !!(process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION);
|
|
85
|
+
return !!(process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION) && awsCredentialSourceConfigured();
|
|
57
86
|
}
|
|
58
87
|
/**
|
|
59
88
|
* Lazily initialize the provider registry from environment variables. Key-based
|
|
@@ -70,7 +99,13 @@ function initRegistry() {
|
|
|
70
99
|
continue;
|
|
71
100
|
const envVar = AI_PROVIDER_ENV_VARS[id];
|
|
72
101
|
const apiKey = envVar ? process.env[envVar] : undefined;
|
|
73
|
-
|
|
102
|
+
// A keyless provider is gated SOLELY by its own availability check — never
|
|
103
|
+
// by the presence of `envVar`. Bedrock's mapped env var is
|
|
104
|
+
// `AWS_ACCESS_KEY_ID`, so the key path would otherwise register it whenever
|
|
105
|
+
// static keys exist, skipping the region requirement and producing a
|
|
106
|
+
// provider that fails at call time for want of a region.
|
|
107
|
+
const usable = KEYLESS_PROVIDERS.has(id) ? keylessProviderAvailable() : !!apiKey;
|
|
108
|
+
if (usable) {
|
|
74
109
|
registry.set(id, { info, createModel: factory(apiKey) });
|
|
75
110
|
}
|
|
76
111
|
}
|
|
@@ -156,4 +191,4 @@ export function createModelWithKey(providerId, modelId, apiKey) {
|
|
|
156
191
|
}
|
|
157
192
|
return factory(apiKey)(modelId);
|
|
158
193
|
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlkZXItcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsNkJBQTZCLEVBQzdCLG1CQUFtQixFQUNuQiwyQkFBMkIsR0FHNUIsTUFBTSw0QkFBNEIsQ0FBQztBQVdwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztBQUNsRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFFeEIsaUZBQWlGO0FBQ2pGLGtGQUFrRjtBQUNsRixpRUFBaUU7QUFDakUsTUFBTSxrQkFBa0IsR0FBeUU7SUFDL0YsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDdEQsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDaEQsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0Is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SyxDQUNiLGdCQUFnQixVQUFVLGlFQUFpRTtnQkFDekYsb0ZBQW9GLENBQ3ZGLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBjcmVhdGVBbWF6b25CZWRyb2NrIH0gZnJvbSAnQGFpLXNkay9hbWF6b24tYmVkcm9jayc7XG5pbXBvcnQgeyBjcmVhdGVBbnRocm9waWMgfSBmcm9tICdAYWktc2RrL2FudGhyb3BpYyc7XG5pbXBvcnQgeyBjcmVhdGVHb29nbGVHZW5lcmF0aXZlQUkgfSBmcm9tICdAYWktc2RrL2dvb2dsZSc7XG5pbXBvcnQgeyBjcmVhdGVPcGVuQUkgfSBmcm9tICdAYWktc2RrL29wZW5haSc7XG5pbXBvcnQgeyBjcmVhdGVPcGVuQUlDb21wYXRpYmxlIH0gZnJvbSAnQGFpLXNkay9vcGVuYWktY29tcGF0aWJsZSc7XG5pbXBvcnQgeyBjcmVhdGVYYWkgfSBmcm9tICdAYWktc2RrL3hhaSc7XG5pbXBvcnQgeyBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4gfSBmcm9tICdAYXdzLXNkay9jcmVkZW50aWFsLXByb3ZpZGVycyc7XG5pbXBvcnQge1xuICBBSV9QUk9WSURFUl9DQVRBTE9HLFxuICBBSV9QUk9WSURFUl9FTlZfVkFSUyxcbiAgT1BFTkFJX0NPTVBBVElCTEVfUFJPVklERVJfSUQsXG4gIGdldEFJUHJvdmlkZXJNb2RlbHMsXG4gIGdldE9wZW5BSUNvbXBhdGlibGVQcm92aWRlcixcbiAgdHlwZSBBSVByb3ZpZGVySW5mbyxcbiAgdHlwZSBBSU1vZGVsSW5mbyxcbn0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnYWknO1xuXG4vLyBQcm92aWRlciBSZWdpc3RyeVxuXG4vKiogUmVnaXN0ZXJlZCBwcm92aWRlciB3aXRoIG1vZGVsIGZhY3RvcnkgZnVuY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyRW50cnkge1xuICBpbmZvOiBBSVByb3ZpZGVySW5mbztcbiAgY3JlYXRlTW9kZWw6IChtb2RlbElkOiBzdHJpbmcpID0+IExhbmd1YWdlTW9kZWw7XG59XG5cbmNvbnN0IHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIFByb3ZpZGVyRW50cnk+KCk7XG5sZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuLy8gUHJvdmlkZXIg4oaSIG1vZGVsLWZhY3RvcnkgbWFwLiBga2V5YCBpcyBvcHRpb25hbCBzbyBrZXlsZXNzIHByb3ZpZGVycyAoQmVkcm9jayxcbi8vIHZpYSB0aGUgcnVudGltZSBJQU0gcm9sZSkgYW5kIGtleS1iYXNlZCBwcm92aWRlcnMgc2hhcmUgb25lIHNpZ25hdHVyZS4gRGVjbGFyZWRcbi8vIG9uY2UgYW5kIGNvbnN1bWVkIGJ5IEJPVEggaW5pdFJlZ2lzdHJ5IGFuZCBjcmVhdGVNb2RlbFdpdGhLZXkuXG5jb25zdCBQUk9WSURFUl9GQUNUT1JJRVM6IFJlY29yZDxzdHJpbmcsIChrZXk/OiBzdHJpbmcpID0+IChtb2RlbElkOiBzdHJpbmcpID0+IExhbmd1YWdlTW9kZWw+ID0ge1xuICAnYW50aHJvcGljJzogKGtleSkgPT4gY3JlYXRlQW50aHJvcGljKHsgYXBpS2V5OiBrZXkgfSksXG4gICdvcGVuYWknOiAoa2V5KSA9PiBjcmVhdGVPcGVuQUkoeyBhcGlLZXk6IGtleSB9KSxcbiAgJ2dvb2dsZSc6IChrZXkpID0+IGNyZWF0ZUdvb2dsZUdlbmVyYXRpdmVBSSh7IGFwaUtleToga2V5IH0pLFxuICAneGFpJzogKGtleSkgPT4gY3JlYXRlWGFpKHsgYXBpS2V5OiBrZXkgfSksXG4gIC8vIEJlZHJvY2sgYXV0aGVudGljYXRlcyB3aXRoIHRoZSBSVU5USU1FJ3MgSUFNIHJvbGUsIGFuZCB0aGUgYWktc2RrIHByb3ZpZGVyXG4gIC8vIGRvZXMgTk9UIHdhbGsgdGhlIEFXUyBjcmVkZW50aWFsIGNoYWluIG9uIGl0cyBvd24g4oCUIGJhcmUgYGNyZWF0ZUFtYXpvbkJlZHJvY2soKWBcbiAgLy8gcmVhZHMgb25seSBgQVdTX0FDQ0VTU19LRVlfSURgL2BBV1NfU0VDUkVUX0FDQ0VTU19LRVlgIGFuZCBvdGhlcndpc2UgdGhyb3dzXG4gIC8vIFwiQVdTIFNpZ1Y0IGF1dGhlbnRpY2F0aW9uIHJlcXVpcmVzIEFXUyBjcmVkZW50aWFsc1wiIGF0IGNhbGwgdGltZS4gSGFuZGluZyBpdFxuICAvLyB0aGUgc3RhbmRhcmQgY2hhaW4gcmVzb2x2ZXMgRUtTIFBvZCBJZGVudGl0eSwgSVJTQSwgRUNTIHRhc2sgcm9sZXMsIHRoZSBFQzJcbiAgLy8gaW5zdGFuY2UgcHJvZmlsZSwgU1NPIGFuZCBzdGF0aWMgZW52IGtleXMg4oCUIGkuZS4gZXZlcnkgd2F5IHRoaXMgcGxhdGZvcm0gaXNcbiAgLy8gYWN0dWFsbHkgZGVwbG95ZWQuIEJ1aWx0IG9uY2UgcGVyIGZhY3RvcnkgY2FsbDsgdGhlIGNoYWluIGNhY2hlcyBpbnRlcm5hbGx5XG4gIC8vIGFuZCByZWZyZXNoZXMgZXhwaXJpbmcgcm9sZSBjcmVkZW50aWFscyBvbiBpdHMgb3duLlxuICAnYW1hem9uLWJlZHJvY2snOiAoKSA9PiBjcmVhdGVBbWF6b25CZWRyb2NrKHsgY3JlZGVudGlhbFByb3ZpZGVyOiBmcm9tTm9kZVByb3ZpZGVyQ2hhaW4oKSB9KSxcbiAgLy8gU2VsZi1ob3N0ZWQgT3BlbkFJLWNvbXBhdGlibGUgZW5kcG9pbnQgKERvY2tlciBtb2RlbCBpbWFnZSAvIE9sbGFtYSAvIHZMTE0pLlxuICAvLyBUaGUgZW5kcG9pbnQgaXMgZGVwbG95bWVudC1kZWZpbmVkIHZpYSBPUEVOQUlfQ09NUEFUSUJMRV9CQVNFX1VSTDsgbG9jYWwgc2VydmVyc1xuICAvLyB1c3VhbGx5IGlnbm9yZSB0aGUga2V5LCBzbyBhIHBsYWNlaG9sZGVyIGlzIHNlbnQgd2hlbiBub25lIGlzIGNvbmZpZ3VyZWQuXG4gIFtPUEVOQUlfQ09NUEFUSUJMRV9QUk9WSURFUl9JRF06IChrZXkpID0+IHtcbiAgICBjb25zdCBiYXNlVVJMID0gcHJvY2Vzcy5lbnYuT1BFTkFJX0NPTVBBVElCTEVfQkFTRV9VUkw7XG4gICAgaWYgKCFiYXNlVVJMKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09QRU5BSV9DT01QQVRJQkxFX0JBU0VfVVJMIGlzIG5vdCBzZXQ7IGNhbm5vdCBidWlsZCB0aGUgbG9jYWwgKE9wZW5BSS1jb21wYXRpYmxlKSBwcm92aWRlci4nKTtcbiAgICB9XG4gICAgY29uc3QgcHJvdmlkZXIgPSBjcmVhdGVPcGVuQUlDb21wYXRpYmxlKHtcbiAgICAgIG5hbWU6IE9QRU5BSV9DT01QQVRJQkxFX1BST1ZJREVSX0lELFxuICAgICAgYmFzZVVSTCxcbiAgICAgIGFwaUtleToga2V5ID8/IHByb2Nlc3MuZW52Lk9QRU5BSV9DT01QQVRJQkxFX0FQSV9LRVkgPz8gJ25vdC1uZWVkZWQnLFxuICAgIH0pO1xuICAgIHJldHVybiAobW9kZWxJZDogc3RyaW5nKSA9PiBwcm92aWRlcihtb2RlbElkKTtcbiAgfSxcbn07XG5cbi8qKiBQcm92aWRlcnMgdGhhdCBhdXRoZW50aWNhdGUgV0lUSE9VVCBhbiBBUEkga2V5IChCZWRyb2NrIHVzZXMgdGhlIElBTSByb2xlKS4gKi9cbmNvbnN0IEtFWUxFU1NfUFJPVklERVJTID0gbmV3IFNldChbJ2FtYXpvbi1iZWRyb2NrJ10pO1xuXG4vKipcbiAqIFdoZXRoZXIgYSBrZXlsZXNzIHByb3ZpZGVyIChCZWRyb2NrKSBzaG91bGQgYmUgYWR2ZXJ0aXNlZC4gSXQgYXV0aHMgdmlhIHRoZVxuICogcnVudGltZSBJQU0gcm9sZSAobm8gQVBJIGtleSksIHNvIGFuIEFXUyByZWdpb24g4oCUIHNldCBieSBldmVyeSBBV1MgcnVudGltZSDigJQgaXNcbiAqIHRoZSBcInJ1bm5pbmcgaW4gLyBjb25maWd1cmVkIGZvciBBV1NcIiBzaWduYWwuIEdhdGluZyBpdCBvbiBBV1NfQUNDRVNTX0tFWV9JRFxuICogKHdoaWNoIGl0IG5ldmVyIHVzZXMpIGxlZnQgaXQgcGVybWFuZW50bHkgdW5hdmFpbGFibGUgZGVzcGl0ZSB2YWxpZCBJQU0gY3JlZHM7XG4gKiBhZHZlcnRpc2luZyBpdCB3aXRoIG5vIEFXUyBjb250ZXh0IGF0IGFsbCB3b3VsZCBqdXN0IGZhaWwgYXQgbW9kZWwtY2FsbCB0aW1lLlxuICovXG5mdW5jdGlvbiBrZXlsZXNzUHJvdmlkZXJBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIShwcm9jZXNzLmVudi5BV1NfUkVHSU9OIHx8IHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1JFR0lPTik7XG59XG5cbi8qKlxuICogTGF6aWx5IGluaXRpYWxpemUgdGhlIHByb3ZpZGVyIHJlZ2lzdHJ5IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLiBLZXktYmFzZWRcbiAqIHByb3ZpZGVycyByZWdpc3RlciBvbmx5IHdoZW4gdGhlaXIga2V5IGlzIHNldDsga2V5bGVzcyBwcm92aWRlcnMgKEJlZHJvY2spXG4gKiByZWdpc3RlciB3aGVuIGFuIEFXUyByZWdpb24gaXMgY29uZmlndXJlZC5cbiAqL1xuZnVuY3Rpb24gaW5pdFJlZ2lzdHJ5KCk6IHZvaWQge1xuICBpZiAoaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gIGZvciAoY29uc3QgW2lkLCBpbmZvXSBvZiBPYmplY3QuZW50cmllcyhBSV9QUk9WSURFUl9DQVRBTE9HKSkge1xuICAgIGNvbnN0IGZhY3RvcnkgPSBQUk9WSURFUl9GQUNUT1JJRVNbaWRdO1xuICAgIGlmICghZmFjdG9yeSkgY29udGludWU7XG4gICAgY29uc3QgZW52VmFyID0gQUlfUFJPVklERVJfRU5WX1ZBUlNbaWRdO1xuICAgIGNvbnN0IGFwaUtleSA9IGVudlZhciA/IHByb2Nlc3MuZW52W2VudlZhcl0gOiB1bmRlZmluZWQ7XG4gICAgaWYgKGFwaUtleSB8fCAoS0VZTEVTU19QUk9WSURFUlMuaGFzKGlkKSAmJiBrZXlsZXNzUHJvdmlkZXJBdmFpbGFibGUoKSkpIHtcbiAgICAgIHJlZ2lzdHJ5LnNldChpZCwgeyBpbmZvLCBjcmVhdGVNb2RlbDogZmFjdG9yeShhcGlLZXkpIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBPcGVuQUktY29tcGF0aWJsZSAobG9jYWwgLyBzZWxmLWhvc3RlZCkgcHJvdmlkZXIgaXMgbm90IGluIHRoZSBzdGF0aWNcbiAgLy8gY2F0YWxvZyDigJQgaXRzIGVuZHBvaW50IGFuZCBtb2RlbHMgYXJlIGRlcGxveW1lbnQtZGVmaW5lZC4gUmVnaXN0ZXIgaXQgd2hlbiBhXG4gIC8vIGJhc2UgVVJMIGlzIGNvbmZpZ3VyZWQ7IGl0cyBcImlzIGNvbmZpZ3VyZWRcIiBzaWduYWwgaXMgdGhlIGJhc2UgVVJMLCBub3QgYSBrZXkuXG4gIGNvbnN0IGNvbXBhdCA9IGdldE9wZW5BSUNvbXBhdGlibGVQcm92aWRlcigpO1xuICBpZiAoY29tcGF0KSB7XG4gICAgcmVnaXN0cnkuc2V0KGNvbXBhdC5pZCwge1xuICAgICAgaW5mbzogY29tcGF0LFxuICAgICAgY3JlYXRlTW9kZWw6IFBST1ZJREVSX0ZBQ1RPUklFU1tPUEVOQUlfQ09NUEFUSUJMRV9QUk9WSURFUl9JRF0ocHJvY2Vzcy5lbnYuT1BFTkFJX0NPTVBBVElCTEVfQVBJX0tFWSksXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHByb3ZpZGVycyB0aGF0IGhhdmUgQVBJIGtleXMgY29uZmlndXJlZCB2aWEgZW52IHZhcnMuXG4gKlxuICogQHJldHVybnMgQXJyYXkgb2YgY29uZmlndXJlZCBwcm92aWRlciBpbmZvIHdpdGggbW9kZWwgbGlzdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEF2YWlsYWJsZVByb3ZpZGVycygpOiBBSVByb3ZpZGVySW5mb1tdIHtcbiAgaW5pdFJlZ2lzdHJ5KCk7XG4gIHJldHVybiBBcnJheS5mcm9tKHJlZ2lzdHJ5LnZhbHVlcygpKS5tYXAoKGUpID0+IGUuaW5mbyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbW9kZWwgbGlzdCBmb3IgYSBnaXZlbiBwcm92aWRlciBJRCAocmVnYXJkbGVzcyBvZiBlbnYgdmFyIGNvbmZpZykuXG4gKlxuICogQHBhcmFtIHByb3ZpZGVySWQgLSBQcm92aWRlciBpZGVudGlmaWVyXG4gKiBAcmV0dXJucyBBcnJheSBvZiBtb2RlbHMsIG9yIGVtcHR5IGFycmF5IGlmIHByb3ZpZGVyIGlzIHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3ZpZGVyTW9kZWxzKHByb3ZpZGVySWQ6IHN0cmluZyk6IEFJTW9kZWxJbmZvW10ge1xuICByZXR1cm4gZ2V0QUlQcm92aWRlck1vZGVscyhwcm92aWRlcklkKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgTGFuZ3VhZ2VNb2RlbCBmcm9tIHRoZSByZWdpc3RyeSBmb3IgYSBjb25maWd1cmVkIHByb3ZpZGVyLlxuICpcbiAqIEBwYXJhbSBwcm92aWRlcklkIC0gUHJvdmlkZXIgaWRlbnRpZmllclxuICogQHBhcmFtIG1vZGVsSWQgLSBNb2RlbCBpZGVudGlmaWVyXG4gKiBAcmV0dXJucyBMYW5ndWFnZU1vZGVsIGluc3RhbmNlXG4gKiBAdGhyb3dzIEVycm9yIGlmIHByb3ZpZGVyIGlzIG5vdCBjb25maWd1cmVkIG9yIG1vZGVsIGlzIGludmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RlbChwcm92aWRlcklkOiBzdHJpbmcsIG1vZGVsSWQ6IHN0cmluZyk6IExhbmd1YWdlTW9kZWwge1xuICBpbml0UmVnaXN0cnkoKTtcbiAgY29uc3QgZW50cnkgPSByZWdpc3RyeS5nZXQocHJvdmlkZXJJZCk7XG4gIGlmICghZW50cnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFJIHByb3ZpZGVyIFwiJHtwcm92aWRlcklkfVwiIGlzIG5vdCBjb25maWd1cmVkLiBTZXQgdGhlIGNvcnJlc3BvbmRpbmcgQVBJIGtleSBlbnZpcm9ubWVudCB2YXJpYWJsZS5gKTtcbiAgfVxuICBpZiAoIWVudHJ5LmluZm8ubW9kZWxzLnNvbWUoKG0pID0+IG0uaWQgPT09IG1vZGVsSWQpKSB7XG4gICAgY29uc3QgYXZhaWxhYmxlID0gZW50cnkuaW5mby5tb2RlbHMubWFwKChtKSA9PiBtLmlkKS5qb2luKCcsICcpO1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kZWwgXCIke21vZGVsSWR9XCIgaXMgbm90IGF2YWlsYWJsZSBmb3IgcHJvdmlkZXIgXCIke3Byb3ZpZGVySWR9XCIuIEF2YWlsYWJsZSBtb2RlbHM6ICR7YXZhaWxhYmxlfWApO1xuICB9XG4gIHJldHVybiBlbnRyeS5jcmVhdGVNb2RlbChtb2RlbElkKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSB0ZW1wb3JhcnkgTGFuZ3VhZ2VNb2RlbCB1c2luZyBhIGN1c3RvbSBBUEkga2V5IChub3QgY2FjaGVkIGluIHJlZ2lzdHJ5KS5cbiAqXG4gKiBAcGFyYW0gcHJvdmlkZXJJZCAtIFByb3ZpZGVyIGlkZW50aWZpZXJcbiAqIEBwYXJhbSBtb2RlbElkIC0gTW9kZWwgaWRlbnRpZmllclxuICogQHBhcmFtIGFwaUtleSAtIEN1c3RvbSBBUEkga2V5XG4gKiBAcmV0dXJucyBMYW5ndWFnZU1vZGVsIGluc3RhbmNlXG4gKiBAdGhyb3dzIEVycm9yIGlmIHByb3ZpZGVyIG9yIG1vZGVsIGlzIHVua25vd25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1vZGVsV2l0aEtleShwcm92aWRlcklkOiBzdHJpbmcsIG1vZGVsSWQ6IHN0cmluZywgYXBpS2V5OiBzdHJpbmcpOiBMYW5ndWFnZU1vZGVsIHtcbiAgY29uc3QgbW9kZWxzID0gZ2V0QUlQcm92aWRlck1vZGVscyhwcm92aWRlcklkKTtcbiAgaWYgKG1vZGVscy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gQUkgcHJvdmlkZXIgXCIke3Byb3ZpZGVySWR9XCIuIFN1cHBvcnRlZDogJHtPYmplY3Qua2V5cyhBSV9QUk9WSURFUl9DQVRBTE9HKS5qb2luKCcsICcpfWApO1xuICB9XG4gIGlmICghbW9kZWxzLnNvbWUoKG0pID0+IG0uaWQgPT09IG1vZGVsSWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNb2RlbCBcIiR7bW9kZWxJZH1cIiBpcyBub3QgYXZhaWxhYmxlIGZvciBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cIi4gQXZhaWxhYmxlOiAke21vZGVscy5tYXAoKG0pID0+IG0uaWQpLmpvaW4oJywgJyl9YCk7XG4gIH1cblxuICBjb25zdCBmYWN0b3J5ID0gUFJPVklERVJfRkFDVE9SSUVTW3Byb3ZpZGVySWRdO1xuICBpZiAoIWZhY3RvcnkpIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgQUkgcHJvdmlkZXIgXCIke3Byb3ZpZGVySWR9XCJgKTtcblxuICAvLyBLZXlsZXNzIHByb3ZpZGVycyAoQmVkcm9jaykgYXV0aGVudGljYXRlIHZpYSB0aGUgcnVudGltZSBJQU0gcm9sZSBhbmQgSUdOT1JFIGFcbiAgLy8gc3VwcGxpZWQga2V5LiBTaWxlbnRseSBkcm9wcGluZyB0aGUga2V5IGFuZCByZXR1cm5pbmcgYSBtb2RlbCB3b3VsZCBkZWZlciB0aGVcbiAgLy8gZmFpbHVyZSB0byBtb2RlbC1jYWxsIHRpbWUgd2hlbiB0aGUgSUFNIHJvbGUvcmVnaW9uIGlzbid0IGNvbmZpZ3VyZWQ7IGd1YXJkIGl0XG4gIC8vIGhlcmUgc28gdGhlIGZhaWx1cmUgaXMgY2xlYXIgYXQgY29uZmlnIHRpbWUgKG1pcnJvcnMgcmVzb2x2ZU1vZGVsJ3MgZ2F0ZSkuXG4gIGlmIChLRVlMRVNTX1BST1ZJREVSUy5oYXMocHJvdmlkZXJJZCkpIHtcbiAgICBpZiAoIWtleWxlc3NQcm92aWRlckF2YWlsYWJsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBSSBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cIiBhdXRoZW50aWNhdGVzIHZpYSB0aGUgQVdTIElBTSByb2xlICh0aGUgQVBJIGtleSBpcyBpZ25vcmVkKTsgYCArXG4gICAgICAgICAgJ3NldCBBV1NfUkVHSU9OIChvciBBV1NfREVGQVVMVF9SRUdJT04pIHNvIHRoZSBydW50aW1lIGNyZWRlbnRpYWxzIGNhbiBiZSByZXNvbHZlZC4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhY3RvcnkoKShtb2RlbElkKTtcbiAgfVxuICByZXR1cm4gZmFjdG9yeShhcGlLZXkpKG1vZGVsSWQpO1xufVxuIl19
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlkZXItcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsNkJBQTZCLEVBQzdCLG1CQUFtQixFQUNuQiwyQkFBMkIsR0FHNUIsTUFBTSw0QkFBNEIsQ0FBQztBQVdwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztBQUNsRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFFeEIsaUZBQWlGO0FBQ2pGLGtGQUFrRjtBQUNsRixpRUFBaUU7QUFDakUsTUFBTSxrQkFBa0IsR0FBeUU7SUFDL0YsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDdEQsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDaEQsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0Is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VSxPQUFPLG9DQUFvQyxVQUFVLGlCQUFpQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLE9BQU87UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBRXpFLGlGQUFpRjtJQUNqRixnRkFBZ0Y7SUFDaEYsaUZBQWlGO0lBQ2pGLDZFQUE2RTtJQUM3RSxJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FDYixnQkFBZ0IsVUFBVSxpRUFBaUU7Z0JBQ3pGLG9GQUFvRixDQUN2RixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgY3JlYXRlQW1hem9uQmVkcm9jayB9IGZyb20gJ0BhaS1zZGsvYW1hem9uLWJlZHJvY2snO1xuaW1wb3J0IHsgY3JlYXRlQW50aHJvcGljIH0gZnJvbSAnQGFpLXNkay9hbnRocm9waWMnO1xuaW1wb3J0IHsgY3JlYXRlR29vZ2xlR2VuZXJhdGl2ZUFJIH0gZnJvbSAnQGFpLXNkay9nb29nbGUnO1xuaW1wb3J0IHsgY3JlYXRlT3BlbkFJIH0gZnJvbSAnQGFpLXNkay9vcGVuYWknO1xuaW1wb3J0IHsgY3JlYXRlT3BlbkFJQ29tcGF0aWJsZSB9IGZyb20gJ0BhaS1zZGsvb3BlbmFpLWNvbXBhdGlibGUnO1xuaW1wb3J0IHsgY3JlYXRlWGFpIH0gZnJvbSAnQGFpLXNkay94YWknO1xuaW1wb3J0IHsgZnJvbU5vZGVQcm92aWRlckNoYWluIH0gZnJvbSAnQGF3cy1zZGsvY3JlZGVudGlhbC1wcm92aWRlcnMnO1xuaW1wb3J0IHtcbiAgQUlfUFJPVklERVJfQ0FUQUxPRyxcbiAgQUlfUFJPVklERVJfRU5WX1ZBUlMsXG4gIE9QRU5BSV9DT01QQVRJQkxFX1BST1ZJREVSX0lELFxuICBnZXRBSVByb3ZpZGVyTW9kZWxzLFxuICBnZXRPcGVuQUlDb21wYXRpYmxlUHJvdmlkZXIsXG4gIHR5cGUgQUlQcm92aWRlckluZm8sXG4gIHR5cGUgQUlNb2RlbEluZm8sXG59IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB0eXBlIHsgTGFuZ3VhZ2VNb2RlbCB9IGZyb20gJ2FpJztcblxuLy8gUHJvdmlkZXIgUmVnaXN0cnlcblxuLyoqIFJlZ2lzdGVyZWQgcHJvdmlkZXIgd2l0aCBtb2RlbCBmYWN0b3J5IGZ1bmN0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlckVudHJ5IHtcbiAgaW5mbzogQUlQcm92aWRlckluZm87XG4gIGNyZWF0ZU1vZGVsOiAobW9kZWxJZDogc3RyaW5nKSA9PiBMYW5ndWFnZU1vZGVsO1xufVxuXG5jb25zdCByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCBQcm92aWRlckVudHJ5PigpO1xubGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cbi8vIFByb3ZpZGVyIOKGkiBtb2RlbC1mYWN0b3J5IG1hcC4gYGtleWAgaXMgb3B0aW9uYWwgc28ga2V5bGVzcyBwcm92aWRlcnMgKEJlZHJvY2ssXG4vLyB2aWEgdGhlIHJ1bnRpbWUgSUFNIHJvbGUpIGFuZCBrZXktYmFzZWQgcHJvdmlkZXJzIHNoYXJlIG9uZSBzaWduYXR1cmUuIERlY2xhcmVkXG4vLyBvbmNlIGFuZCBjb25zdW1lZCBieSBCT1RIIGluaXRSZWdpc3RyeSBhbmQgY3JlYXRlTW9kZWxXaXRoS2V5LlxuY29uc3QgUFJPVklERVJfRkFDVE9SSUVTOiBSZWNvcmQ8c3RyaW5nLCAoa2V5Pzogc3RyaW5nKSA9PiAobW9kZWxJZDogc3RyaW5nKSA9PiBMYW5ndWFnZU1vZGVsPiA9IHtcbiAgJ2FudGhyb3BpYyc6IChrZXkpID0+IGNyZWF0ZUFudGhyb3BpYyh7IGFwaUtleToga2V5IH0pLFxuICAnb3BlbmFpJzogKGtleSkgPT4gY3JlYXRlT3BlbkFJKHsgYXBpS2V5OiBrZXkgfSksXG4gICdnb29nbGUnOiAoa2V5KSA9PiBjcmVhdGVHb29nbGVHZW5lcmF0aXZlQUkoeyBhcGlLZXk6IGtleSB9KSxcbiAgJ3hhaSc6IChrZXkpID0+IGNyZWF0ZVhhaSh7IGFwaUtleToga2V5IH0pLFxuICAvLyBCZWRyb2NrIGF1dGhlbnRpY2F0ZXMgd2l0aCB0aGUgUlVOVElNRSdzIElBTSByb2xlLCBhbmQgdGhlIGFpLXNkayBwcm92aWRlclxuICAvLyBkb2VzIE5PVCB3YWxrIHRoZSBBV1MgY3JlZGVudGlhbCBjaGFpbiBvbiBpdHMgb3duIOKAlCBiYXJlIGBjcmVhdGVBbWF6b25CZWRyb2NrKClgXG4gIC8vIHJlYWRzIG9ubHkgYEFXU19BQ0NFU1NfS0VZX0lEYC9gQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZYCBhbmQgb3RoZXJ3aXNlIHRocm93c1xuICAvLyBcIkFXUyBTaWdWNCBhdXRoZW50aWNhdGlvbiByZXF1aXJlcyBBV1MgY3JlZGVudGlhbHNcIiBhdCBjYWxsIHRpbWUuIEhhbmRpbmcgaXRcbiAgLy8gdGhlIHN0YW5kYXJkIGNoYWluIHJlc29sdmVzIEVLUyBQb2QgSWRlbnRpdHksIElSU0EsIEVDUyB0YXNrIHJvbGVzLCB0aGUgRUMyXG4gIC8vIGluc3RhbmNlIHByb2ZpbGUsIFNTTyBhbmQgc3RhdGljIGVudiBrZXlzIOKAlCBpLmUuIGV2ZXJ5IHdheSB0aGlzIHBsYXRmb3JtIGlzXG4gIC8vIGFjdHVhbGx5IGRlcGxveWVkLiBCdWlsdCBvbmNlIHBlciBmYWN0b3J5IGNhbGw7IHRoZSBjaGFpbiBjYWNoZXMgaW50ZXJuYWxseVxuICAvLyBhbmQgcmVmcmVzaGVzIGV4cGlyaW5nIHJvbGUgY3JlZGVudGlhbHMgb24gaXRzIG93bi5cbiAgJ2FtYXpvbi1iZWRyb2NrJzogKCkgPT4gY3JlYXRlQW1hem9uQmVkcm9jayh7IGNyZWRlbnRpYWxQcm92aWRlcjogZnJvbU5vZGVQcm92aWRlckNoYWluKCkgfSksXG4gIC8vIFNlbGYtaG9zdGVkIE9wZW5BSS1jb21wYXRpYmxlIGVuZHBvaW50IChEb2NrZXIgbW9kZWwgaW1hZ2UgLyBPbGxhbWEgLyB2TExNKS5cbiAgLy8gVGhlIGVuZHBvaW50IGlzIGRlcGxveW1lbnQtZGVmaW5lZCB2aWEgT1BFTkFJX0NPTVBBVElCTEVfQkFTRV9VUkw7IGxvY2FsIHNlcnZlcnNcbiAgLy8gdXN1YWxseSBpZ25vcmUgdGhlIGtleSwgc28gYSBwbGFjZWhvbGRlciBpcyBzZW50IHdoZW4gbm9uZSBpcyBjb25maWd1cmVkLlxuICBbT1BFTkFJX0NPTVBBVElCTEVfUFJPVklERVJfSURdOiAoa2V5KSA9PiB7XG4gICAgY29uc3QgYmFzZVVSTCA9IHByb2Nlc3MuZW52Lk9QRU5BSV9DT01QQVRJQkxFX0JBU0VfVVJMO1xuICAgIGlmICghYmFzZVVSTCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPUEVOQUlfQ09NUEFUSUJMRV9CQVNFX1VSTCBpcyBub3Qgc2V0OyBjYW5ub3QgYnVpbGQgdGhlIGxvY2FsIChPcGVuQUktY29tcGF0aWJsZSkgcHJvdmlkZXIuJyk7XG4gICAgfVxuICAgIGNvbnN0IHByb3ZpZGVyID0gY3JlYXRlT3BlbkFJQ29tcGF0aWJsZSh7XG4gICAgICBuYW1lOiBPUEVOQUlfQ09NUEFUSUJMRV9QUk9WSURFUl9JRCxcbiAgICAgIGJhc2VVUkwsXG4gICAgICBhcGlLZXk6IGtleSA/PyBwcm9jZXNzLmVudi5PUEVOQUlfQ09NUEFUSUJMRV9BUElfS0VZID8/ICdub3QtbmVlZGVkJyxcbiAgICB9KTtcbiAgICByZXR1cm4gKG1vZGVsSWQ6IHN0cmluZykgPT4gcHJvdmlkZXIobW9kZWxJZCk7XG4gIH0sXG59O1xuXG4vKiogUHJvdmlkZXJzIHRoYXQgYXV0aGVudGljYXRlIFdJVEhPVVQgYW4gQVBJIGtleSAoQmVkcm9jayB1c2VzIHRoZSBJQU0gcm9sZSkuICovXG5jb25zdCBLRVlMRVNTX1BST1ZJREVSUyA9IG5ldyBTZXQoWydhbWF6b24tYmVkcm9jayddKTtcblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBydW50aW1lIGhhcyBhbiBBV1MgY3JlZGVudGlhbCBTT1VSQ0UgdGhlIHByb3ZpZGVyIGNoYWluIGNhblxuICogYWN0dWFsbHkgcmVzb2x2ZS5cbiAqXG4gKiBBIGNvbmZpZ3VyZWQgcmVnaW9uIGlzIE5PVCBzdWNoIGEgc2lnbmFsOiBldmVyeSBkZXBsb3kgdGFyZ2V0IHNldHNcbiAqIGBBV1NfUkVHSU9OYCAoaXQgaXMgbmVlZGVkIGZvciBwaXBlbGluZSBzeW50aGVzaXMpLCBpbmNsdWRpbmcgbWluaWt1YmUgYW5kXG4gKiBkb2NrZXItY29tcG9zZSwgd2hlcmUgbm90aGluZyBncmFudHMgdGhlIHBvZCBBV1MgY3JlZGVudGlhbHMuIEdhdGluZyBCZWRyb2NrXG4gKiBvbiB0aGUgcmVnaW9uIGFsb25lIHRoZXJlZm9yZSBhZHZlcnRpc2VkIGl0IG9uIGxvY2FsIGluc3RhbGxzIGFzIHRoZSBPTkxZXG4gKiBwcm92aWRlciwgYHJlc29sdmVBc2tNb2RlbGAgcGlja2VkIGl0IGFzIHRoZSBkZWZhdWx0LCBhbmQgZXZlcnkgQXNrIHR1cm4gZGllZFxuICogd2l0aCBcIkNvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYW55IHByb3ZpZGVyc1wiIOKAlCBhbiBlcnJvciBhYm91dCBBV1NcbiAqIHRoYXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB3aGF0IHRoZSB1c2VyIGFza2VkLlxuICpcbiAqIEVhY2ggY2hlY2sgYmVsb3cgY29ycmVzcG9uZHMgdG8gYSB3YXkgYGZyb21Ob2RlUHJvdmlkZXJDaGFpbigpYCBjYW4gc3VjY2VlZDpcbiAqICAgLSBzdGF0aWMga2V5cyBpbiB0aGUgZW52aXJvbm1lbnQ7XG4gKiAgIC0gRUtTIFBvZCBJZGVudGl0eSAvIEVDUyB0YXNrIHJvbGUgKHRoZSBhZ2VudCBpbmplY3RzIGEgY3JlZGVudGlhbHMgVVJJKTtcbiAqICAgLSBJUlNBIChhIHByb2plY3RlZCB3ZWItaWRlbnRpdHkgdG9rZW4gZmlsZSk7XG4gKiAgIC0gYSBzaGFyZWQtY29uZmlnIHByb2ZpbGUsIGZvciBhIGRldmVsb3BlciBydW5uaW5nIGFnYWluc3QgcmVhbCBBV1MuXG4gKlxuICogVGhlIEVDMiBpbnN0YW5jZSBwcm9maWxlIGlzIHRoZSBvbmUgY2FzZSB3aXRoIE5PIGVudmlyb25tZW50IG1hcmtlciDigJQgaXRzXG4gKiBjcmVkZW50aWFscyBjb21lIGZyb20gSU1EUyBhdCBjYWxsIHRpbWUg4oCUIHNvIGl0IHRha2VzIHRoZSBleHBsaWNpdFxuICogYEJFRFJPQ0tfRU5BQkxFRD10cnVlYCBvcHQtaW4gcmF0aGVyIHRoYW4gYmVpbmcgZ3Vlc3NlZCBhdC5cbiAqL1xuZnVuY3Rpb24gYXdzQ3JlZGVudGlhbFNvdXJjZUNvbmZpZ3VyZWQoKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIShcbiAgICBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRFxuICAgIHx8IHByb2Nlc3MuZW52LkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfRlVMTF9VUklcbiAgICB8fCBwcm9jZXNzLmVudi5BV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTX1JFTEFUSVZFX1VSSVxuICAgIHx8IHByb2Nlc3MuZW52LkFXU19XRUJfSURFTlRJVFlfVE9LRU5fRklMRVxuICAgIHx8IHByb2Nlc3MuZW52LkFXU19QUk9GSUxFXG4gICAgfHwgcHJvY2Vzcy5lbnYuQkVEUk9DS19FTkFCTEVEID09PSAndHJ1ZSdcbiAgKTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGEga2V5bGVzcyBwcm92aWRlciAoQmVkcm9jaykgc2hvdWxkIGJlIGFkdmVydGlzZWQuIEl0IGF1dGhlbnRpY2F0ZXNcbiAqIHdpdGggdGhlIHJ1bnRpbWUncyBJQU0gcm9sZSByYXRoZXIgdGhhbiBhbiBBUEkga2V5LCBzbyBpdCBuZWVkcyBCT1RIIGEgcmVnaW9uXG4gKiB0byBjYWxsIGFuZCBhIHJlc29sdmFibGUgY3JlZGVudGlhbCBzb3VyY2Ug4oCUIHNlZVxuICoge0BsaW5rIGF3c0NyZWRlbnRpYWxTb3VyY2VDb25maWd1cmVkfSBmb3Igd2h5IHRoZSByZWdpb24gYWxvbmUgaXMgbm90IGVub3VnaC5cbiAqL1xuZnVuY3Rpb24ga2V5bGVzc1Byb3ZpZGVyQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEocHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fCBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9SRUdJT04pICYmIGF3c0NyZWRlbnRpYWxTb3VyY2VDb25maWd1cmVkKCk7XG59XG5cbi8qKlxuICogTGF6aWx5IGluaXRpYWxpemUgdGhlIHByb3ZpZGVyIHJlZ2lzdHJ5IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLiBLZXktYmFzZWRcbiAqIHByb3ZpZGVycyByZWdpc3RlciBvbmx5IHdoZW4gdGhlaXIga2V5IGlzIHNldDsga2V5bGVzcyBwcm92aWRlcnMgKEJlZHJvY2spXG4gKiByZWdpc3RlciB3aGVuIGFuIEFXUyByZWdpb24gaXMgY29uZmlndXJlZC5cbiAqL1xuZnVuY3Rpb24gaW5pdFJlZ2lzdHJ5KCk6IHZvaWQge1xuICBpZiAoaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gIGZvciAoY29uc3QgW2lkLCBpbmZvXSBvZiBPYmplY3QuZW50cmllcyhBSV9QUk9WSURFUl9DQVRBTE9HKSkge1xuICAgIGNvbnN0IGZhY3RvcnkgPSBQUk9WSURFUl9GQUNUT1JJRVNbaWRdO1xuICAgIGlmICghZmFjdG9yeSkgY29udGludWU7XG4gICAgY29uc3QgZW52VmFyID0gQUlfUFJPVklERVJfRU5WX1ZBUlNbaWRdO1xuICAgIGNvbnN0IGFwaUtleSA9IGVudlZhciA/IHByb2Nlc3MuZW52W2VudlZhcl0gOiB1bmRlZmluZWQ7XG4gICAgLy8gQSBrZXlsZXNzIHByb3ZpZGVyIGlzIGdhdGVkIFNPTEVMWSBieSBpdHMgb3duIGF2YWlsYWJpbGl0eSBjaGVjayDigJQgbmV2ZXJcbiAgICAvLyBieSB0aGUgcHJlc2VuY2Ugb2YgYGVudlZhcmAuIEJlZHJvY2sncyBtYXBwZWQgZW52IHZhciBpc1xuICAgIC8vIGBBV1NfQUNDRVNTX0tFWV9JRGAsIHNvIHRoZSBrZXkgcGF0aCB3b3VsZCBvdGhlcndpc2UgcmVnaXN0ZXIgaXQgd2hlbmV2ZXJcbiAgICAvLyBzdGF0aWMga2V5cyBleGlzdCwgc2tpcHBpbmcgdGhlIHJlZ2lvbiByZXF1aXJlbWVudCBhbmQgcHJvZHVjaW5nIGFcbiAgICAvLyBwcm92aWRlciB0aGF0IGZhaWxzIGF0IGNhbGwgdGltZSBmb3Igd2FudCBvZiBhIHJlZ2lvbi5cbiAgICBjb25zdCB1c2FibGUgPSBLRVlMRVNTX1BST1ZJREVSUy5oYXMoaWQpID8ga2V5bGVzc1Byb3ZpZGVyQXZhaWxhYmxlKCkgOiAhIWFwaUtleTtcbiAgICBpZiAodXNhYmxlKSB7XG4gICAgICByZWdpc3RyeS5zZXQoaWQsIHsgaW5mbywgY3JlYXRlTW9kZWw6IGZhY3RvcnkoYXBpS2V5KSB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgT3BlbkFJLWNvbXBhdGlibGUgKGxvY2FsIC8gc2VsZi1ob3N0ZWQpIHByb3ZpZGVyIGlzIG5vdCBpbiB0aGUgc3RhdGljXG4gIC8vIGNhdGFsb2cg4oCUIGl0cyBlbmRwb2ludCBhbmQgbW9kZWxzIGFyZSBkZXBsb3ltZW50LWRlZmluZWQuIFJlZ2lzdGVyIGl0IHdoZW4gYVxuICAvLyBiYXNlIFVSTCBpcyBjb25maWd1cmVkOyBpdHMgXCJpcyBjb25maWd1cmVkXCIgc2lnbmFsIGlzIHRoZSBiYXNlIFVSTCwgbm90IGEga2V5LlxuICBjb25zdCBjb21wYXQgPSBnZXRPcGVuQUlDb21wYXRpYmxlUHJvdmlkZXIoKTtcbiAgaWYgKGNvbXBhdCkge1xuICAgIHJlZ2lzdHJ5LnNldChjb21wYXQuaWQsIHtcbiAgICAgIGluZm86IGNvbXBhdCxcbiAgICAgIGNyZWF0ZU1vZGVsOiBQUk9WSURFUl9GQUNUT1JJRVNbT1BFTkFJX0NPTVBBVElCTEVfUFJPVklERVJfSURdKHByb2Nlc3MuZW52Lk9QRU5BSV9DT01QQVRJQkxFX0FQSV9LRVkpLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbGlzdCBvZiBwcm92aWRlcnMgdGhhdCBoYXZlIEFQSSBrZXlzIGNvbmZpZ3VyZWQgdmlhIGVudiB2YXJzLlxuICpcbiAqIEByZXR1cm5zIEFycmF5IG9mIGNvbmZpZ3VyZWQgcHJvdmlkZXIgaW5mbyB3aXRoIG1vZGVsIGxpc3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVQcm92aWRlcnMoKTogQUlQcm92aWRlckluZm9bXSB7XG4gIGluaXRSZWdpc3RyeSgpO1xuICByZXR1cm4gQXJyYXkuZnJvbShyZWdpc3RyeS52YWx1ZXMoKSkubWFwKChlKSA9PiBlLmluZm8pO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG1vZGVsIGxpc3QgZm9yIGEgZ2l2ZW4gcHJvdmlkZXIgSUQgKHJlZ2FyZGxlc3Mgb2YgZW52IHZhciBjb25maWcpLlxuICpcbiAqIEBwYXJhbSBwcm92aWRlcklkIC0gUHJvdmlkZXIgaWRlbnRpZmllclxuICogQHJldHVybnMgQXJyYXkgb2YgbW9kZWxzLCBvciBlbXB0eSBhcnJheSBpZiBwcm92aWRlciBpcyB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm92aWRlck1vZGVscyhwcm92aWRlcklkOiBzdHJpbmcpOiBBSU1vZGVsSW5mb1tdIHtcbiAgcmV0dXJuIGdldEFJUHJvdmlkZXJNb2RlbHMocHJvdmlkZXJJZCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIExhbmd1YWdlTW9kZWwgZnJvbSB0aGUgcmVnaXN0cnkgZm9yIGEgY29uZmlndXJlZCBwcm92aWRlci5cbiAqXG4gKiBAcGFyYW0gcHJvdmlkZXJJZCAtIFByb3ZpZGVyIGlkZW50aWZpZXJcbiAqIEBwYXJhbSBtb2RlbElkIC0gTW9kZWwgaWRlbnRpZmllclxuICogQHJldHVybnMgTGFuZ3VhZ2VNb2RlbCBpbnN0YW5jZVxuICogQHRocm93cyBFcnJvciBpZiBwcm92aWRlciBpcyBub3QgY29uZmlndXJlZCBvciBtb2RlbCBpcyBpbnZhbGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kZWwocHJvdmlkZXJJZDogc3RyaW5nLCBtb2RlbElkOiBzdHJpbmcpOiBMYW5ndWFnZU1vZGVsIHtcbiAgaW5pdFJlZ2lzdHJ5KCk7XG4gIGNvbnN0IGVudHJ5ID0gcmVnaXN0cnkuZ2V0KHByb3ZpZGVySWQpO1xuICBpZiAoIWVudHJ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBSSBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cIiBpcyBub3QgY29uZmlndXJlZC4gU2V0IHRoZSBjb3JyZXNwb25kaW5nIEFQSSBrZXkgZW52aXJvbm1lbnQgdmFyaWFibGUuYCk7XG4gIH1cbiAgaWYgKCFlbnRyeS5pbmZvLm1vZGVscy5zb21lKChtKSA9PiBtLmlkID09PSBtb2RlbElkKSkge1xuICAgIGNvbnN0IGF2YWlsYWJsZSA9IGVudHJ5LmluZm8ubW9kZWxzLm1hcCgobSkgPT4gbS5pZCkuam9pbignLCAnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZGVsIFwiJHttb2RlbElkfVwiIGlzIG5vdCBhdmFpbGFibGUgZm9yIHByb3ZpZGVyIFwiJHtwcm92aWRlcklkfVwiLiBBdmFpbGFibGUgbW9kZWxzOiAke2F2YWlsYWJsZX1gKTtcbiAgfVxuICByZXR1cm4gZW50cnkuY3JlYXRlTW9kZWwobW9kZWxJZCk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgdGVtcG9yYXJ5IExhbmd1YWdlTW9kZWwgdXNpbmcgYSBjdXN0b20gQVBJIGtleSAobm90IGNhY2hlZCBpbiByZWdpc3RyeSkuXG4gKlxuICogQHBhcmFtIHByb3ZpZGVySWQgLSBQcm92aWRlciBpZGVudGlmaWVyXG4gKiBAcGFyYW0gbW9kZWxJZCAtIE1vZGVsIGlkZW50aWZpZXJcbiAqIEBwYXJhbSBhcGlLZXkgLSBDdXN0b20gQVBJIGtleVxuICogQHJldHVybnMgTGFuZ3VhZ2VNb2RlbCBpbnN0YW5jZVxuICogQHRocm93cyBFcnJvciBpZiBwcm92aWRlciBvciBtb2RlbCBpcyB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2RlbFdpdGhLZXkocHJvdmlkZXJJZDogc3RyaW5nLCBtb2RlbElkOiBzdHJpbmcsIGFwaUtleTogc3RyaW5nKTogTGFuZ3VhZ2VNb2RlbCB7XG4gIGNvbnN0IG1vZGVscyA9IGdldEFJUHJvdmlkZXJNb2RlbHMocHJvdmlkZXJJZCk7XG4gIGlmIChtb2RlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIEFJIHByb3ZpZGVyIFwiJHtwcm92aWRlcklkfVwiLiBTdXBwb3J0ZWQ6ICR7T2JqZWN0LmtleXMoQUlfUFJPVklERVJfQ0FUQUxPRykuam9pbignLCAnKX1gKTtcbiAgfVxuICBpZiAoIW1vZGVscy5zb21lKChtKSA9PiBtLmlkID09PSBtb2RlbElkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kZWwgXCIke21vZGVsSWR9XCIgaXMgbm90IGF2YWlsYWJsZSBmb3IgcHJvdmlkZXIgXCIke3Byb3ZpZGVySWR9XCIuIEF2YWlsYWJsZTogJHttb2RlbHMubWFwKChtKSA9PiBtLmlkKS5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgY29uc3QgZmFjdG9yeSA9IFBST1ZJREVSX0ZBQ1RPUklFU1twcm92aWRlcklkXTtcbiAgaWYgKCFmYWN0b3J5KSB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEFJIHByb3ZpZGVyIFwiJHtwcm92aWRlcklkfVwiYCk7XG5cbiAgLy8gS2V5bGVzcyBwcm92aWRlcnMgKEJlZHJvY2spIGF1dGhlbnRpY2F0ZSB2aWEgdGhlIHJ1bnRpbWUgSUFNIHJvbGUgYW5kIElHTk9SRSBhXG4gIC8vIHN1cHBsaWVkIGtleS4gU2lsZW50bHkgZHJvcHBpbmcgdGhlIGtleSBhbmQgcmV0dXJuaW5nIGEgbW9kZWwgd291bGQgZGVmZXIgdGhlXG4gIC8vIGZhaWx1cmUgdG8gbW9kZWwtY2FsbCB0aW1lIHdoZW4gdGhlIElBTSByb2xlL3JlZ2lvbiBpc24ndCBjb25maWd1cmVkOyBndWFyZCBpdFxuICAvLyBoZXJlIHNvIHRoZSBmYWlsdXJlIGlzIGNsZWFyIGF0IGNvbmZpZyB0aW1lIChtaXJyb3JzIHJlc29sdmVNb2RlbCdzIGdhdGUpLlxuICBpZiAoS0VZTEVTU19QUk9WSURFUlMuaGFzKHByb3ZpZGVySWQpKSB7XG4gICAgaWYgKCFrZXlsZXNzUHJvdmlkZXJBdmFpbGFibGUoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQUkgcHJvdmlkZXIgXCIke3Byb3ZpZGVySWR9XCIgYXV0aGVudGljYXRlcyB2aWEgdGhlIEFXUyBJQU0gcm9sZSAodGhlIEFQSSBrZXkgaXMgaWdub3JlZCk7IGAgK1xuICAgICAgICAgICdzZXQgQVdTX1JFR0lPTiAob3IgQVdTX0RFRkFVTFRfUkVHSU9OKSBzbyB0aGUgcnVudGltZSBjcmVkZW50aWFscyBjYW4gYmUgcmVzb2x2ZWQuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWN0b3J5KCkobW9kZWxJZCk7XG4gIH1cbiAgcmV0dXJuIGZhY3RvcnkoYXBpS2V5KShtb2RlbElkKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@ai-sdk/xai": "4.0.44",
|
|
30
30
|
"@aws-sdk/credential-providers": "3.1101.0",
|
|
31
31
|
"ai": "7.0.79",
|
|
32
|
-
"@pipeline-builder/api-core": "4.
|
|
32
|
+
"@pipeline-builder/api-core": "4.1.1"
|
|
33
33
|
},
|
|
34
34
|
"keywords": [
|
|
35
35
|
"ci-cd",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"access": "public",
|
|
86
86
|
"registry": "https://registry.npmjs.org/"
|
|
87
87
|
},
|
|
88
|
-
"version": "4.
|
|
88
|
+
"version": "4.1.1",
|
|
89
89
|
"bugs": {
|
|
90
90
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
91
91
|
},
|