@aws-cdk/toolkit-lib 0.1.4 → 0.1.5
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/build-info.json +2 -2
- package/lib/actions/bootstrap/index.d.ts +1 -1
- package/lib/actions/bootstrap/index.js +1 -1
- package/lib/actions/bootstrap/private/helpers.d.ts +1 -1
- package/lib/actions/bootstrap/private/helpers.js +1 -1
- package/lib/actions/deploy/index.d.ts +4 -2
- package/lib/actions/deploy/index.js +4 -1
- package/lib/actions/deploy/private/deploy-options.d.ts +1 -1
- package/lib/actions/deploy/private/deploy-options.js +1 -1
- package/lib/actions/deploy/private/helpers.d.ts +3 -2
- package/lib/actions/deploy/private/helpers.js +1 -1
- package/lib/actions/diff/private/helpers.d.ts +5 -5
- package/lib/actions/diff/private/helpers.js +13 -11
- package/lib/actions/list/index.d.ts +0 -4
- package/lib/actions/list/index.js +1 -1
- package/lib/api/aws-cdk.d.ts +3 -4
- package/lib/api/aws-cdk.js +948 -548
- package/lib/api/aws-cdk.js.map +4 -4
- package/lib/api/cloud-assembly/index.d.ts +1 -1
- package/lib/api/cloud-assembly/index.js +2 -2
- package/lib/api/cloud-assembly/private/cached-source.d.ts +2 -2
- package/lib/api/cloud-assembly/private/cached-source.js +1 -1
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +4 -4
- package/lib/api/cloud-assembly/private/context-aware-source.js +11 -12
- package/lib/api/cloud-assembly/private/identity-source.d.ts +1 -1
- package/lib/api/cloud-assembly/private/identity-source.js +1 -1
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +5 -5
- package/lib/api/cloud-assembly/private/prepare-source.js +8 -6
- package/lib/api/cloud-assembly/private/source-builder.d.ts +4 -4
- package/lib/api/cloud-assembly/private/source-builder.js +24 -12
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +3 -3
- package/lib/api/cloud-assembly/private/stack-assembly.js +1 -1
- package/lib/api/cloud-assembly/private/stack-selectors.d.ts +1 -1
- package/lib/api/cloud-assembly/private/stack-selectors.js +1 -1
- package/lib/api/cloud-assembly/source-builder.d.ts +36 -0
- package/lib/api/cloud-assembly/source-builder.js +1 -1
- package/lib/api/cloud-assembly/stack-selector.d.ts +2 -81
- package/lib/api/cloud-assembly/stack-selector.js +5 -62
- package/lib/api/io/private/index.d.ts +3 -5
- package/lib/api/io/private/index.js +7 -6
- package/lib/api/io/private/io-host-wrappers.d.ts +17 -0
- package/lib/api/io/private/io-host-wrappers.js +74 -0
- package/lib/api/io/private/sdk-logger.d.ts +3 -0
- package/lib/api/io/private/sdk-logger.js +124 -0
- package/lib/api/shared-private.js +655 -26
- package/lib/api/shared-private.js.map +4 -4
- package/lib/api/shared-public.d.ts +2365 -31
- package/lib/api/shared-public.js +78 -5
- package/lib/api/shared-public.js.map +4 -4
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -1
- package/lib/private/util.js +9 -4
- package/lib/private/util.js.map +2 -2
- package/lib/toolkit/index.d.ts +1 -1
- package/lib/toolkit/index.js +2 -2
- package/lib/toolkit/private/index.d.ts +4 -4
- package/lib/toolkit/private/index.js +1 -1
- package/lib/toolkit/toolkit.d.ts +6 -8
- package/lib/toolkit/toolkit.js +148 -122
- package/lib/util/concurrency.d.ts +1 -1
- package/lib/util/concurrency.js +2 -2
- package/package.json +5 -4
- package/CODE_REGISTRY.md +0 -38
- package/lib/api/cloud-assembly/context.d.ts +0 -9
- package/lib/api/cloud-assembly/context.js +0 -3
- package/lib/api/io/private/codes.d.ts +0 -47
- package/lib/api/io/private/codes.js +0 -175
- package/lib/api/io/private/level-priority.d.ts +0 -11
- package/lib/api/io/private/level-priority.js +0 -33
- package/lib/api/io/private/logger.d.ts +0 -31
- package/lib/api/io/private/logger.js +0 -190
- package/lib/api/io/private/messages.d.ts +0 -62
- package/lib/api/io/private/messages.js +0 -162
- package/lib/api/io/private/timer.d.ts +0 -29
- package/lib/api/io/private/timer.js +0 -55
- package/lib/toolkit/types.d.ts +0 -76
- package/lib/toolkit/types.js +0 -3
|
@@ -15,6 +15,15 @@ export interface AssemblyBuilderProps {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
export type AssemblyBuilder = (props: AssemblyBuilderProps) => Promise<cxschema.ICloudAssembly>;
|
|
18
|
+
/**
|
|
19
|
+
* Configuration for creating a CLI from an AWS CDK App directory
|
|
20
|
+
*/
|
|
21
|
+
export interface AssemblyDirectoryProps {
|
|
22
|
+
/**
|
|
23
|
+
* Options to configure loading of the assembly after it has been synthesized
|
|
24
|
+
*/
|
|
25
|
+
readonly loadAssemblyOptions?: LoadAssemblyOptions;
|
|
26
|
+
}
|
|
18
27
|
/**
|
|
19
28
|
* Configuration for creating a CLI from an AWS CDK App directory
|
|
20
29
|
*/
|
|
@@ -53,6 +62,10 @@ export interface AssemblySourceProps {
|
|
|
53
62
|
* Options that are passed through the context to a CDK app on synth
|
|
54
63
|
*/
|
|
55
64
|
readonly synthOptions?: AppSynthOptions;
|
|
65
|
+
/**
|
|
66
|
+
* Options to configure loading of the assembly after it has been synthesized
|
|
67
|
+
*/
|
|
68
|
+
readonly loadAssemblyOptions?: LoadAssemblyOptions;
|
|
56
69
|
}
|
|
57
70
|
/**
|
|
58
71
|
* Settings that are passed to a CDK app via the context
|
|
@@ -111,3 +124,26 @@ export interface AppSynthOptions {
|
|
|
111
124
|
*/
|
|
112
125
|
readonly bundlingForStacks?: string;
|
|
113
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Options to configure loading of the assembly after it has been synthesized
|
|
129
|
+
*/
|
|
130
|
+
export interface LoadAssemblyOptions {
|
|
131
|
+
/**
|
|
132
|
+
* Check the Toolkit supports the Cloud Assembly Schema version
|
|
133
|
+
*
|
|
134
|
+
* When disabled, allows to Toolkit to read a newer cloud assembly than the CX API is designed
|
|
135
|
+
* to support. Your application may not be aware of all features that in use in the Cloud Assembly.
|
|
136
|
+
*
|
|
137
|
+
* @default true
|
|
138
|
+
*/
|
|
139
|
+
readonly checkVersion?: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Validate enums to only have known values
|
|
142
|
+
*
|
|
143
|
+
* When disabled, the Toolkit may read enum values it doesn't know about yet.
|
|
144
|
+
* You will have to make sure to always check the values of enums you encounter in the manifest.
|
|
145
|
+
*
|
|
146
|
+
* @default true
|
|
147
|
+
*/
|
|
148
|
+
readonly checkEnums?: boolean;
|
|
149
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURpcmVjdG9yeVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyBhIENMSSBmcm9tIGFuIEFXUyBDREsgQXBwIGRpcmVjdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYXBwbGljYXRpb24gaW4gdGhpcyB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgaW50byBhIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBvdXRkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gY29udGV4dCBsb29rdXBzLlxuICAgKlxuICAgKiBTeW50aGVzaXMgZmFpbHMgaWYgdGhpcyBpcyBkaXNhYmxlZCBhbmQgY29udGV4dCBsb29rdXBzIG5lZWQgdG8gYmUgcGVyZm9ybWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udGV4dCB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQ29udGV4dCBjYW4gYmUgcmVhZCBpbiB0aGUgYXBwIGZyb20gYW55IGNvbnN0cnVjdCB1c2luZyBgbm9kZS5nZXRDb250ZXh0KGtleSlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0aHJvdWdoIHRoZSBjb250ZXh0IHRvIGEgQ0RLIGFwcCBvbiBzeW50aFxuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhPcHRpb25zPzogQXBwU3ludGhPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSBsb2FkaW5nIG9mIHRoZSBhc3NlbWJseSBhZnRlciBpdCBoYXMgYmVlbiBzeW50aGVzaXplZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEFzc2VtYmx5T3B0aW9ucz86IExvYWRBc3NlbWJseU9wdGlvbnM7XG59XG5cbi8qKlxuICogU2V0dGluZ3MgdGhhdCBhcmUgcGFzc2VkIHRvIGEgQ0RLIGFwcCB2aWEgdGhlIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTeW50aE9wdGlvbnMge1xuICAvKipcbiAgICogRGVidWcgdGhlIENESyBhcHAuXG4gICAqIExvZ3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBkdXJpbmcgc3ludGhlc2lzLCBzdWNoIGFzIGNyZWF0aW9uIHN0YWNrIHRyYWNlcyBvZiB0b2tlbnMuXG4gICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBgQ0RLX0RFQlVHYCBlbnYgdmFyaWFibGUgYW5kIHdpbGwgc2xvdyBkb3duIHN5bnRoZXNpcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXRoTWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZyBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uUmVwb3J0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlIGVuYWJsZWQsIGBhd3M6YXNzZXQ6eHh4YCBtZXRhZGF0YSBlbnRyaWVzIGFyZSBhZGRlZCB0byB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIERpc2FibGluZyB0aGlzIGNhbiBiZSB1c2VmdWwgaW4gY2VydGFpbiBjYXNlcyBsaWtlIGludGVncmF0aW9uIHRlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldE1ldGFkYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGFzc2V0IHN0YWdpbmcuXG4gICAqXG4gICAqIERpc2FibGluZyBhc3NldCBzdGFnaW5nIG1lYW5zIHRoYXQgY29weWFibGUgYXNzZXRzIHdpbGwgbm90IGJlIGNvcGllZCB0byB0aGVcbiAgICogb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIE5vdCBjb3BpZWQgdG8gdGhlIG91dHB1dCBkaXJlY3Rvcnk6IHRoaXMgaXMgc28gdXNlcnMgY2FuIGl0ZXJhdGUgb24gdGhlXG4gICAqIExhbWJkYSBzb3VyY2UgYW5kIHJ1biBTQU0gQ0xJIHdpdGhvdXQgaGF2aW5nIHRvIHJlLXJ1biBDREsgKG5vdGU6IHdlXG4gICAqIGNhbm5vdCBhY2hpZXZlIHRoaXMgZm9yIGJ1bmRsZWQgYXNzZXRzLCBpZiBhc3NldHMgYXJlIGJ1bmRsZWQgdGhleVxuICAgKiB3aWxsIGhhdmUgdG8gcmUtcnVuIENESyBDTEkgdG8gcmUtYnVuZGxlIHVwZGF0ZWQgdmVyc2lvbnMpLlxuICAgKlxuICAgKiBBYnNvbHV0ZSBwYXRoOiBTQU0gQ0xJIGV4cGVjdHMgYGN3ZGAtcmVsYXRpdmUgcGF0aHMgaW4gYSByZXNvdXJjZSdzXG4gICAqIGBhd3M6YXNzZXQ6cGF0aGAgbWV0YWRhdGEuIEluIG9yZGVyIHRvIGJlIHByZWRpY3RhYmxlLCB3ZSB3aWxsIGFsd2F5cyBvdXRwdXRcbiAgICogYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0U3RhZ2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB3aGljaCBzdGFja3Mgc2hvdWxkIGhhdmUgYXNzZXQgYnVuZGxpbmcgZW5hYmxlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXCIqKlwiXSAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRm9yU3RhY2tzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEFzc2VtYmx5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDaGVjayB0aGUgVG9vbGtpdCBzdXBwb3J0cyB0aGUgQ2xvdWQgQXNzZW1ibHkgU2NoZW1hIHZlcnNpb25cbiAgICpcbiAgICogV2hlbiBkaXNhYmxlZCwgYWxsb3dzIHRvIFRvb2xraXQgdG8gcmVhZCBhIG5ld2VyIGNsb3VkIGFzc2VtYmx5IHRoYW4gdGhlIENYIEFQSSBpcyBkZXNpZ25lZFxuICAgKiB0byBzdXBwb3J0LiBZb3VyIGFwcGxpY2F0aW9uIG1heSBub3QgYmUgYXdhcmUgb2YgYWxsIGZlYXR1cmVzIHRoYXQgaW4gdXNlIGluIHRoZSBDbG91ZCBBc3NlbWJseS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tWZXJzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgZW51bXMgdG8gb25seSBoYXZlIGtub3duIHZhbHVlc1xuICAgKlxuICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgVG9vbGtpdCBtYXkgcmVhZCBlbnVtIHZhbHVlcyBpdCBkb2Vzbid0IGtub3cgYWJvdXQgeWV0LlxuICAgKiBZb3Ugd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0byBhbHdheXMgY2hlY2sgdGhlIHZhbHVlcyBvZiBlbnVtcyB5b3UgZW5jb3VudGVyIGluIHRoZSBtYW5pZmVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tFbnVtcz86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -1,81 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
export declare enum StackSelectionStrategy {
|
|
5
|
-
/**
|
|
6
|
-
* Returns all stacks in the app regardless of patterns,
|
|
7
|
-
* including stacks inside nested assemblies.
|
|
8
|
-
*/
|
|
9
|
-
ALL_STACKS = "all-stacks",
|
|
10
|
-
/**
|
|
11
|
-
* Returns all stacks in the main (top level) assembly only.
|
|
12
|
-
*/
|
|
13
|
-
MAIN_ASSEMBLY = "main-assembly",
|
|
14
|
-
/**
|
|
15
|
-
* If the assembly includes a single stack, returns it.
|
|
16
|
-
* Otherwise throws an exception.
|
|
17
|
-
*/
|
|
18
|
-
ONLY_SINGLE = "only-single",
|
|
19
|
-
/**
|
|
20
|
-
* Return stacks matched by patterns.
|
|
21
|
-
* If no stacks are found, execution is halted successfully.
|
|
22
|
-
* Most likely you don't want to use this but `StackSelectionStrategy.MUST_MATCH_PATTERN`
|
|
23
|
-
*/
|
|
24
|
-
PATTERN_MATCH = "pattern-match",
|
|
25
|
-
/**
|
|
26
|
-
* Return stacks matched by patterns.
|
|
27
|
-
* Throws an exception if the patterns don't match at least one stack in the assembly.
|
|
28
|
-
*/
|
|
29
|
-
PATTERN_MUST_MATCH = "pattern-must-match",
|
|
30
|
-
/**
|
|
31
|
-
* Returns if exactly one stack is matched by the pattern(s).
|
|
32
|
-
* Throws an exception if no stack, or more than exactly one stack are matched.
|
|
33
|
-
*/
|
|
34
|
-
PATTERN_MUST_MATCH_SINGLE = "pattern-must-match-single"
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* When selecting stacks, what other stacks to include because of dependencies
|
|
38
|
-
*/
|
|
39
|
-
export declare enum ExpandStackSelection {
|
|
40
|
-
/**
|
|
41
|
-
* Don't select any extra stacks
|
|
42
|
-
*/
|
|
43
|
-
NONE = "none",
|
|
44
|
-
/**
|
|
45
|
-
* Include stacks that this stack depends on
|
|
46
|
-
*/
|
|
47
|
-
UPSTREAM = "upstream",
|
|
48
|
-
/**
|
|
49
|
-
* Include stacks that depend on this stack
|
|
50
|
-
*/
|
|
51
|
-
DOWNSTREAM = "downstream"
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* A specification of which stacks should be selected
|
|
55
|
-
*/
|
|
56
|
-
export interface StackSelector {
|
|
57
|
-
/**
|
|
58
|
-
* The behavior if if no selectors are provided.
|
|
59
|
-
*/
|
|
60
|
-
strategy: StackSelectionStrategy;
|
|
61
|
-
/**
|
|
62
|
-
* A list of patterns to match the stack hierarchical ids
|
|
63
|
-
* Only used with `PATTERN_*` selection strategies.
|
|
64
|
-
*/
|
|
65
|
-
patterns?: string[];
|
|
66
|
-
/**
|
|
67
|
-
* Expand the selection to upstream/downstream stacks.
|
|
68
|
-
* @default ExpandStackSelection.None only select the specified/matched stacks
|
|
69
|
-
*/
|
|
70
|
-
expand?: ExpandStackSelection;
|
|
71
|
-
/**
|
|
72
|
-
* By default, we throw an exception if the assembly contains no stacks.
|
|
73
|
-
* Set to `false`, to halt execution for empty assemblies without error.
|
|
74
|
-
*
|
|
75
|
-
* Note that actions can still throw if a stack selection result is empty,
|
|
76
|
-
* but the assembly contains stacks in principle.
|
|
77
|
-
*
|
|
78
|
-
* @default true
|
|
79
|
-
*/
|
|
80
|
-
failOnEmpty?: boolean;
|
|
81
|
-
}
|
|
1
|
+
export type { StackSelector } from '../shared-public';
|
|
2
|
+
export { ExpandStackSelection, StackSelectionStrategy } from '../shared-public';
|
|
@@ -1,64 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
(function (StackSelectionStrategy) {
|
|
9
|
-
/**
|
|
10
|
-
* Returns all stacks in the app regardless of patterns,
|
|
11
|
-
* including stacks inside nested assemblies.
|
|
12
|
-
*/
|
|
13
|
-
StackSelectionStrategy["ALL_STACKS"] = "all-stacks";
|
|
14
|
-
/**
|
|
15
|
-
* Returns all stacks in the main (top level) assembly only.
|
|
16
|
-
*/
|
|
17
|
-
StackSelectionStrategy["MAIN_ASSEMBLY"] = "main-assembly";
|
|
18
|
-
/**
|
|
19
|
-
* If the assembly includes a single stack, returns it.
|
|
20
|
-
* Otherwise throws an exception.
|
|
21
|
-
*/
|
|
22
|
-
StackSelectionStrategy["ONLY_SINGLE"] = "only-single";
|
|
23
|
-
/**
|
|
24
|
-
* Return stacks matched by patterns.
|
|
25
|
-
* If no stacks are found, execution is halted successfully.
|
|
26
|
-
* Most likely you don't want to use this but `StackSelectionStrategy.MUST_MATCH_PATTERN`
|
|
27
|
-
*/
|
|
28
|
-
StackSelectionStrategy["PATTERN_MATCH"] = "pattern-match";
|
|
29
|
-
/**
|
|
30
|
-
* Return stacks matched by patterns.
|
|
31
|
-
* Throws an exception if the patterns don't match at least one stack in the assembly.
|
|
32
|
-
*/
|
|
33
|
-
StackSelectionStrategy["PATTERN_MUST_MATCH"] = "pattern-must-match";
|
|
34
|
-
/**
|
|
35
|
-
* Returns if exactly one stack is matched by the pattern(s).
|
|
36
|
-
* Throws an exception if no stack, or more than exactly one stack are matched.
|
|
37
|
-
*/
|
|
38
|
-
StackSelectionStrategy["PATTERN_MUST_MATCH_SINGLE"] = "pattern-must-match-single";
|
|
39
|
-
})(StackSelectionStrategy || (exports.StackSelectionStrategy = StackSelectionStrategy = {}));
|
|
40
|
-
/**
|
|
41
|
-
* When selecting stacks, what other stacks to include because of dependencies
|
|
42
|
-
*/
|
|
43
|
-
var ExpandStackSelection;
|
|
44
|
-
(function (ExpandStackSelection) {
|
|
45
|
-
/**
|
|
46
|
-
* Don't select any extra stacks
|
|
47
|
-
*/
|
|
48
|
-
ExpandStackSelection["NONE"] = "none";
|
|
49
|
-
/**
|
|
50
|
-
* Include stacks that this stack depends on
|
|
51
|
-
*/
|
|
52
|
-
ExpandStackSelection["UPSTREAM"] = "upstream";
|
|
53
|
-
/**
|
|
54
|
-
* Include stacks that depend on this stack
|
|
55
|
-
*/
|
|
56
|
-
ExpandStackSelection["DOWNSTREAM"] = "downstream";
|
|
57
|
-
/**
|
|
58
|
-
* @TODO
|
|
59
|
-
* Include both directions.
|
|
60
|
-
* I.e. stacks that this stack depends on, and stacks that depend on this stack.
|
|
61
|
-
*/
|
|
62
|
-
// FULL = 'full',
|
|
63
|
-
})(ExpandStackSelection || (exports.ExpandStackSelection = ExpandStackSelection = {}));
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksc0JBb0NYO0FBcENELFdBQVksc0JBQXNCO0lBQ2hDOzs7T0FHRztJQUNILG1EQUF5QixDQUFBO0lBRXpCOztPQUVHO0lBQ0gseURBQStCLENBQUE7SUFFL0I7OztPQUdHO0lBQ0gscURBQTJCLENBQUE7SUFFM0I7Ozs7T0FJRztJQUNILHlEQUErQixDQUFBO0lBRS9COzs7T0FHRztJQUNILG1FQUF5QyxDQUFBO0lBRXpDOzs7T0FHRztJQUNILGlGQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFwQ1csc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFvQ2pDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLG9CQXNCWDtBQXRCRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILHFDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDZDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsaURBQXlCLENBQUE7SUFFekI7Ozs7T0FJRztJQUNILGlCQUFpQjtBQUNuQixDQUFDLEVBdEJXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBc0IvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2hpY2ggc3RhY2tzIHNob3VsZCBiZSBzZWxlY3RlZCBmcm9tIGEgY2xvdWQgYXNzZW1ibHlcbiAqL1xuZXhwb3J0IGVudW0gU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBzdGFja3MgaW4gdGhlIGFwcCByZWdhcmRsZXNzIG9mIHBhdHRlcm5zLFxuICAgKiBpbmNsdWRpbmcgc3RhY2tzIGluc2lkZSBuZXN0ZWQgYXNzZW1ibGllcy5cbiAgICovXG4gIEFMTF9TVEFDS1MgPSAnYWxsLXN0YWNrcycsXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN0YWNrcyBpbiB0aGUgbWFpbiAodG9wIGxldmVsKSBhc3NlbWJseSBvbmx5LlxuICAgKi9cbiAgTUFJTl9BU1NFTUJMWSA9ICdtYWluLWFzc2VtYmx5JyxcblxuICAvKipcbiAgICogSWYgdGhlIGFzc2VtYmx5IGluY2x1ZGVzIGEgc2luZ2xlIHN0YWNrLCByZXR1cm5zIGl0LlxuICAgKiBPdGhlcndpc2UgdGhyb3dzIGFuIGV4Y2VwdGlvbi5cbiAgICovXG4gIE9OTFlfU0lOR0xFID0gJ29ubHktc2luZ2xlJyxcblxuICAvKipcbiAgICogUmV0dXJuIHN0YWNrcyBtYXRjaGVkIGJ5IHBhdHRlcm5zLlxuICAgKiBJZiBubyBzdGFja3MgYXJlIGZvdW5kLCBleGVjdXRpb24gaXMgaGFsdGVkIHN1Y2Nlc3NmdWxseS5cbiAgICogTW9zdCBsaWtlbHkgeW91IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgYnV0IGBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1VU1RfTUFUQ0hfUEFUVEVSTmBcbiAgICovXG4gIFBBVFRFUk5fTUFUQ0ggPSAncGF0dGVybi1tYXRjaCcsXG5cbiAgLyoqXG4gICAqIFJldHVybiBzdGFja3MgbWF0Y2hlZCBieSBwYXR0ZXJucy5cbiAgICogVGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybnMgZG9uJ3QgbWF0Y2ggYXQgbGVhc3Qgb25lIHN0YWNrIGluIHRoZSBhc3NlbWJseS5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSCA9ICdwYXR0ZXJuLW11c3QtbWF0Y2gnLFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIGV4YWN0bHkgb25lIHN0YWNrIGlzIG1hdGNoZWQgYnkgdGhlIHBhdHRlcm4ocykuXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgbm8gc3RhY2ssIG9yIG1vcmUgdGhhbiBleGFjdGx5IG9uZSBzdGFjayBhcmUgbWF0Y2hlZC5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEUgPSAncGF0dGVybi1tdXN0LW1hdGNoLXNpbmdsZScsXG59XG5cbi8qKlxuICogV2hlbiBzZWxlY3Rpbmcgc3RhY2tzLCB3aGF0IG90aGVyIHN0YWNrcyB0byBpbmNsdWRlIGJlY2F1c2Ugb2YgZGVwZW5kZW5jaWVzXG4gKi9cbmV4cG9ydCBlbnVtIEV4cGFuZFN0YWNrU2VsZWN0aW9uIHtcbiAgLyoqXG4gICAqIERvbid0IHNlbGVjdCBhbnkgZXh0cmEgc3RhY2tzXG4gICAqL1xuICBOT05FID0gJ25vbmUnLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IHRoaXMgc3RhY2sgZGVwZW5kcyBvblxuICAgKi9cbiAgVVBTVFJFQU0gPSAndXBzdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGlzIHN0YWNrXG4gICAqL1xuICBET1dOU1RSRUFNID0gJ2Rvd25zdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBAVE9ET1xuICAgKiBJbmNsdWRlIGJvdGggZGlyZWN0aW9ucy5cbiAgICogSS5lLiBzdGFja3MgdGhhdCB0aGlzIHN0YWNrIGRlcGVuZHMgb24sIGFuZCBzdGFja3MgdGhhdCBkZXBlbmQgb24gdGhpcyBzdGFjay5cbiAgICovXG4gIC8vIEZVTEwgPSAnZnVsbCcsXG59XG5cbi8qKlxuICogQSBzcGVjaWZpY2F0aW9uIG9mIHdoaWNoIHN0YWNrcyBzaG91bGQgYmUgc2VsZWN0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlbGVjdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBiZWhhdmlvciBpZiBpZiBubyBzZWxlY3RvcnMgYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgc3RyYXRlZ3k6IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXR0ZXJucyB0byBtYXRjaCB0aGUgc3RhY2sgaGllcmFyY2hpY2FsIGlkc1xuICAgKiBPbmx5IHVzZWQgd2l0aCBgUEFUVEVSTl8qYCBzZWxlY3Rpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIHBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4cGFuZCB0aGUgc2VsZWN0aW9uIHRvIHVwc3RyZWFtL2Rvd25zdHJlYW0gc3RhY2tzLlxuICAgKiBAZGVmYXVsdCBFeHBhbmRTdGFja1NlbGVjdGlvbi5Ob25lIG9ubHkgc2VsZWN0IHRoZSBzcGVjaWZpZWQvbWF0Y2hlZCBzdGFja3NcbiAgICovXG4gIGV4cGFuZD86IEV4cGFuZFN0YWNrU2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIGFzc2VtYmx5IGNvbnRhaW5zIG5vIHN0YWNrcy5cbiAgICogU2V0IHRvIGBmYWxzZWAsIHRvIGhhbHQgZXhlY3V0aW9uIGZvciBlbXB0eSBhc3NlbWJsaWVzIHdpdGhvdXQgZXJyb3IuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBhY3Rpb25zIGNhbiBzdGlsbCB0aHJvdyBpZiBhIHN0YWNrIHNlbGVjdGlvbiByZXN1bHQgaXMgZW1wdHksXG4gICAqIGJ1dCB0aGUgYXNzZW1ibHkgY29udGFpbnMgc3RhY2tzIGluIHByaW5jaXBsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZmFpbE9uRW1wdHk/OiBib29sZWFuO1xufVxuIl19
|
|
3
|
+
exports.StackSelectionStrategy = exports.ExpandStackSelection = void 0;
|
|
4
|
+
var shared_public_1 = require("../shared-public");
|
|
5
|
+
Object.defineProperty(exports, "ExpandStackSelection", { enumerable: true, get: function () { return shared_public_1.ExpandStackSelection; } });
|
|
6
|
+
Object.defineProperty(exports, "StackSelectionStrategy", { enumerable: true, get: function () { return shared_public_1.StackSelectionStrategy; } });
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrREFBZ0Y7QUFBdkUscUhBQUEsb0JBQW9CLE9BQUE7QUFBRSx1SEFBQSxzQkFBc0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uL3NoYXJlZC1wdWJsaWMnO1xuZXhwb3J0IHsgRXhwYW5kU3RhY2tTZWxlY3Rpb24sIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9zaGFyZWQtcHVibGljJztcbiJdfQ==
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './logger';
|
|
4
|
-
export * from './messages';
|
|
5
|
-
export * from './timer';
|
|
1
|
+
export { IO, SPAN } from '../../shared-private';
|
|
2
|
+
export * from './io-host-wrappers';
|
|
3
|
+
export * from './sdk-logger';
|
|
@@ -14,9 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__exportStar(require("./
|
|
22
|
-
|
|
17
|
+
exports.SPAN = exports.IO = void 0;
|
|
18
|
+
var shared_private_1 = require("../../shared-private");
|
|
19
|
+
Object.defineProperty(exports, "IO", { enumerable: true, get: function () { return shared_private_1.IO; } });
|
|
20
|
+
Object.defineProperty(exports, "SPAN", { enumerable: true, get: function () { return shared_private_1.SPAN; } });
|
|
21
|
+
__exportStar(require("./io-host-wrappers"), exports);
|
|
22
|
+
__exportStar(require("./sdk-logger"), exports);
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFnRDtBQUF2QyxvR0FBQSxFQUFFLE9BQUE7QUFBRSxzR0FBQSxJQUFJLE9BQUE7QUFDakIscURBQW1DO0FBQ25DLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IElPLCBTUEFOIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pby1ob3N0LXdyYXBwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc2RrLWxvZ2dlcic7XG5cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IIoHost } from '../';
|
|
2
|
+
/**
|
|
3
|
+
* An IoHost wrapper that strips out ANSI colors and styles from the message before
|
|
4
|
+
* sending the message to the given IoHost
|
|
5
|
+
*/
|
|
6
|
+
export declare function withoutColor(ioHost: IIoHost): IIoHost;
|
|
7
|
+
/**
|
|
8
|
+
* An IoHost wrapper that strips out emojis from the message before
|
|
9
|
+
* sending the message to the given IoHost
|
|
10
|
+
*/
|
|
11
|
+
export declare function withoutEmojis(ioHost: IIoHost): IIoHost;
|
|
12
|
+
/**
|
|
13
|
+
* An IoHost wrapper that trims whitespace at the beginning and end of messages.
|
|
14
|
+
* This is required, since after removing emojis and ANSI colors,
|
|
15
|
+
* we might end up with floating whitespace at either end.
|
|
16
|
+
*/
|
|
17
|
+
export declare function withTrimmedWhitespace(ioHost: IIoHost): IIoHost;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withoutColor = withoutColor;
|
|
4
|
+
exports.withoutEmojis = withoutEmojis;
|
|
5
|
+
exports.withTrimmedWhitespace = withTrimmedWhitespace;
|
|
6
|
+
/**
|
|
7
|
+
* An IoHost wrapper that strips out ANSI colors and styles from the message before
|
|
8
|
+
* sending the message to the given IoHost
|
|
9
|
+
*/
|
|
10
|
+
function withoutColor(ioHost) {
|
|
11
|
+
return {
|
|
12
|
+
notify: async (msg) => {
|
|
13
|
+
await ioHost.notify({
|
|
14
|
+
...msg,
|
|
15
|
+
message: stripColor(msg.message),
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
requestResponse: async (msg) => {
|
|
19
|
+
return ioHost.requestResponse({
|
|
20
|
+
...msg,
|
|
21
|
+
message: stripColor(msg.message),
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function stripColor(msg) {
|
|
27
|
+
return msg.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* An IoHost wrapper that strips out emojis from the message before
|
|
31
|
+
* sending the message to the given IoHost
|
|
32
|
+
*/
|
|
33
|
+
function withoutEmojis(ioHost) {
|
|
34
|
+
return {
|
|
35
|
+
notify: async (msg) => {
|
|
36
|
+
await ioHost.notify({
|
|
37
|
+
...msg,
|
|
38
|
+
message: stripEmojis(msg.message),
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
requestResponse: async (msg) => {
|
|
42
|
+
return ioHost.requestResponse({
|
|
43
|
+
...msg,
|
|
44
|
+
message: stripEmojis(msg.message),
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function stripEmojis(msg) {
|
|
50
|
+
// https://www.unicode.org/reports/tr51/#def_emoji_presentation
|
|
51
|
+
return msg.replace(/\p{Emoji_Presentation}/gu, '');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* An IoHost wrapper that trims whitespace at the beginning and end of messages.
|
|
55
|
+
* This is required, since after removing emojis and ANSI colors,
|
|
56
|
+
* we might end up with floating whitespace at either end.
|
|
57
|
+
*/
|
|
58
|
+
function withTrimmedWhitespace(ioHost) {
|
|
59
|
+
return {
|
|
60
|
+
notify: async (msg) => {
|
|
61
|
+
await ioHost.notify({
|
|
62
|
+
...msg,
|
|
63
|
+
message: msg.message.trim(),
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
requestResponse: async (msg) => {
|
|
67
|
+
return ioHost.requestResponse({
|
|
68
|
+
...msg,
|
|
69
|
+
message: msg.message.trim(),
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8taG9zdC13cmFwcGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlvLWhvc3Qtd3JhcHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSxvQ0FlQztBQVVELHNDQWVDO0FBWUQsc0RBZUM7QUF2RUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE1BQWU7SUFDMUMsT0FBTztRQUNMLE1BQU0sRUFBRSxLQUFLLEVBQUssR0FBaUIsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDbEIsR0FBRyxHQUFHO2dCQUNOLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUNqQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsZUFBZSxFQUFFLEtBQUssRUFBUSxHQUFvQixFQUFFLEVBQUU7WUFDcEQsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDO2dCQUM1QixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDZFQUE2RSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hHLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQUMsTUFBZTtJQUMzQyxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBSyxHQUFpQixFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNsQixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2FBQ2xDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxlQUFlLEVBQUUsS0FBSyxFQUFRLEdBQW9CLEVBQUUsRUFBRTtZQUNwRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUM7Z0JBQzVCLEdBQUcsR0FBRztnQkFDTixPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBVztJQUM5QiwrREFBK0Q7SUFDL0QsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBZTtJQUNuRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBSyxHQUFpQixFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUNsQixHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO2FBQzVCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxlQUFlLEVBQUUsS0FBSyxFQUFRLEdBQW9CLEVBQUUsRUFBRTtZQUNwRCxPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUM7Z0JBQzVCLEdBQUcsR0FBRztnQkFDTixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJb01lc3NhZ2UsIElvUmVxdWVzdCwgSUlvSG9zdCB9IGZyb20gJy4uLyc7XG5cbi8qKlxuICogQW4gSW9Ib3N0IHdyYXBwZXIgdGhhdCBzdHJpcHMgb3V0IEFOU0kgY29sb3JzIGFuZCBzdHlsZXMgZnJvbSB0aGUgbWVzc2FnZSBiZWZvcmVcbiAqIHNlbmRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIGdpdmVuIElvSG9zdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dENvbG9yKGlvSG9zdDogSUlvSG9zdCk6IElJb0hvc3Qge1xuICByZXR1cm4ge1xuICAgIG5vdGlmeTogYXN5bmMgPFQ+KG1zZzogSW9NZXNzYWdlPFQ+KSA9PiB7XG4gICAgICBhd2FpdCBpb0hvc3Qubm90aWZ5KHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBtZXNzYWdlOiBzdHJpcENvbG9yKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcmVxdWVzdFJlc3BvbnNlOiBhc3luYyA8VCwgVT4obXNnOiBJb1JlcXVlc3Q8VCwgVT4pID0+IHtcbiAgICAgIHJldHVybiBpb0hvc3QucmVxdWVzdFJlc3BvbnNlKHtcbiAgICAgICAgLi4ubXNnLFxuICAgICAgICBtZXNzYWdlOiBzdHJpcENvbG9yKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmlwQ29sb3IobXNnOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbXNnLnJlcGxhY2UoL1tcXHUwMDFiXFx1MDA5Yl1bWygpIzs/XSooPzpbMC05XXsxLDR9KD86O1swLTldezAsNH0pKik/WzAtOUEtT1JaY2YtbnFyeT0+PF0vZywgJycpO1xufVxuXG4vKipcbiAqIEFuIElvSG9zdCB3cmFwcGVyIHRoYXQgc3RyaXBzIG91dCBlbW9qaXMgZnJvbSB0aGUgbWVzc2FnZSBiZWZvcmVcbiAqIHNlbmRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIGdpdmVuIElvSG9zdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dEVtb2ppcyhpb0hvc3Q6IElJb0hvc3QpOiBJSW9Ib3N0IHtcbiAgcmV0dXJuIHtcbiAgICBub3RpZnk6IGFzeW5jIDxUPihtc2c6IElvTWVzc2FnZTxUPikgPT4ge1xuICAgICAgYXdhaXQgaW9Ib3N0Lm5vdGlmeSh7XG4gICAgICAgIC4uLm1zZyxcbiAgICAgICAgbWVzc2FnZTogc3RyaXBFbW9qaXMobXNnLm1lc3NhZ2UpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICByZXF1ZXN0UmVzcG9uc2U6IGFzeW5jIDxULCBVPihtc2c6IElvUmVxdWVzdDxULCBVPikgPT4ge1xuICAgICAgcmV0dXJuIGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIG1lc3NhZ2U6IHN0cmlwRW1vamlzKG1zZy5tZXNzYWdlKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmlwRW1vamlzKG1zZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjUxLyNkZWZfZW1vamlfcHJlc2VudGF0aW9uXG4gIHJldHVybiBtc2cucmVwbGFjZSgvXFxwe0Vtb2ppX1ByZXNlbnRhdGlvbn0vZ3UsICcnKTtcbn1cblxuLyoqXG4gKiBBbiBJb0hvc3Qgd3JhcHBlciB0aGF0IHRyaW1zIHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIG1lc3NhZ2VzLlxuICogVGhpcyBpcyByZXF1aXJlZCwgc2luY2UgYWZ0ZXIgcmVtb3ZpbmcgZW1vamlzIGFuZCBBTlNJIGNvbG9ycyxcbiAqIHdlIG1pZ2h0IGVuZCB1cCB3aXRoIGZsb2F0aW5nIHdoaXRlc3BhY2UgYXQgZWl0aGVyIGVuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhUcmltbWVkV2hpdGVzcGFjZShpb0hvc3Q6IElJb0hvc3QpOiBJSW9Ib3N0IHtcbiAgcmV0dXJuIHtcbiAgICBub3RpZnk6IGFzeW5jIDxUPihtc2c6IElvTWVzc2FnZTxUPikgPT4ge1xuICAgICAgYXdhaXQgaW9Ib3N0Lm5vdGlmeSh7XG4gICAgICAgIC4uLm1zZyxcbiAgICAgICAgbWVzc2FnZTogbXNnLm1lc3NhZ2UudHJpbSgpLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICByZXF1ZXN0UmVzcG9uc2U6IGFzeW5jIDxULCBVPihtc2c6IElvUmVxdWVzdDxULCBVPikgPT4ge1xuICAgICAgcmV0dXJuIGlvSG9zdC5yZXF1ZXN0UmVzcG9uc2Uoe1xuICAgICAgICAuLi5tc2csXG4gICAgICAgIG1lc3NhZ2U6IG1zZy5tZXNzYWdlLnRyaW0oKSxcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.asSdkLogger = asSdkLogger;
|
|
4
|
+
const util_1 = require("util");
|
|
5
|
+
const util_2 = require("../../../private/util");
|
|
6
|
+
const shared_private_1 = require("../../shared-private");
|
|
7
|
+
function asSdkLogger(ioHost) {
|
|
8
|
+
return new class {
|
|
9
|
+
// This is too much detail for our logs
|
|
10
|
+
trace(..._content) {
|
|
11
|
+
}
|
|
12
|
+
debug(..._content) {
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Info is called mostly (exclusively?) for successful API calls
|
|
16
|
+
*
|
|
17
|
+
* Payload:
|
|
18
|
+
*
|
|
19
|
+
* (Note the input contains entire CFN templates, for example)
|
|
20
|
+
*
|
|
21
|
+
* ```
|
|
22
|
+
* {
|
|
23
|
+
* clientName: 'S3Client',
|
|
24
|
+
* commandName: 'GetBucketLocationCommand',
|
|
25
|
+
* input: {
|
|
26
|
+
* Bucket: '.....',
|
|
27
|
+
* ExpectedBucketOwner: undefined
|
|
28
|
+
* },
|
|
29
|
+
* output: { LocationConstraint: 'eu-central-1' },
|
|
30
|
+
* metadata: {
|
|
31
|
+
* httpStatusCode: 200,
|
|
32
|
+
* requestId: '....',
|
|
33
|
+
* extendedRequestId: '...',
|
|
34
|
+
* cfId: undefined,
|
|
35
|
+
* attempts: 1,
|
|
36
|
+
* totalRetryDelay: 0
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
info(...content) {
|
|
42
|
+
void ioHost.notify(shared_private_1.IO.CDK_SDK_I0100.msg(`[sdk info] ${formatSdkLoggerContent(content)}`, {
|
|
43
|
+
sdkLevel: 'info',
|
|
44
|
+
content,
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
warn(...content) {
|
|
48
|
+
void ioHost.notify(shared_private_1.IO.CDK_SDK_I0100.msg(`[sdk warn] ${formatSdkLoggerContent(content)}`, {
|
|
49
|
+
sdkLevel: 'warn',
|
|
50
|
+
content,
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Error is called mostly (exclusively?) for failing API calls
|
|
55
|
+
*
|
|
56
|
+
* Payload (input would be the entire API call arguments).
|
|
57
|
+
*
|
|
58
|
+
* ```
|
|
59
|
+
* {
|
|
60
|
+
* clientName: 'STSClient',
|
|
61
|
+
* commandName: 'GetCallerIdentityCommand',
|
|
62
|
+
* input: {},
|
|
63
|
+
* error: AggregateError [ECONNREFUSED]:
|
|
64
|
+
* at internalConnectMultiple (node:net:1121:18)
|
|
65
|
+
* at afterConnectMultiple (node:net:1688:7) {
|
|
66
|
+
* code: 'ECONNREFUSED',
|
|
67
|
+
* '$metadata': { attempts: 3, totalRetryDelay: 600 },
|
|
68
|
+
* [errors]: [ [Error], [Error] ]
|
|
69
|
+
* },
|
|
70
|
+
* metadata: { attempts: 3, totalRetryDelay: 600 }
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
error(...content) {
|
|
75
|
+
void ioHost.notify(shared_private_1.IO.CDK_SDK_I0100.msg(`[sdk error] ${formatSdkLoggerContent(content)}`, {
|
|
76
|
+
sdkLevel: 'error',
|
|
77
|
+
content,
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* This can be anything.
|
|
84
|
+
*
|
|
85
|
+
* For debug, it seems to be mostly strings.
|
|
86
|
+
* For info, it seems to be objects.
|
|
87
|
+
*
|
|
88
|
+
* Stringify and join without separator.
|
|
89
|
+
*/
|
|
90
|
+
function formatSdkLoggerContent(content) {
|
|
91
|
+
if (content.length === 1) {
|
|
92
|
+
const apiFmt = formatApiCall(content[0]);
|
|
93
|
+
if (apiFmt) {
|
|
94
|
+
return apiFmt;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return content.map((x) => typeof x === 'string' ? x : (0, util_1.inspect)(x)).join('');
|
|
98
|
+
}
|
|
99
|
+
function formatApiCall(content) {
|
|
100
|
+
if (!isSdkApiCallSuccess(content) && !isSdkApiCallError(content)) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
const service = content.clientName.replace(/Client$/, '');
|
|
104
|
+
const api = content.commandName.replace(/Command$/, '');
|
|
105
|
+
const parts = [];
|
|
106
|
+
if ((content.metadata?.attempts ?? 0) > 1) {
|
|
107
|
+
parts.push(`[${content.metadata?.attempts} attempts, ${content.metadata?.totalRetryDelay}ms retry]`);
|
|
108
|
+
}
|
|
109
|
+
parts.push(`${service}.${api}(${JSON.stringify(content.input, util_2.replacerBufferWithInfo)})`);
|
|
110
|
+
if (isSdkApiCallSuccess(content)) {
|
|
111
|
+
parts.push('-> OK');
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
parts.push(`-> ${content.error}`);
|
|
115
|
+
}
|
|
116
|
+
return parts.join(' ');
|
|
117
|
+
}
|
|
118
|
+
function isSdkApiCallSuccess(x) {
|
|
119
|
+
return x && typeof x === 'object' && x.commandName && x.output;
|
|
120
|
+
}
|
|
121
|
+
function isSdkApiCallError(x) {
|
|
122
|
+
return x && typeof x === 'object' && x.commandName && x.error;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNkay1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFPQSxrQ0E2RUM7QUFuRkQsK0JBQStCO0FBRS9CLGdEQUErRDtBQUUvRCx5REFBMEM7QUFFMUMsU0FBZ0IsV0FBVyxDQUFDLE1BQWdCO0lBQzFDLE9BQU8sSUFBSTtRQUNULHVDQUF1QztRQUNoQyxLQUFLLENBQUMsR0FBRyxRQUFlO1FBQy9CLENBQUM7UUFDTSxLQUFLLENBQUMsR0FBRyxRQUFlO1FBQy9CLENBQUM7UUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0EwQkc7UUFDSSxJQUFJLENBQUMsR0FBRyxPQUFjO1lBQzNCLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsY0FBYyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO2dCQUN2RixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTzthQUNSLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVNLElBQUksQ0FBQyxHQUFHLE9BQWM7WUFDM0IsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZGLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPO2FBQ1IsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO1FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBb0JHO1FBQ0ksS0FBSyxDQUFDLEdBQUcsT0FBYztZQUM1QixLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtnQkFDeEYsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE9BQU87YUFDUixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLE9BQWM7SUFDNUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGNBQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsT0FBWTtJQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxjQUFjLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZSxXQUFXLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLDZCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTFGLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7U0FBTSxDQUFDO1FBQ04sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQW1CRCxTQUFTLG1CQUFtQixDQUFDLENBQU07SUFDakMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxDQUFNO0lBQy9CLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tICdAc21pdGh5L3R5cGVzJztcbmltcG9ydCB7IHJlcGxhY2VyQnVmZmVyV2l0aEluZm8gfSBmcm9tICcuLi8uLi8uLi9wcml2YXRlL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXByaXZhdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNTZGtMb2dnZXIoaW9Ib3N0OiBJb0hlbHBlcik6IExvZ2dlciB7XG4gIHJldHVybiBuZXcgY2xhc3MgaW1wbGVtZW50cyBMb2dnZXIge1xuICAgIC8vIFRoaXMgaXMgdG9vIG11Y2ggZGV0YWlsIGZvciBvdXIgbG9nc1xuICAgIHB1YmxpYyB0cmFjZSguLi5fY29udGVudDogYW55W10pIHtcbiAgICB9XG4gICAgcHVibGljIGRlYnVnKC4uLl9jb250ZW50OiBhbnlbXSkge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZm8gaXMgY2FsbGVkIG1vc3RseSAoZXhjbHVzaXZlbHk/KSBmb3Igc3VjY2Vzc2Z1bCBBUEkgY2FsbHNcbiAgICAgKlxuICAgICAqIFBheWxvYWQ6XG4gICAgICpcbiAgICAgKiAoTm90ZSB0aGUgaW5wdXQgY29udGFpbnMgZW50aXJlIENGTiB0ZW1wbGF0ZXMsIGZvciBleGFtcGxlKVxuICAgICAqXG4gICAgICogYGBgXG4gICAgICoge1xuICAgICAqICAgY2xpZW50TmFtZTogJ1MzQ2xpZW50JyxcbiAgICAgKiAgIGNvbW1hbmROYW1lOiAnR2V0QnVja2V0TG9jYXRpb25Db21tYW5kJyxcbiAgICAgKiAgIGlucHV0OiB7XG4gICAgICogICAgIEJ1Y2tldDogJy4uLi4uJyxcbiAgICAgKiAgICAgRXhwZWN0ZWRCdWNrZXRPd25lcjogdW5kZWZpbmVkXG4gICAgICogICB9LFxuICAgICAqICAgb3V0cHV0OiB7IExvY2F0aW9uQ29uc3RyYWludDogJ2V1LWNlbnRyYWwtMScgfSxcbiAgICAgKiAgIG1ldGFkYXRhOiB7XG4gICAgICogICAgIGh0dHBTdGF0dXNDb2RlOiAyMDAsXG4gICAgICogICAgIHJlcXVlc3RJZDogJy4uLi4nLFxuICAgICAqICAgICBleHRlbmRlZFJlcXVlc3RJZDogJy4uLicsXG4gICAgICogICAgIGNmSWQ6IHVuZGVmaW5lZCxcbiAgICAgKiAgICAgYXR0ZW1wdHM6IDEsXG4gICAgICogICAgIHRvdGFsUmV0cnlEZWxheTogMFxuICAgICAqICAgfVxuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgaW5mbyguLi5jb250ZW50OiBhbnlbXSkge1xuICAgICAgdm9pZCBpb0hvc3Qubm90aWZ5KElPLkNES19TREtfSTAxMDAubXNnKGBbc2RrIGluZm9dICR7Zm9ybWF0U2RrTG9nZ2VyQ29udGVudChjb250ZW50KX1gLCB7XG4gICAgICAgIHNka0xldmVsOiAnaW5mbycsXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIHdhcm4oLi4uY29udGVudDogYW55W10pIHtcbiAgICAgIHZvaWQgaW9Ib3N0Lm5vdGlmeShJTy5DREtfU0RLX0kwMTAwLm1zZyhgW3NkayB3YXJuXSAke2Zvcm1hdFNka0xvZ2dlckNvbnRlbnQoY29udGVudCl9YCwge1xuICAgICAgICBzZGtMZXZlbDogJ3dhcm4nLFxuICAgICAgICBjb250ZW50LFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVycm9yIGlzIGNhbGxlZCBtb3N0bHkgKGV4Y2x1c2l2ZWx5PykgZm9yIGZhaWxpbmcgQVBJIGNhbGxzXG4gICAgICpcbiAgICAgKiBQYXlsb2FkIChpbnB1dCB3b3VsZCBiZSB0aGUgZW50aXJlIEFQSSBjYWxsIGFyZ3VtZW50cykuXG4gICAgICpcbiAgICAgKiBgYGBcbiAgICAgKiB7XG4gICAgICogICBjbGllbnROYW1lOiAnU1RTQ2xpZW50JyxcbiAgICAgKiAgIGNvbW1hbmROYW1lOiAnR2V0Q2FsbGVySWRlbnRpdHlDb21tYW5kJyxcbiAgICAgKiAgIGlucHV0OiB7fSxcbiAgICAgKiAgIGVycm9yOiBBZ2dyZWdhdGVFcnJvciBbRUNPTk5SRUZVU0VEXTpcbiAgICAgKiAgICAgICBhdCBpbnRlcm5hbENvbm5lY3RNdWx0aXBsZSAobm9kZTpuZXQ6MTEyMToxOClcbiAgICAgKiAgICAgICBhdCBhZnRlckNvbm5lY3RNdWx0aXBsZSAobm9kZTpuZXQ6MTY4ODo3KSB7XG4gICAgICogICAgIGNvZGU6ICdFQ09OTlJFRlVTRUQnLFxuICAgICAqICAgICAnJG1ldGFkYXRhJzogeyBhdHRlbXB0czogMywgdG90YWxSZXRyeURlbGF5OiA2MDAgfSxcbiAgICAgKiAgICAgW2Vycm9yc106IFsgW0Vycm9yXSwgW0Vycm9yXSBdXG4gICAgICogICB9LFxuICAgICAqICAgbWV0YWRhdGE6IHsgYXR0ZW1wdHM6IDMsIHRvdGFsUmV0cnlEZWxheTogNjAwIH1cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGVycm9yKC4uLmNvbnRlbnQ6IGFueVtdKSB7XG4gICAgICB2b2lkIGlvSG9zdC5ub3RpZnkoSU8uQ0RLX1NES19JMDEwMC5tc2coYFtzZGsgZXJyb3JdICR7Zm9ybWF0U2RrTG9nZ2VyQ29udGVudChjb250ZW50KX1gLCB7XG4gICAgICAgIHNka0xldmVsOiAnZXJyb3InLFxuICAgICAgICBjb250ZW50LFxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIGNhbiBiZSBhbnl0aGluZy5cbiAqXG4gKiBGb3IgZGVidWcsIGl0IHNlZW1zIHRvIGJlIG1vc3RseSBzdHJpbmdzLlxuICogRm9yIGluZm8sIGl0IHNlZW1zIHRvIGJlIG9iamVjdHMuXG4gKlxuICogU3RyaW5naWZ5IGFuZCBqb2luIHdpdGhvdXQgc2VwYXJhdG9yLlxuICovXG5mdW5jdGlvbiBmb3JtYXRTZGtMb2dnZXJDb250ZW50KGNvbnRlbnQ6IGFueVtdKSB7XG4gIGlmIChjb250ZW50Lmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGFwaUZtdCA9IGZvcm1hdEFwaUNhbGwoY29udGVudFswXSk7XG4gICAgaWYgKGFwaUZtdCkge1xuICAgICAgcmV0dXJuIGFwaUZtdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvbnRlbnQubWFwKCh4KSA9PiB0eXBlb2YgeCA9PT0gJ3N0cmluZycgPyB4IDogaW5zcGVjdCh4KSkuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEFwaUNhbGwoY29udGVudDogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFpc1Nka0FwaUNhbGxTdWNjZXNzKGNvbnRlbnQpICYmICFpc1Nka0FwaUNhbGxFcnJvcihjb250ZW50KSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBzZXJ2aWNlID0gY29udGVudC5jbGllbnROYW1lLnJlcGxhY2UoL0NsaWVudCQvLCAnJyk7XG4gIGNvbnN0IGFwaSA9IGNvbnRlbnQuY29tbWFuZE5hbWUucmVwbGFjZSgvQ29tbWFuZCQvLCAnJyk7XG5cbiAgY29uc3QgcGFydHMgPSBbXTtcbiAgaWYgKChjb250ZW50Lm1ldGFkYXRhPy5hdHRlbXB0cyA/PyAwKSA+IDEpIHtcbiAgICBwYXJ0cy5wdXNoKGBbJHtjb250ZW50Lm1ldGFkYXRhPy5hdHRlbXB0c30gYXR0ZW1wdHMsICR7Y29udGVudC5tZXRhZGF0YT8udG90YWxSZXRyeURlbGF5fW1zIHJldHJ5XWApO1xuICB9XG5cbiAgcGFydHMucHVzaChgJHtzZXJ2aWNlfS4ke2FwaX0oJHtKU09OLnN0cmluZ2lmeShjb250ZW50LmlucHV0LCByZXBsYWNlckJ1ZmZlcldpdGhJbmZvKX0pYCk7XG5cbiAgaWYgKGlzU2RrQXBpQ2FsbFN1Y2Nlc3MoY29udGVudCkpIHtcbiAgICBwYXJ0cy5wdXNoKCctPiBPSycpO1xuICB9IGVsc2Uge1xuICAgIHBhcnRzLnB1c2goYC0+ICR7Y29udGVudC5lcnJvcn1gKTtcbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKCcgJyk7XG59XG5cbmludGVyZmFjZSBTZGtBcGlDYWxsQmFzZSB7XG4gIGNsaWVudE5hbWU6IHN0cmluZztcbiAgY29tbWFuZE5hbWU6IHN0cmluZztcbiAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBtZXRhZGF0YT86IHtcbiAgICBodHRwU3RhdHVzQ29kZT86IG51bWJlcjtcbiAgICByZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgZXh0ZW5kZWRSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgY2ZJZD86IHN0cmluZztcbiAgICBhdHRlbXB0cz86IG51bWJlcjtcbiAgICB0b3RhbFJldHJ5RGVsYXk/OiBudW1iZXI7XG4gIH07XG59XG5cbnR5cGUgU2RrQXBpQ2FsbFN1Y2Nlc3MgPSBTZGtBcGlDYWxsQmFzZSAmIHsgb3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9O1xudHlwZSBTZGtBcGlDYWxsRXJyb3IgPSBTZGtBcGlDYWxsQmFzZSAmIHsgZXJyb3I6IEVycm9yIH07XG5cbmZ1bmN0aW9uIGlzU2RrQXBpQ2FsbFN1Y2Nlc3MoeDogYW55KTogeCBpcyBTZGtBcGlDYWxsU3VjY2VzcyB7XG4gIHJldHVybiB4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmNvbW1hbmROYW1lICYmIHgub3V0cHV0O1xufVxuXG5mdW5jdGlvbiBpc1Nka0FwaUNhbGxFcnJvcih4OiBhbnkpOiB4IGlzIFNka0FwaUNhbGxFcnJvciB7XG4gIHJldHVybiB4ICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiB4LmNvbW1hbmROYW1lICYmIHguZXJyb3I7XG59XG4iXX0=
|