@rio-cloud/cdk-v2-constructs 7.5.3 → 7.5.4-alpha.0
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/.jsii +268 -99
- package/docs/changelog.md +2 -0
- package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test-custom-resource/handler.cjs +895 -46
- package/lib/kafka/kafka-topic.d.ts +5 -3
- package/lib/kafka/kafka-topic.js +1 -1
- package/node_modules/es-set-tostringtag/.eslintrc +13 -0
- package/node_modules/es-set-tostringtag/.nycrc +9 -0
- package/node_modules/es-set-tostringtag/CHANGELOG.md +67 -0
- package/node_modules/es-set-tostringtag/LICENSE +21 -0
- package/node_modules/es-set-tostringtag/README.md +53 -0
- package/node_modules/es-set-tostringtag/index.d.ts +10 -0
- package/node_modules/es-set-tostringtag/index.js +35 -0
- package/node_modules/es-set-tostringtag/package.json +78 -0
- package/node_modules/es-set-tostringtag/test/index.js +85 -0
- package/node_modules/es-set-tostringtag/tsconfig.json +9 -0
- package/node_modules/form-data/CHANGELOG.md +601 -0
- package/node_modules/form-data/{Readme.md → README.md} +34 -37
- package/node_modules/form-data/lib/browser.js +3 -1
- package/node_modules/form-data/lib/form_data.js +140 -147
- package/node_modules/form-data/lib/populate.js +5 -5
- package/node_modules/form-data/package.json +34 -23
- package/package.json +8 -5
- package/version.json +1 -1
|
@@ -97,8 +97,9 @@ export interface KafkaTopicProps {
|
|
|
97
97
|
/**
|
|
98
98
|
* Time how long messages are retained on Kafka cluster;
|
|
99
99
|
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
100
|
+
* For most cases, 7 days (604800000 ms) is recommended; up to 30 days may be considered
|
|
101
|
+
* only for exceptional scenarios with specific requirements and can lead to increased Kafka storage costs.
|
|
102
|
+
* The soft limit is 3 to 30 days.
|
|
102
103
|
* @defaultValue 7 days
|
|
103
104
|
*/
|
|
104
105
|
readonly retention?: Duration;
|
|
@@ -156,7 +157,8 @@ export interface KafkaTopicV4Props {
|
|
|
156
157
|
/**
|
|
157
158
|
* Time how long messages are retained on Kafka cluster;
|
|
158
159
|
*
|
|
159
|
-
*
|
|
160
|
+
* For most cases, 7 days (604800000 ms) is recommended; up to 30 days may be considered
|
|
161
|
+
* only for exceptional scenarios with specific requirements and can lead to increased Kafka storage costs.
|
|
160
162
|
* The soft limit is 3 to 30 days but can be increased upon requests.
|
|
161
163
|
* @defaultValue 7 days
|
|
162
164
|
*/
|
package/lib/kafka/kafka-topic.js
CHANGED
|
@@ -127,4 +127,4 @@ const mapProperties = (scope, props) => {
|
|
|
127
127
|
},
|
|
128
128
|
};
|
|
129
129
|
};
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtdG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2Fma2Eva2Fma2EtdG9waWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBaUU7QUFDakUsbUNBQW1DO0FBQ25DLDJDQUFtRDtBQUNuRCx5REFBMEU7QUFDMUUsMERBQXFEO0FBaVByRDs7OztHQUlHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFFdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBR2pCLHlCQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUV6RSxJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUsR0FBRzthQUNiO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUFqQkgsZ0NBa0JDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUs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QUFrQjtRQUM1QyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQztRQUMvQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO1FBQ25FLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzlGLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxLQUFLO1FBQzdELGFBQWEsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDMUQsU0FBUyxFQUFFLFNBQVM7UUFDcEIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtRQUM1QyxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7WUFDdEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTTtTQUN6QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgQ2ZuUmVzb3VyY2UsIEFubm90YXRpb25zIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgS2Fma2FFdmVudFNwZWMsIEthZmthRXZlbnRTcGVjU291cmNlIH0gZnJvbSAnLi9rYWZrYS1ldmVudC1zcGVjJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbi8qKlxuICogV3JhcHBlciBmb3IgYWxsIG1ldGEgZGF0YSBvZiBhIHRvcGljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNNZXRhRGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc3BlY3Mgb2YgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqL1xuICByZWFkb25seSBldmVudHM6IEthZmthRXZlbnRTcGVjU291cmNlW107XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlcyB0aGUgaW50ZW50IG9mIHRoZSB0b3BpYy4gVGhpcyBtaWdodCBiZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICogb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvZHVjZXIgYW5kIHRoZSBjb250ZXh0IG9mIHRoZSBldmVudHMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBtZXRhIGRhdGEgb2YgYSB2NCB0b3BpYyBzcGVjLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNNZXRhRGF0YVY0IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBzcGVjcyBvZiB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50czogS2Fma2FFdmVudFNwZWNTb3VyY2VbXTtcblxuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBpbnRlbnQgb2YgdGhlIHRvcGljLiBUaGlzIG1pZ2h0IGJlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudHMgb24gdGhhdCB0b3BpY1xuICAgKiBvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnRleHQgb2YgdGhlIGV2ZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRvcGljIGlzIG1lYW50IGZvciBjb21wb25lbnQgaW50ZXJuYWwgdXNhZ2Ugb25seSBvciBpZiBvdGhlciBzZXJ2aWNlcyBjb3VsZFxuICAgKiB1c2UgaXQgdG9vLlxuICAgKi9cbiAgcmVhZG9ubHkgYXVkaWVuY2U6IFRvcGljQXVkaWVuY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgcHJvZHVjZXIgd2lsbCByZXN0b3JlIHRoZSBkYXRhIGluIGNhc2Ugb2YgYSBkaXNhc3RlciBvciBub3QuXG4gICAqL1xuICByZWFkb25seSByZWNvdmVyeVBvbGljeTogVG9waWNSZWNvdmVyeVBvbGljeTtcbn1cblxuLyoqXG4gKiBSZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhlIHRvcGljLlxuICpcbiAqIHN0cmluZ3MgYXJlIG1hdGNoZWQgYWdhaW5zdCB0aGUgQ05BTUUgb2YgdGhlIGNlcnRpZmljYXRlIG9mIHRoZSBLYWZrYSBjbGllbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthQWNsU3RhdGVtZW50IHtcbiAgLyoqXG4gICogTGlzdCBvZiBjbGllbnRzIHRoYXQgc2hvdWxkIGdldCB3cml0ZSBwZXJtaXNzaW9uc1xuICAqL1xuICByZWFkb25seSB3cml0ZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgY2xpZW50cyB0aGF0IHNob3VsZCBnZXQgcmVhZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhZDogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgY2xpZW50cyB0aGF0IHNob3VsZCBnZXQgZGVsZXRlIHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBBdHRlbnRpb246IE9ubHkgdXNlIERlbGV0aW9uIHBvbGljeSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchXG4gICAqIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgZm9yIEtTdHJlYW0gYW5kIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gZGVsZXRlIG1lc3NhZ2VzIGFuZCB0aGUgdG9waWMuPGJyPlxuICAgKiBJZiB5b3UganVzdCB3YW50IHRvIFwiZGVsZXRlXCIgYSBtZXNzYWdlIG9uIGEgbG9nIGNvbXBhY3RlZCB0b3BpYywgeW91IHNob3VsZCBub3Qgc2V0IHRoaXMgcGVybWlzc2lvbiBhbmQgc2VuZCBhIHRvbWJzdG9uZSBtZXNzYWdlIGluc3RlYWQuXG4gICAqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgYWxsIGxvZyBjb21wYWN0aW9uIHJlbGF0ZWQgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dDb21wYWN0aW9uUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgdG8gcmV0YWluIGRlbGV0ZSB0b21ic3RvbmUgbWFya2VycyBmb3IgbG9nIGNvbXBhY3RlZCB0b3BpY3M7XG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDEwIGRheXMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHRWYWx1ZSAxIGRheVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUmV0ZW50aW9uPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogVGhlIGN1cnJlbnQgc2VydmljZSBsaW1pdHMgYXJlIGNvbmZpZ3VyZWQgaW4gdGhlIHRvcGljIG1hbmFnZXIuXG4gKiBJZiB5b3UgbmVlZCB0byBpbmNyZWFzZSB0aGUgbGltaXRzIGZvciB5b3VyIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IENMQUlELlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHRvcGljOyBoYXMgdG8gbWF0Y2ggcGF0dGVybiBbQS1aYS16MC05Li1dK1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiBwYXJhbGxlbGlzbSBvZiB0aGUgdG9waWM7IHNob3VsZCBiZSBpbmNyZWFzZWQgZm9yXG4gICAqIGxhcmdlIGV4cGVjdGVkIGxvYWRzIChlLmcuLCAyNSBmb3IgcmlvLmFzc2V0LWlvdC1ldmVudHMpLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBwYXJ0aXRpb25zIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZlBhcnRpdGlvbnM6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcmVwbGljYXRpb24gb2YgbWVzc2FnZXM7IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIHRoZSBudW1iZXIgb2YgYnJva2VycyAoY3VycmVudGx5IDMpLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGhvdyBsb25nIG1lc3NhZ2VzIGFyZSByZXRhaW5lZCBvbiBLYWZrYSBjbHVzdGVyO1xuICAgKlxuICAgKiBXZSByZWNvbW1lbmQgMzAgZGF5cyBmb3IgZ2VuZXJhbCBldmVudHMgYW5kIDcgZGF5cyBmb3Igc2Vuc29yIGV2ZW50cyBhbmQgb3RoZXIgaGlnaC1sb2FkIGNhc2VzLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAzIHRvIDMwIGRheXMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHRWYWx1ZSA3IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gJ2ZhbHNlLCB0aGUgdG9waWMncyBkYXRhIHdpbGwgYmUgZGVsZXRlZCBvbiBLYWZrYSAxMCBkYXlzIGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBJZiBzZXQgdG8gJ3RydWUnLCBpdCB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbnREZWxldGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IEthZmthVG9waWNNZXRhRGF0YTtcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0byB0aGUgdG9waWMncyBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNsOiBLYWZrYUFjbFN0YXRlbWVudDtcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBpcyBsb2cgY29tcGFjdGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9nQ29tcGFjdGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNdXN0IG9ubHkgYmUgcHJvdmlkZWQgaWYgJ2lzTG9nQ29tcGFjdGVkJyBpcyAndHJ1ZScuXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBsb2dDb21wYWN0aW9uUHJvcGVydGllcz86IExvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBjb21wYWN0aW9uIGxhZyBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgYSBtZXNzYWdlIGNhbiBiZSBkZWxheWVkIGJlZm9yZSBpdCBpcyBjb21wYWN0ZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgOTIyMzM3MjAzNjg1NDc3NTgwN1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29tcGFjdGlvbkxhZ01zPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBjdXJyZW50IHNlcnZpY2UgbGltaXRzIGFyZSBjb25maWd1cmVkIGluIHRoZSB0b3BpYyBtYW5hZ2VyLlxuICogSWYgeW91IG5lZWQgdG8gaW5jcmVhc2UgdGhlIGxpbWl0cyBmb3IgeW91ciBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBDTEFJRC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljVjRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHRvcGljOyBoYXMgdG8gbWF0Y2ggcGF0dGVybiBbQS1aYS16MC05Li1dK1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiBwYXJhbGxlbGlzbSBvZiB0aGUgdG9waWM7IHNob3VsZCBiZSBpbmNyZWFzZWQgZm9yXG4gICAqIGxhcmdlIGV4cGVjdGVkIGxvYWRzIChlLmcuLCAyNSBmb3IgcmlvLmFzc2V0LWlvdC1ldmVudHMpLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBwYXJ0aXRpb25zIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZlBhcnRpdGlvbnM6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcmVwbGljYXRpb24gb2YgbWVzc2FnZXM7IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIHRoZSBudW1iZXIgb2YgYnJva2VycyAoY3VycmVudGx5IDMpLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGhvdyBsb25nIG1lc3NhZ2VzIGFyZSByZXRhaW5lZCBvbiBLYWZrYSBjbHVzdGVyO1xuICAgKlxuICAgKiBXZSByZWNvbW1lbmQgMzAgZGF5cyBmb3IgZ2VuZXJhbCBldmVudHMgYW5kIDcgZGF5cyBmb3Igc2Vuc29yIGV2ZW50cyBhbmQgb3RoZXIgaGlnaC1sb2FkIGNhc2VzLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAzIHRvIDMwIGRheXMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHRWYWx1ZSA3IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gJ2ZhbHNlLCB0aGUgdG9waWMncyBkYXRhIHdpbGwgYmUgZGVsZXRlZCBvbiBLYWZrYSAxMCBkYXlzIGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBJZiBzZXQgdG8gJ3RydWUnLCBpdCB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbnREZWxldGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IEthZmthVG9waWNNZXRhRGF0YVY0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHRvIHRoZSB0b3BpYydzIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBhY2w6IEthZmthQWNsU3RhdGVtZW50O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIHRvcGljIGlzIGxvZyBjb21wYWN0ZWQgb3Igbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgaXNMb2dDb21wYWN0ZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE11c3Qgb25seSBiZSBwcm92aWRlZCBpZiAnaXNMb2dDb21wYWN0ZWQnIGlzICd0cnVlJy5cbiAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzPzogTG9nQ29tcGFjdGlvblByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgdG9waWMgc2hvdWxkIGJlIGJhY2tlZCB1cCBhdXRvbWF0aWNhbGx5IG9yIG5vdC5cbiAgICogSXQgY291bGQganVzdCBiZSBlbmFibGVkLCBpZiB0aGUgdG9waWMgaXMgY29tcGFjdGVkIGFuZCB0aGUgUmVjb3ZlcnlQb2xpY3kgaXMgJ3JlY292ZXJhYmxlJy5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IG1hbmFnZWRCYWNrdXBFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSBjb21wYWN0aW9uIGxhZyBpbiBtaWxsaXNlY29uZHMuXG4gICAgICpcbiAgICAgKiBUaGUgbWF4aW11bSB0aW1lIGEgbWVzc2FnZSBjYW4gYmUgZGVsYXllZCBiZWZvcmUgaXQgaXMgY29tcGFjdGVkLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgOTIyMzM3MjAzNjg1NDc3NTgwN1xuICAgICAqL1xuICByZWFkb25seSBtYXhDb21wYWN0aW9uTGFnTXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIFRvcGljcyB0YXJnZXQgYXVkaWVuY2VcbiAqL1xuZXhwb3J0IHR5cGUgVG9waWNBdWRpZW5jZSA9ICdjb21wb25lbnQtaW50ZXJuYWwnIHwgJ2NvbXBhbnktaW50ZXJuYWwnO1xuXG4vKipcbiAqIFRoZSBUb3BpY3MgcmVjb3ZlcnkgcG9saWN5IGd1YXJhbnRlZWQgYnkgdGhlIHByb2R1Y2VyXG4gKi9cbmV4cG9ydCB0eXBlIFRvcGljUmVjb3ZlcnlQb2xpY3kgPSAnbm9uZScgfCAncmVjb3ZlcmFibGUnO1xuXG4vKipcbiAqIENvbnN0cnVjdCB0byBjcmVhdGUgYSBrYWZrYSB0b3BpYy5cbiAqXG4gKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIEthZmthVG9waWNWNH0gaW5zdGVhZFxuICovXG5leHBvcnQgY2xhc3MgS2Fma2FUb3BpYyBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEthZmthVG9waWNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cblxuICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZERlcHJlY2F0aW9uKCdLYWZrYVRvcGljJywgXCJVc2UgJ0thZmthVG9waWNWNCchXCIpO1xuXG4gICAgbmV3IENmblJlc291cmNlKHRoaXMsICdLYWZrYVRvcGljJywge1xuICAgICAgdHlwZTogJ0N1c3RvbTo6S2Fma2FUb3BpYycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLm1hcFByb3BlcnRpZXModGhpcywgcHJvcHMpLFxuICAgICAgICBWZXJzaW9uOiAnMycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24odmFsaWRhdG9yKHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdG8gY3JlYXRlIGEga2Fma2EgdG9waWMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYVRvcGljVjQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBLYWZrYVRvcGljVjRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgQ2ZuUmVzb3VyY2UodGhpcywgJ0thZmthVG9waWMnLCB7XG4gICAgICB0eXBlOiAnQ3VzdG9tOjpLYWZrYVRvcGljJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4ubWFwUHJvcGVydGllcyh0aGlzLCBwcm9wcyksXG4gICAgICAgIFZlcnNpb246ICc0JyxcbiAgICAgICAgQXVkaWVuY2U6IHByb3BzLm1ldGFkYXRhLmF1ZGllbmNlLFxuICAgICAgICBSZWNvdmVyeVBvbGljeTogcHJvcHMubWV0YWRhdGEucmVjb3ZlcnlQb2xpY3ksXG4gICAgICAgIE1hbmFnZWRCYWNrdXBFbmFibGVkOiBwcm9wcy5tYW5hZ2VkQmFja3VwRW5hYmxlZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih2YWxpZGF0b3IocHJvcHMpKTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihiYWNrdXBQcm9wZXJ0aWVzVmFsaWRhdG9yKHByb3BzKSk7XG4gIH1cbn1cblxuY29uc3QgdmFsaWRhdG9yID0gKHByb3BzOiBLYWZrYVRvcGljUHJvcHMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB2YWxpZGF0ZTogKCk6IHN0cmluZ1tdID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICBpZiAoIXByb3BzLm5hbWUubWF0Y2goL15bQS1aYS16MC05Li1dKyQvKSkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbmFtZV06IGV4cGVjdGluZyB0b3BpYyBuYW1lIHRvIG1hdGNoIHRoZSByZWcgZXhwIGBbQS1aYS16MC05Li1dK2AuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMpIHx8IHByb3BzLm51bWJlck9mUGFydGl0aW9ucyA8IDEpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goYEludmFsaWQgW251bWJlck9mUGFydGl0aW9uc106IGV4cGVjdGluZyBudW1iZXIgb2YgcGFydGl0aW9ucyB0byBiZSBhIHBvc2l0aXZlIGludGVnZXIgYnV0IGdvdCAke3Byb3BzLm51bWJlck9mUGFydGl0aW9uc30uYCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yKSB8fCBwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciA8IDEgfHwgcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPiAzKSkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbcmVwbGljYXRpb25GYWN0b3JdOiBleHBlY3RpbmcgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDMuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wcy5tZXRhZGF0YS5ldmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFttZXRhZGF0YV06IGV4cGVjdGluZyBbZXZlbnRzXSB0byBoYXZlIGF0IGxlYXN0IG9uIGVsZW1lbnQuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghcHJvcHMuaXNMb2dDb21wYWN0ZWQgJiYgcHJvcHMubG9nQ29tcGFjdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW2xvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzXTogbG9nIGNvbXBhY3Rpb24gaXMgZGlzYWJsZWQgc28gcHJvcGVydGllcyBtdXN0IGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFwcm9wcy5pc0xvZ0NvbXBhY3RlZCAmJiBwcm9wcy5tYXhDb21wYWN0aW9uTGFnTXMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW21heENvbXBhY3Rpb25MYWdNc106IG1heCBjb21wYWN0aW9uIGxhZyBpcyBvbmx5IGFsbG93ZWQgZm9yIGxvZyBjb21wYWN0ZWQgdG9waWNzLicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gIH07XG59O1xuXG5jb25zdCBiYWNrdXBQcm9wZXJ0aWVzVmFsaWRhdG9yID0gKHByb3BzOiBLYWZrYVRvcGljVjRQcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbGlkYXRlOiAoKTogc3RyaW5nW10gPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgIGlmIChwcm9wcy5tYW5hZ2VkQmFja3VwRW5hYmxlZCAmJiAhcHJvcHMuaXNMb2dDb21wYWN0ZWQpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW21hbmFnZWRCYWNrdXBFbmFibGVkXTogbWFuYWdlZCBiYWNrdXAgY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgbG9nIGNvbXBhY3RlZCB0b3BpY3MuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wcy5tYW5hZ2VkQmFja3VwRW5hYmxlZCAmJiBwcm9wcy5tZXRhZGF0YS5yZWNvdmVyeVBvbGljeSAhPT0gJ3JlY292ZXJhYmxlJykge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbWFuYWdlZEJhY2t1cEVuYWJsZWRdOiB0b3BpY3Mgd2l0aCBtYW5hZ2VkQmFja3VwRW5hYmxlZCBoYXZlIHRvIGhhdmUgcmVjb3ZlcnkgcG9saWN5IFwicmVjb3ZlcmFibGVcIi4nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICB9O1xuXG59O1xuXG5jb25zdCBtYXBQcm9wZXJ0aWVzID0gKHNjb3BlOiBJQ29uc3RydWN0LCBwcm9wczogS2Fma2FUb3BpY1Byb3BzIHwgS2Fma2FUb3BpY1Y0UHJvcHMpID0+IHtcbiAgY29uc3QgdGVhbUVtYWlsID0gUmlvTGFuZGluZ1pvbmUuZ2V0VGVhbUVtYWlsUGFyYW1ldGVyKHNjb3BlKS5zdHJpbmdWYWx1ZTtcblxuICBjb25zdCBldmVudHMgPSBwcm9wcy5tZXRhZGF0YS5ldmVudHMubWFwKHNvdXJjZSA9PiB7XG4gICAgbmV3IEthZmthRXZlbnRTcGVjKHNjb3BlLCBgJHtzb3VyY2UuZXZlbnROYW1lLnJlcGxhY2UoL1xcLi9nLCAnXycpfS1FdmVudFNwZWNgLCB7IHNvdXJjZSB9KTtcbiAgICByZXR1cm4gc291cmNlLmV2ZW50TmFtZTtcbiAgfSk7XG5cbiAgY29uc3QgZGVsZXRlUmV0ZW50aW9uRHVyYXRpb24gPSBwcm9wcy5sb2dDb21wYWN0aW9uUHJvcGVydGllcz8uZGVsZXRlUmV0ZW50aW9uID8/IER1cmF0aW9uLmRheXMoNyk7XG4gIGlmIChwcm9wcy5hY2wuZGVsZXRlICE9IHVuZGVmaW5lZCAmJiBwcm9wcy5hY2wuZGVsZXRlLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBhbm5vdGF0aW9ucyA9IGNkay5Bbm5vdGF0aW9ucy5vZihjZGsuU3RhY2sub2Yoc2NvcGUpKTtcbiAgICBhbm5vdGF0aW9ucy5hZGRXYXJuaW5nVjIoXG4gICAgICBgQHJpby1jbG91ZC9jZGstdjItY29uc3RydWN0cy9rYWZrYS9rYWZrYS10b3BpYy8ke3Byb3BzLm5hbWV9L0RlbGV0aW9uUG9saWN5YCxcbiAgICAgIGBcbiDinYwgWW91IGhhdmUgc2V0IFwiZGVsZXRlXCIgcGVybWlzc2lvbiBmb3Iga2Fma2EtdG9waWMgJHtwcm9wcy5uYW1lfS4gWW91IHByb2JhYmx5IGRvIG5vdCBuZWVkIHRoaXMuIFBsZWFzZSB1c2UgdGhpcyBvbmx5IGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy5cbmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIFNlcnZpY2VUb2tlbjogJ2Fybjphd3M6c25zOmV1LXdlc3QtMToxODY5OTM3NTc3MzQ6ZHAtdG9waWMtbWFuYWdlci1zbnMtdG9waWMnLFxuICAgIFRvcGljTmFtZTogcHJvcHMubmFtZSxcbiAgICBEZXNjcmlwdGlvbjogcHJvcHMubWV0YWRhdGEuZGVzY3JpcHRpb24sXG4gICAgRXZlbnRzOiBldmVudHMsXG4gICAgTnVtYmVyT2ZQYXJ0aXRpb25zOiBwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMsXG4gICAgUmVwbGljYXRpb25GYWN0b3I6IHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yID8/IDMsXG4gICAgUmV0ZW50aW9uTXM6IChwcm9wcy5yZXRlbnRpb24gPz8gRHVyYXRpb24uZGF5cyg3KSkudG9NaWxsaXNlY29uZHMoKSxcbiAgICBEZWxldGVSZXRlbnRpb25NczogcHJvcHMuaXNMb2dDb21wYWN0ZWQgPyBkZWxldGVSZXRlbnRpb25EdXJhdGlvbi50b01pbGxpc2Vjb25kcygpIDogdW5kZWZpbmVkLFxuICAgIEluc3RhbnREZWxldGlvbkVuYWJsZWQ6IHByb3BzLmluc3RhbnREZWxldGlvbkVuYWJsZWQgPz8gZmFsc2UsXG4gICAgQ2xlYW51cFBvbGljeTogcHJvcHMuaXNMb2dDb21wYWN0ZWQgPyAnY29tcGFjdCcgOiAnZGVsZXRlJyxcbiAgICBUZWFtRW1haWw6IHRlYW1FbWFpbCxcbiAgICBNYXhDb21wYWN0aW9uTGFnTXM6IHByb3BzLm1heENvbXBhY3Rpb25MYWdNcyxcbiAgICBBQ0w6IHtcbiAgICAgIFJlYWQ6IHByb3BzLmFjbC5yZWFkLFxuICAgICAgV3JpdGU6IHByb3BzLmFjbC53cml0ZSxcbiAgICAgIERlbGV0ZTogcHJvcHMuYWNsLmRlbGV0ZSxcbiAgICB9LFxuICB9O1xufTtcbiJdfQ==
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtdG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2Fma2Eva2Fma2EtdG9waWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBaUU7QUFDakUsbUNBQW1DO0FBQ25DLDJDQUFtRDtBQUNuRCx5REFBMEU7QUFDMUUsMERBQXFEO0FBbVByRDs7OztHQUlHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFFdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBR2pCLHlCQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUV6RSxJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUsR0FBRzthQUNiO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUFqQkgsZ0NBa0JDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUs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QUFrQjtRQUM1QyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQztRQUMvQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO1FBQ25FLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzlGLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxLQUFLO1FBQzdELGFBQWEsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDMUQsU0FBUyxFQUFFLFNBQVM7UUFDcEIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtRQUM1QyxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUs7WUFDdEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTTtTQUN6QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgQ2ZuUmVzb3VyY2UsIEFubm90YXRpb25zIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgS2Fma2FFdmVudFNwZWMsIEthZmthRXZlbnRTcGVjU291cmNlIH0gZnJvbSAnLi9rYWZrYS1ldmVudC1zcGVjJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbi8qKlxuICogV3JhcHBlciBmb3IgYWxsIG1ldGEgZGF0YSBvZiBhIHRvcGljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNNZXRhRGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc3BlY3Mgb2YgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqL1xuICByZWFkb25seSBldmVudHM6IEthZmthRXZlbnRTcGVjU291cmNlW107XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlcyB0aGUgaW50ZW50IG9mIHRoZSB0b3BpYy4gVGhpcyBtaWdodCBiZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICogb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvZHVjZXIgYW5kIHRoZSBjb250ZXh0IG9mIHRoZSBldmVudHMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBtZXRhIGRhdGEgb2YgYSB2NCB0b3BpYyBzcGVjLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNNZXRhRGF0YVY0IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBzcGVjcyBvZiB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50czogS2Fma2FFdmVudFNwZWNTb3VyY2VbXTtcblxuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBpbnRlbnQgb2YgdGhlIHRvcGljLiBUaGlzIG1pZ2h0IGJlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBldmVudHMgb24gdGhhdCB0b3BpY1xuICAgKiBvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnRleHQgb2YgdGhlIGV2ZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRvcGljIGlzIG1lYW50IGZvciBjb21wb25lbnQgaW50ZXJuYWwgdXNhZ2Ugb25seSBvciBpZiBvdGhlciBzZXJ2aWNlcyBjb3VsZFxuICAgKiB1c2UgaXQgdG9vLlxuICAgKi9cbiAgcmVhZG9ubHkgYXVkaWVuY2U6IFRvcGljQXVkaWVuY2U7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgcHJvZHVjZXIgd2lsbCByZXN0b3JlIHRoZSBkYXRhIGluIGNhc2Ugb2YgYSBkaXNhc3RlciBvciBub3QuXG4gICAqL1xuICByZWFkb25seSByZWNvdmVyeVBvbGljeTogVG9waWNSZWNvdmVyeVBvbGljeTtcbn1cblxuLyoqXG4gKiBSZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhlIHRvcGljLlxuICpcbiAqIHN0cmluZ3MgYXJlIG1hdGNoZWQgYWdhaW5zdCB0aGUgQ05BTUUgb2YgdGhlIGNlcnRpZmljYXRlIG9mIHRoZSBLYWZrYSBjbGllbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthQWNsU3RhdGVtZW50IHtcbiAgLyoqXG4gICogTGlzdCBvZiBjbGllbnRzIHRoYXQgc2hvdWxkIGdldCB3cml0ZSBwZXJtaXNzaW9uc1xuICAqL1xuICByZWFkb25seSB3cml0ZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgY2xpZW50cyB0aGF0IHNob3VsZCBnZXQgcmVhZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhZDogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgY2xpZW50cyB0aGF0IHNob3VsZCBnZXQgZGVsZXRlIHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBBdHRlbnRpb246IE9ubHkgdXNlIERlbGV0aW9uIHBvbGljeSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchXG4gICAqIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgZm9yIEtTdHJlYW0gYW5kIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gZGVsZXRlIG1lc3NhZ2VzIGFuZCB0aGUgdG9waWMuPGJyPlxuICAgKiBJZiB5b3UganVzdCB3YW50IHRvIFwiZGVsZXRlXCIgYSBtZXNzYWdlIG9uIGEgbG9nIGNvbXBhY3RlZCB0b3BpYywgeW91IHNob3VsZCBub3Qgc2V0IHRoaXMgcGVybWlzc2lvbiBhbmQgc2VuZCBhIHRvbWJzdG9uZSBtZXNzYWdlIGluc3RlYWQuXG4gICAqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgYWxsIGxvZyBjb21wYWN0aW9uIHJlbGF0ZWQgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dDb21wYWN0aW9uUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgdG8gcmV0YWluIGRlbGV0ZSB0b21ic3RvbmUgbWFya2VycyBmb3IgbG9nIGNvbXBhY3RlZCB0b3BpY3M7XG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDEwIGRheXMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHRWYWx1ZSAxIGRheVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlUmV0ZW50aW9uPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogVGhlIGN1cnJlbnQgc2VydmljZSBsaW1pdHMgYXJlIGNvbmZpZ3VyZWQgaW4gdGhlIHRvcGljIG1hbmFnZXIuXG4gKiBJZiB5b3UgbmVlZCB0byBpbmNyZWFzZSB0aGUgbGltaXRzIGZvciB5b3VyIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IENMQUlELlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHRvcGljOyBoYXMgdG8gbWF0Y2ggcGF0dGVybiBbQS1aYS16MC05Li1dK1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiBwYXJhbGxlbGlzbSBvZiB0aGUgdG9waWM7IHNob3VsZCBiZSBpbmNyZWFzZWQgZm9yXG4gICAqIGxhcmdlIGV4cGVjdGVkIGxvYWRzIChlLmcuLCAyNSBmb3IgcmlvLmFzc2V0LWlvdC1ldmVudHMpLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBwYXJ0aXRpb25zIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZlBhcnRpdGlvbnM6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcmVwbGljYXRpb24gb2YgbWVzc2FnZXM7IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIHRoZSBudW1iZXIgb2YgYnJva2VycyAoY3VycmVudGx5IDMpLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGhvdyBsb25nIG1lc3NhZ2VzIGFyZSByZXRhaW5lZCBvbiBLYWZrYSBjbHVzdGVyO1xuICAgKlxuICAgKiBGb3IgbW9zdCBjYXNlcywgNyBkYXlzICg2MDQ4MDAwMDAgbXMpIGlzIHJlY29tbWVuZGVkOyB1cCB0byAzMCBkYXlzIG1heSBiZSBjb25zaWRlcmVkXG4gICAqIG9ubHkgZm9yIGV4Y2VwdGlvbmFsIHNjZW5hcmlvcyB3aXRoIHNwZWNpZmljIHJlcXVpcmVtZW50cyBhbmQgY2FuIGxlYWQgdG8gaW5jcmVhc2VkIEthZmthIHN0b3JhZ2UgY29zdHMuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDMgdG8gMzAgZGF5cy5cbiAgICogQGRlZmF1bHRWYWx1ZSA3IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gJ2ZhbHNlLCB0aGUgdG9waWMncyBkYXRhIHdpbGwgYmUgZGVsZXRlZCBvbiBLYWZrYSAxMCBkYXlzIGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBJZiBzZXQgdG8gJ3RydWUnLCBpdCB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbnREZWxldGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IEthZmthVG9waWNNZXRhRGF0YTtcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0byB0aGUgdG9waWMncyBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNsOiBLYWZrYUFjbFN0YXRlbWVudDtcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBpcyBsb2cgY29tcGFjdGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9nQ29tcGFjdGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNdXN0IG9ubHkgYmUgcHJvdmlkZWQgaWYgJ2lzTG9nQ29tcGFjdGVkJyBpcyAndHJ1ZScuXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBsb2dDb21wYWN0aW9uUHJvcGVydGllcz86IExvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBjb21wYWN0aW9uIGxhZyBpbiBtaWxsaXNlY29uZHMuXG4gICAqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgYSBtZXNzYWdlIGNhbiBiZSBkZWxheWVkIGJlZm9yZSBpdCBpcyBjb21wYWN0ZWQuXG4gICAqIEBkZWZhdWx0VmFsdWUgOTIyMzM3MjAzNjg1NDc3NTgwN1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29tcGFjdGlvbkxhZ01zPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBjdXJyZW50IHNlcnZpY2UgbGltaXRzIGFyZSBjb25maWd1cmVkIGluIHRoZSB0b3BpYyBtYW5hZ2VyLlxuICogSWYgeW91IG5lZWQgdG8gaW5jcmVhc2UgdGhlIGxpbWl0cyBmb3IgeW91ciBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBDTEFJRC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljVjRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHRvcGljOyBoYXMgdG8gbWF0Y2ggcGF0dGVybiBbQS1aYS16MC05Li1dK1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiBwYXJhbGxlbGlzbSBvZiB0aGUgdG9waWM7IHNob3VsZCBiZSBpbmNyZWFzZWQgZm9yXG4gICAqIGxhcmdlIGV4cGVjdGVkIGxvYWRzIChlLmcuLCAyNSBmb3IgcmlvLmFzc2V0LWlvdC1ldmVudHMpLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBwYXJ0aXRpb25zIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZlBhcnRpdGlvbnM6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcmVwbGljYXRpb24gb2YgbWVzc2FnZXM7IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIHRoZSBudW1iZXIgb2YgYnJva2VycyAoY3VycmVudGx5IDMpLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGhvdyBsb25nIG1lc3NhZ2VzIGFyZSByZXRhaW5lZCBvbiBLYWZrYSBjbHVzdGVyO1xuICAgKlxuICAgKiBGb3IgbW9zdCBjYXNlcywgNyBkYXlzICg2MDQ4MDAwMDAgbXMpIGlzIHJlY29tbWVuZGVkOyB1cCB0byAzMCBkYXlzIG1heSBiZSBjb25zaWRlcmVkXG4gICAqIG9ubHkgZm9yIGV4Y2VwdGlvbmFsIHNjZW5hcmlvcyB3aXRoIHNwZWNpZmljIHJlcXVpcmVtZW50cyBhbmQgY2FuIGxlYWQgdG8gaW5jcmVhc2VkIEthZmthIHN0b3JhZ2UgY29zdHMuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDMgdG8gMzAgZGF5cyBidXQgY2FuIGJlIGluY3JlYXNlZCB1cG9uIHJlcXVlc3RzLlxuICAgKiBAZGVmYXVsdFZhbHVlIDcgZGF5c1xuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byAnZmFsc2UsIHRoZSB0b3BpYydzIGRhdGEgd2lsbCBiZSBkZWxldGVkIG9uIEthZmthIDEwIGRheXMgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIElmIHNldCB0byAndHJ1ZScsIGl0IHdpbGwgYmUgZGVsZXRlZCBpbW1lZGlhdGVseSBhZnRlciBzdGFjayBkZWxldGlvbi5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFudERlbGV0aW9uRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhZGF0YSBvZiB0aGUgdG9waWMuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YTogS2Fma2FUb3BpY01ldGFEYXRhVjQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdG8gdGhlIHRvcGljJ3MgZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGFjbDogS2Fma2FBY2xTdGF0ZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgdG9waWMgaXMgbG9nIGNvbXBhY3RlZCBvciBub3QuXG4gICAqL1xuICByZWFkb25seSBpc0xvZ0NvbXBhY3RlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogTXVzdCBvbmx5IGJlIHByb3ZpZGVkIGlmICdpc0xvZ0NvbXBhY3RlZCcgaXMgJ3RydWUnLlxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nQ29tcGFjdGlvblByb3BlcnRpZXM/OiBMb2dDb21wYWN0aW9uUHJvcGVydGllcztcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBzaG91bGQgYmUgYmFja2VkIHVwIGF1dG9tYXRpY2FsbHkgb3Igbm90LlxuICAgKiBJdCBjb3VsZCBqdXN0IGJlIGVuYWJsZWQsIGlmIHRoZSB0b3BpYyBpcyBjb21wYWN0ZWQgYW5kIHRoZSBSZWNvdmVyeVBvbGljeSBpcyAncmVjb3ZlcmFibGUnLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWFuYWdlZEJhY2t1cEVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIGNvbXBhY3Rpb24gbGFnIGluIG1pbGxpc2Vjb25kcy5cbiAgICAgKlxuICAgICAqIFRoZSBtYXhpbXVtIHRpbWUgYSBtZXNzYWdlIGNhbiBiZSBkZWxheWVkIGJlZm9yZSBpdCBpcyBjb21wYWN0ZWQuXG4gICAgICogQGRlZmF1bHRWYWx1ZSA5MjIzMzcyMDM2ODU0Nzc1ODA3XG4gICAgICovXG4gIHJlYWRvbmx5IG1heENvbXBhY3Rpb25MYWdNcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgVG9waWNzIHRhcmdldCBhdWRpZW5jZVxuICovXG5leHBvcnQgdHlwZSBUb3BpY0F1ZGllbmNlID0gJ2NvbXBvbmVudC1pbnRlcm5hbCcgfCAnY29tcGFueS1pbnRlcm5hbCc7XG5cbi8qKlxuICogVGhlIFRvcGljcyByZWNvdmVyeSBwb2xpY3kgZ3VhcmFudGVlZCBieSB0aGUgcHJvZHVjZXJcbiAqL1xuZXhwb3J0IHR5cGUgVG9waWNSZWNvdmVyeVBvbGljeSA9ICdub25lJyB8ICdyZWNvdmVyYWJsZSc7XG5cbi8qKlxuICogQ29uc3RydWN0IHRvIGNyZWF0ZSBhIGthZmthIHRvcGljLlxuICpcbiAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgS2Fma2FUb3BpY1Y0fSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYVRvcGljIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogS2Fma2FUb3BpY1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuXG4gICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRGVwcmVjYXRpb24oJ0thZmthVG9waWMnLCBcIlVzZSAnS2Fma2FUb3BpY1Y0JyFcIik7XG5cbiAgICBuZXcgQ2ZuUmVzb3VyY2UodGhpcywgJ0thZmthVG9waWMnLCB7XG4gICAgICB0eXBlOiAnQ3VzdG9tOjpLYWZrYVRvcGljJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4ubWFwUHJvcGVydGllcyh0aGlzLCBwcm9wcyksXG4gICAgICAgIFZlcnNpb246ICczJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih2YWxpZGF0b3IocHJvcHMpKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnN0cnVjdCB0byBjcmVhdGUgYSBrYWZrYSB0b3BpYy5cbiAqL1xuZXhwb3J0IGNsYXNzIEthZmthVG9waWNWNCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEthZmthVG9waWNWNFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBDZm5SZXNvdXJjZSh0aGlzLCAnS2Fma2FUb3BpYycsIHtcbiAgICAgIHR5cGU6ICdDdXN0b206OkthZmthVG9waWMnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi5tYXBQcm9wZXJ0aWVzKHRoaXMsIHByb3BzKSxcbiAgICAgICAgVmVyc2lvbjogJzQnLFxuICAgICAgICBBdWRpZW5jZTogcHJvcHMubWV0YWRhdGEuYXVkaWVuY2UsXG4gICAgICAgIFJlY292ZXJ5UG9saWN5OiBwcm9wcy5tZXRhZGF0YS5yZWNvdmVyeVBvbGljeSxcbiAgICAgICAgTWFuYWdlZEJhY2t1cEVuYWJsZWQ6IHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKHZhbGlkYXRvcihwcm9wcykpO1xuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKGJhY2t1cFByb3BlcnRpZXNWYWxpZGF0b3IocHJvcHMpKTtcbiAgfVxufVxuXG5jb25zdCB2YWxpZGF0b3IgPSAocHJvcHM6IEthZmthVG9waWNQcm9wcykgPT4ge1xuICByZXR1cm4ge1xuICAgIHZhbGlkYXRlOiAoKTogc3RyaW5nW10gPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgIGlmICghcHJvcHMubmFtZS5tYXRjaCgvXltBLVphLXowLTkuLV0rJC8pKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFtuYW1lXTogZXhwZWN0aW5nIHRvcGljIG5hbWUgdG8gbWF0Y2ggdGhlIHJlZyBleHAgYFtBLVphLXowLTkuLV0rYC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLm51bWJlck9mUGFydGl0aW9ucykgfHwgcHJvcHMubnVtYmVyT2ZQYXJ0aXRpb25zIDwgMSkge1xuICAgICAgICByZXN1bHQucHVzaChgSW52YWxpZCBbbnVtYmVyT2ZQYXJ0aXRpb25zXTogZXhwZWN0aW5nIG51bWJlciBvZiBwYXJ0aXRpb25zIHRvIGJlIGEgcG9zaXRpdmUgaW50ZWdlciBidXQgZ290ICR7cHJvcHMubnVtYmVyT2ZQYXJ0aXRpb25zfS5gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAoIU51bWJlci5pc0ludGVnZXIocHJvcHMucmVwbGljYXRpb25GYWN0b3IpIHx8IHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yIDwgMSB8fCBwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciA+IDMpKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFtyZXBsaWNhdGlvbkZhY3Rvcl06IGV4cGVjdGluZyBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMy4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLm1ldGFkYXRhLmV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW21ldGFkYXRhXTogZXhwZWN0aW5nIFtldmVudHNdIHRvIGhhdmUgYXQgbGVhc3Qgb24gZWxlbWVudC4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFwcm9wcy5pc0xvZ0NvbXBhY3RlZCAmJiBwcm9wcy5sb2dDb21wYWN0aW9uUHJvcGVydGllcykge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbG9nQ29tcGFjdGlvblByb3BlcnRpZXNdOiBsb2cgY29tcGFjdGlvbiBpcyBkaXNhYmxlZCBzbyBwcm9wZXJ0aWVzIG11c3QgYmUgdW5kZWZpbmVkLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXByb3BzLmlzTG9nQ29tcGFjdGVkICYmIHByb3BzLm1heENvbXBhY3Rpb25MYWdNcykge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbWF4Q29tcGFjdGlvbkxhZ01zXTogbWF4IGNvbXBhY3Rpb24gbGFnIGlzIG9ubHkgYWxsb3dlZCBmb3IgbG9nIGNvbXBhY3RlZCB0b3BpY3MuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IGJhY2t1cFByb3BlcnRpZXNWYWxpZGF0b3IgPSAocHJvcHM6IEthZmthVG9waWNWNFByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdmFsaWRhdGU6ICgpOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgaWYgKHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkICYmICFwcm9wcy5pc0xvZ0NvbXBhY3RlZCkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbWFuYWdlZEJhY2t1cEVuYWJsZWRdOiBtYW5hZ2VkIGJhY2t1cCBjYW4gb25seSBiZSBlbmFibGVkIGZvciBsb2cgY29tcGFjdGVkIHRvcGljcy4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkICYmIHByb3BzLm1ldGFkYXRhLnJlY292ZXJ5UG9saWN5ICE9PSAncmVjb3ZlcmFibGUnKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFttYW5hZ2VkQmFja3VwRW5hYmxlZF06IHRvcGljcyB3aXRoIG1hbmFnZWRCYWNrdXBFbmFibGVkIGhhdmUgdG8gaGF2ZSByZWNvdmVyeSBwb2xpY3kgXCJyZWNvdmVyYWJsZVwiLicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gIH07XG5cbn07XG5cbmNvbnN0IG1hcFByb3BlcnRpZXMgPSAoc2NvcGU6IElDb25zdHJ1Y3QsIHByb3BzOiBLYWZrYVRvcGljUHJvcHMgfCBLYWZrYVRvcGljVjRQcm9wcykgPT4ge1xuICBjb25zdCB0ZWFtRW1haWwgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtRW1haWxQYXJhbWV0ZXIoc2NvcGUpLnN0cmluZ1ZhbHVlO1xuXG4gIGNvbnN0IGV2ZW50cyA9IHByb3BzLm1ldGFkYXRhLmV2ZW50cy5tYXAoc291cmNlID0+IHtcbiAgICBuZXcgS2Fma2FFdmVudFNwZWMoc2NvcGUsIGAke3NvdXJjZS5ldmVudE5hbWUucmVwbGFjZSgvXFwuL2csICdfJyl9LUV2ZW50U3BlY2AsIHsgc291cmNlIH0pO1xuICAgIHJldHVybiBzb3VyY2UuZXZlbnROYW1lO1xuICB9KTtcblxuICBjb25zdCBkZWxldGVSZXRlbnRpb25EdXJhdGlvbiA9IHByb3BzLmxvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzPy5kZWxldGVSZXRlbnRpb24gPz8gRHVyYXRpb24uZGF5cyg3KTtcbiAgaWYgKHByb3BzLmFjbC5kZWxldGUgIT0gdW5kZWZpbmVkICYmIHByb3BzLmFjbC5kZWxldGUubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gY2RrLkFubm90YXRpb25zLm9mKGNkay5TdGFjay5vZihzY29wZSkpO1xuICAgIGFubm90YXRpb25zLmFkZFdhcm5pbmdWMihcbiAgICAgIGBAcmlvLWNsb3VkL2Nkay12Mi1jb25zdHJ1Y3RzL2thZmthL2thZmthLXRvcGljLyR7cHJvcHMubmFtZX0vRGVsZXRpb25Qb2xpY3lgLFxuICAgICAgYFxuIOKdjCBZb3UgaGF2ZSBzZXQgXCJkZWxldGVcIiBwZXJtaXNzaW9uIGZvciBrYWZrYS10b3BpYyAke3Byb3BzLm5hbWV9LiBZb3UgcHJvYmFibHkgZG8gbm90IG5lZWQgdGhpcy4gUGxlYXNlIHVzZSB0aGlzIG9ubHkgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuYCxcbiAgICApO1xuICB9XG4gIHJldHVybiB7XG4gICAgU2VydmljZVRva2VuOiAnYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjE4Njk5Mzc1NzczNDpkcC10b3BpYy1tYW5hZ2VyLXNucy10b3BpYycsXG4gICAgVG9waWNOYW1lOiBwcm9wcy5uYW1lLFxuICAgIERlc2NyaXB0aW9uOiBwcm9wcy5tZXRhZGF0YS5kZXNjcmlwdGlvbixcbiAgICBFdmVudHM6IGV2ZW50cyxcbiAgICBOdW1iZXJPZlBhcnRpdGlvbnM6IHByb3BzLm51bWJlck9mUGFydGl0aW9ucyxcbiAgICBSZXBsaWNhdGlvbkZhY3RvcjogcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPz8gMyxcbiAgICBSZXRlbnRpb25NczogKHByb3BzLnJldGVudGlvbiA/PyBEdXJhdGlvbi5kYXlzKDcpKS50b01pbGxpc2Vjb25kcygpLFxuICAgIERlbGV0ZVJldGVudGlvbk1zOiBwcm9wcy5pc0xvZ0NvbXBhY3RlZCA/IGRlbGV0ZVJldGVudGlvbkR1cmF0aW9uLnRvTWlsbGlzZWNvbmRzKCkgOiB1bmRlZmluZWQsXG4gICAgSW5zdGFudERlbGV0aW9uRW5hYmxlZDogcHJvcHMuaW5zdGFudERlbGV0aW9uRW5hYmxlZCA/PyBmYWxzZSxcbiAgICBDbGVhbnVwUG9saWN5OiBwcm9wcy5pc0xvZ0NvbXBhY3RlZCA/ICdjb21wYWN0JyA6ICdkZWxldGUnLFxuICAgIFRlYW1FbWFpbDogdGVhbUVtYWlsLFxuICAgIE1heENvbXBhY3Rpb25MYWdNczogcHJvcHMubWF4Q29tcGFjdGlvbkxhZ01zLFxuICAgIEFDTDoge1xuICAgICAgUmVhZDogcHJvcHMuYWNsLnJlYWQsXG4gICAgICBXcml0ZTogcHJvcHMuYWNsLndyaXRlLFxuICAgICAgRGVsZXRlOiBwcm9wcy5hY2wuZGVsZXRlLFxuICAgIH0sXG4gIH07XG59O1xuIl19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [v2.1.0](https://github.com/es-shims/es-set-tostringtag/compare/v2.0.3...v2.1.0) - 2025-01-01
|
|
9
|
+
|
|
10
|
+
### Commits
|
|
11
|
+
|
|
12
|
+
- [actions] split out node 10-20, and 20+ [`ede033c`](https://github.com/es-shims/es-set-tostringtag/commit/ede033cc4e506c3966d2d482d4ac5987e329162a)
|
|
13
|
+
- [types] use shared config [`28ef164`](https://github.com/es-shims/es-set-tostringtag/commit/28ef164ad7c5bc21837c79f7ef25542a1f258ade)
|
|
14
|
+
- [New] add `nonConfigurable` option [`3bee3f0`](https://github.com/es-shims/es-set-tostringtag/commit/3bee3f04caddd318f3932912212ed20b2d62aad7)
|
|
15
|
+
- [Fix] validate boolean option argument [`3c8a609`](https://github.com/es-shims/es-set-tostringtag/commit/3c8a609c795a305ccca163f0ff6956caa88cdc0e)
|
|
16
|
+
- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/get-intrinsic`, `@types/tape`, `auto-changelog`, `tape` [`501a969`](https://github.com/es-shims/es-set-tostringtag/commit/501a96998484226e07f5ffd447e8f305a998f1d8)
|
|
17
|
+
- [Tests] add coverage [`18af289`](https://github.com/es-shims/es-set-tostringtag/commit/18af2897b4e937373c9b8c8831bc338932246470)
|
|
18
|
+
- [readme] document `force` option [`bd446a1`](https://github.com/es-shims/es-set-tostringtag/commit/bd446a107b71a2270278442e5124f45590d3ee64)
|
|
19
|
+
- [Tests] use `@arethetypeswrong/cli` [`7c2c2fa`](https://github.com/es-shims/es-set-tostringtag/commit/7c2c2fa3cca0f4d263603adb75426b239514598f)
|
|
20
|
+
- [Tests] replace `aud` with `npm audit` [`9e372d7`](https://github.com/es-shims/es-set-tostringtag/commit/9e372d7e6db3dab405599a14d9074a99a03b8242)
|
|
21
|
+
- [Deps] update `get-intrinsic` [`7df1216`](https://github.com/es-shims/es-set-tostringtag/commit/7df12167295385c2a547410e687cb0c04f3a34b9)
|
|
22
|
+
- [Deps] update `hasown` [`993a7d2`](https://github.com/es-shims/es-set-tostringtag/commit/993a7d200e2059fd857ec1a25d0a49c2c34ae6e2)
|
|
23
|
+
- [Dev Deps] add missing peer dep [`148ed8d`](https://github.com/es-shims/es-set-tostringtag/commit/148ed8db99a7a94f9af3823fd083e6e437fa1587)
|
|
24
|
+
|
|
25
|
+
## [v2.0.3](https://github.com/es-shims/es-set-tostringtag/compare/v2.0.2...v2.0.3) - 2024-02-20
|
|
26
|
+
|
|
27
|
+
### Commits
|
|
28
|
+
|
|
29
|
+
- add types [`d538513`](https://github.com/es-shims/es-set-tostringtag/commit/d5385133592a32a0a416cb535327918af7fbc4ad)
|
|
30
|
+
- [Deps] update `get-intrinsic`, `has-tostringtag`, `hasown` [`d129b29`](https://github.com/es-shims/es-set-tostringtag/commit/d129b29536bccc8a9d03a47887ca4d1f7ad0c5b9)
|
|
31
|
+
- [Dev Deps] update `aud`, `npmignore`, `tape` [`132ed23`](https://github.com/es-shims/es-set-tostringtag/commit/132ed23c964a41ed55e4ab4a5a2c3fe185e821c1)
|
|
32
|
+
- [Tests] fix hasOwn require [`f89c831`](https://github.com/es-shims/es-set-tostringtag/commit/f89c831fe5f3edf1f979c597b56fee1be6111f56)
|
|
33
|
+
|
|
34
|
+
## [v2.0.2](https://github.com/es-shims/es-set-tostringtag/compare/v2.0.1...v2.0.2) - 2023-10-20
|
|
35
|
+
|
|
36
|
+
### Commits
|
|
37
|
+
|
|
38
|
+
- [Refactor] use `hasown` instead of `has` [`0cc6c4e`](https://github.com/es-shims/es-set-tostringtag/commit/0cc6c4e61fd13e8f00b85424ae6e541ebf289e74)
|
|
39
|
+
- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`70e447c`](https://github.com/es-shims/es-set-tostringtag/commit/70e447cf9f82b896ddf359fda0a0498c16cf3ed2)
|
|
40
|
+
- [Deps] update `get-intrinsic` [`826aab7`](https://github.com/es-shims/es-set-tostringtag/commit/826aab76180392871c8efa99acc0f0bbf775c64e)
|
|
41
|
+
|
|
42
|
+
## [v2.0.1](https://github.com/es-shims/es-set-tostringtag/compare/v2.0.0...v2.0.1) - 2023-01-05
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
|
|
46
|
+
- [Fix] move `has` to prod deps [`#2`](https://github.com/es-shims/es-set-tostringtag/issues/2)
|
|
47
|
+
|
|
48
|
+
### Commits
|
|
49
|
+
|
|
50
|
+
- [Dev Deps] update `@ljharb/eslint-config` [`b9eecd2`](https://github.com/es-shims/es-set-tostringtag/commit/b9eecd23c10b7b43ba75089ac8ff8cc6b295798b)
|
|
51
|
+
|
|
52
|
+
## [v2.0.0](https://github.com/es-shims/es-set-tostringtag/compare/v1.0.0...v2.0.0) - 2022-12-21
|
|
53
|
+
|
|
54
|
+
### Commits
|
|
55
|
+
|
|
56
|
+
- [Tests] refactor tests [`168dcfb`](https://github.com/es-shims/es-set-tostringtag/commit/168dcfbb535c279dc48ccdc89419155125aaec18)
|
|
57
|
+
- [Breaking] do not set toStringTag if it is already set [`226ab87`](https://github.com/es-shims/es-set-tostringtag/commit/226ab874192c625d9e5f0e599d3f60d2b2aa83b5)
|
|
58
|
+
- [New] add `force` option to set even if already set [`1abd4ec`](https://github.com/es-shims/es-set-tostringtag/commit/1abd4ecb282f19718c4518284b0293a343564505)
|
|
59
|
+
|
|
60
|
+
## v1.0.0 - 2022-12-21
|
|
61
|
+
|
|
62
|
+
### Commits
|
|
63
|
+
|
|
64
|
+
- Initial implementation, tests, readme [`a0e1147`](https://github.com/es-shims/es-set-tostringtag/commit/a0e11473f79a233b46374525c962ea1b4d42418a)
|
|
65
|
+
- Initial commit [`ffd4aff`](https://github.com/es-shims/es-set-tostringtag/commit/ffd4afffbeebf29aff0d87a7cfc3f7844e09fe68)
|
|
66
|
+
- npm init [`fffe5bd`](https://github.com/es-shims/es-set-tostringtag/commit/fffe5bd1d1146d084730a387a9c672371f4a8fff)
|
|
67
|
+
- Only apps should have lockfiles [`d363871`](https://github.com/es-shims/es-set-tostringtag/commit/d36387139465623e161a15dbd39120537f150c62)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 ECMAScript Shims
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# es-set-tostringtag <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
|
|
2
|
+
|
|
3
|
+
[![github actions][actions-image]][actions-url]
|
|
4
|
+
[![coverage][codecov-image]][codecov-url]
|
|
5
|
+
[![License][license-image]][license-url]
|
|
6
|
+
[![Downloads][downloads-image]][downloads-url]
|
|
7
|
+
|
|
8
|
+
[![npm badge][npm-badge-png]][package-url]
|
|
9
|
+
|
|
10
|
+
A helper to optimistically set Symbol.toStringTag, when possible.
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
Most common usage:
|
|
14
|
+
```js
|
|
15
|
+
var assert = require('assert');
|
|
16
|
+
var setToStringTag = require('es-set-tostringtag');
|
|
17
|
+
|
|
18
|
+
var obj = {};
|
|
19
|
+
|
|
20
|
+
assert.equal(Object.prototype.toString.call(obj), '[object Object]');
|
|
21
|
+
|
|
22
|
+
setToStringTag(obj, 'tagged!');
|
|
23
|
+
|
|
24
|
+
assert.equal(Object.prototype.toString.call(obj), '[object tagged!]');
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Options
|
|
28
|
+
An optional options argument can be provided as the third argument. The available options are:
|
|
29
|
+
|
|
30
|
+
### `force`
|
|
31
|
+
If the `force` option is set to `true`, the toStringTag will be set even if it is already set.
|
|
32
|
+
|
|
33
|
+
### `nonConfigurable`
|
|
34
|
+
If the `nonConfigurable` option is set to `true`, the toStringTag will be defined as non-configurable when possible.
|
|
35
|
+
|
|
36
|
+
## Tests
|
|
37
|
+
Simply clone the repo, `npm install`, and run `npm test`
|
|
38
|
+
|
|
39
|
+
[package-url]: https://npmjs.com/package/es-set-tostringtag
|
|
40
|
+
[npm-version-svg]: https://versionbadg.es/es-shims/es-set-tostringtag.svg
|
|
41
|
+
[deps-svg]: https://david-dm.org/es-shims/es-set-tostringtag.svg
|
|
42
|
+
[deps-url]: https://david-dm.org/es-shims/es-set-tostringtag
|
|
43
|
+
[dev-deps-svg]: https://david-dm.org/es-shims/es-set-tostringtag/dev-status.svg
|
|
44
|
+
[dev-deps-url]: https://david-dm.org/es-shims/es-set-tostringtag#info=devDependencies
|
|
45
|
+
[npm-badge-png]: https://nodei.co/npm/es-set-tostringtag.png?downloads=true&stars=true
|
|
46
|
+
[license-image]: https://img.shields.io/npm/l/es-set-tostringtag.svg
|
|
47
|
+
[license-url]: LICENSE
|
|
48
|
+
[downloads-image]: https://img.shields.io/npm/dm/es-set-tostringtag.svg
|
|
49
|
+
[downloads-url]: https://npm-stat.com/charts.html?package=es-set-tostringtag
|
|
50
|
+
[codecov-image]: https://codecov.io/gh/es-shims/es-set-tostringtag/branch/main/graphs/badge.svg
|
|
51
|
+
[codecov-url]: https://app.codecov.io/gh/es-shims/es-set-tostringtag/
|
|
52
|
+
[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/es-set-tostringtag
|
|
53
|
+
[actions-url]: https://github.com/es-shims/es-set-tostringtag/actions
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var GetIntrinsic = require('get-intrinsic');
|
|
4
|
+
|
|
5
|
+
var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
|
|
6
|
+
|
|
7
|
+
var hasToStringTag = require('has-tostringtag/shams')();
|
|
8
|
+
var hasOwn = require('hasown');
|
|
9
|
+
var $TypeError = require('es-errors/type');
|
|
10
|
+
|
|
11
|
+
var toStringTag = hasToStringTag ? Symbol.toStringTag : null;
|
|
12
|
+
|
|
13
|
+
/** @type {import('.')} */
|
|
14
|
+
module.exports = function setToStringTag(object, value) {
|
|
15
|
+
var overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;
|
|
16
|
+
var nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;
|
|
17
|
+
if (
|
|
18
|
+
(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')
|
|
19
|
+
|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')
|
|
20
|
+
) {
|
|
21
|
+
throw new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');
|
|
22
|
+
}
|
|
23
|
+
if (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {
|
|
24
|
+
if ($defineProperty) {
|
|
25
|
+
$defineProperty(object, toStringTag, {
|
|
26
|
+
configurable: !nonConfigurable,
|
|
27
|
+
enumerable: false,
|
|
28
|
+
value: value,
|
|
29
|
+
writable: false
|
|
30
|
+
});
|
|
31
|
+
} else {
|
|
32
|
+
object[toStringTag] = value; // eslint-disable-line no-param-reassign
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "es-set-tostringtag",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "A helper to optimistically set Symbol.toStringTag, when possible.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./index.js",
|
|
8
|
+
"./package.json": "./package.json"
|
|
9
|
+
},
|
|
10
|
+
"sideEffects": false,
|
|
11
|
+
"scripts": {
|
|
12
|
+
"prepack": "npmignore --auto --commentLines=autogenerated",
|
|
13
|
+
"prepublishOnly": "safe-publish-latest",
|
|
14
|
+
"prepublish": "not-in-publish || npm run prepublishOnly",
|
|
15
|
+
"prelint": "evalmd README.md",
|
|
16
|
+
"lint": "eslint --ext=js,mjs .",
|
|
17
|
+
"postlint": "tsc -p . && attw -P",
|
|
18
|
+
"pretest": "npm run lint",
|
|
19
|
+
"tests-only": "nyc tape 'test/**/*.js'",
|
|
20
|
+
"test": "npm run tests-only",
|
|
21
|
+
"posttest": "npx npm@\">= 10.2\" audit --production",
|
|
22
|
+
"version": "auto-changelog && git add CHANGELOG.md",
|
|
23
|
+
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
|
24
|
+
},
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/es-shims/es-set-tostringtag.git"
|
|
28
|
+
},
|
|
29
|
+
"author": "Jordan Harband <ljharb@gmail.com>",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/es-shims/es-set-tostringtag/issues"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://github.com/es-shims/es-set-tostringtag#readme",
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@arethetypeswrong/cli": "^0.17.2",
|
|
37
|
+
"@ljharb/eslint-config": "^21.1.1",
|
|
38
|
+
"@ljharb/tsconfig": "^0.2.3",
|
|
39
|
+
"@types/get-intrinsic": "^1.2.3",
|
|
40
|
+
"@types/has-symbols": "^1.0.2",
|
|
41
|
+
"@types/tape": "^5.8.0",
|
|
42
|
+
"auto-changelog": "^2.5.0",
|
|
43
|
+
"encoding": "^0.1.13",
|
|
44
|
+
"eslint": "=8.8.0",
|
|
45
|
+
"evalmd": "^0.0.19",
|
|
46
|
+
"in-publish": "^2.0.1",
|
|
47
|
+
"npmignore": "^0.3.1",
|
|
48
|
+
"nyc": "^10.3.2",
|
|
49
|
+
"safe-publish-latest": "^2.0.0",
|
|
50
|
+
"tape": "^5.9.0",
|
|
51
|
+
"typescript": "next"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"es-errors": "^1.3.0",
|
|
55
|
+
"get-intrinsic": "^1.2.6",
|
|
56
|
+
"has-tostringtag": "^1.0.2",
|
|
57
|
+
"hasown": "^2.0.2"
|
|
58
|
+
},
|
|
59
|
+
"engines": {
|
|
60
|
+
"node": ">= 0.4"
|
|
61
|
+
},
|
|
62
|
+
"auto-changelog": {
|
|
63
|
+
"output": "CHANGELOG.md",
|
|
64
|
+
"template": "keepachangelog",
|
|
65
|
+
"unreleased": false,
|
|
66
|
+
"commitLimit": false,
|
|
67
|
+
"backfillLimit": false,
|
|
68
|
+
"hideCredit": true
|
|
69
|
+
},
|
|
70
|
+
"testling": {
|
|
71
|
+
"files": "./test/index.js"
|
|
72
|
+
},
|
|
73
|
+
"publishConfig": {
|
|
74
|
+
"ignore": [
|
|
75
|
+
".github/workflows"
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var test = require('tape');
|
|
4
|
+
var hasToStringTag = require('has-tostringtag/shams')();
|
|
5
|
+
var hasOwn = require('hasown');
|
|
6
|
+
|
|
7
|
+
var setToStringTag = require('../');
|
|
8
|
+
|
|
9
|
+
test('setToStringTag', function (t) {
|
|
10
|
+
t.equal(typeof setToStringTag, 'function', 'is a function');
|
|
11
|
+
|
|
12
|
+
/** @type {{ [Symbol.toStringTag]?: typeof sentinel }} */
|
|
13
|
+
var obj = {};
|
|
14
|
+
var sentinel = {};
|
|
15
|
+
|
|
16
|
+
setToStringTag(obj, sentinel);
|
|
17
|
+
|
|
18
|
+
t['throws'](
|
|
19
|
+
// @ts-expect-error
|
|
20
|
+
function () { setToStringTag(obj, sentinel, { force: 'yes' }); },
|
|
21
|
+
TypeError,
|
|
22
|
+
'throws if options is not an object'
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
t.test('has Symbol.toStringTag', { skip: !hasToStringTag }, function (st) {
|
|
26
|
+
st.ok(hasOwn(obj, Symbol.toStringTag), 'has toStringTag property');
|
|
27
|
+
|
|
28
|
+
st.equal(obj[Symbol.toStringTag], sentinel, 'toStringTag property is as expected');
|
|
29
|
+
|
|
30
|
+
st.equal(String(obj), '[object Object]', 'toStringTag works');
|
|
31
|
+
|
|
32
|
+
/** @type {{ [Symbol.toStringTag]?: string }} */
|
|
33
|
+
var tagged = {};
|
|
34
|
+
tagged[Symbol.toStringTag] = 'already tagged';
|
|
35
|
+
st.equal(String(tagged), '[object already tagged]', 'toStringTag works');
|
|
36
|
+
|
|
37
|
+
setToStringTag(tagged, 'new tag');
|
|
38
|
+
st.equal(String(tagged), '[object already tagged]', 'toStringTag is unchanged');
|
|
39
|
+
|
|
40
|
+
setToStringTag(tagged, 'new tag', { force: true });
|
|
41
|
+
st.equal(String(tagged), '[object new tag]', 'toStringTag is changed with force: true');
|
|
42
|
+
|
|
43
|
+
st.deepEqual(
|
|
44
|
+
Object.getOwnPropertyDescriptor(tagged, Symbol.toStringTag),
|
|
45
|
+
{
|
|
46
|
+
configurable: true,
|
|
47
|
+
enumerable: false,
|
|
48
|
+
value: 'new tag',
|
|
49
|
+
writable: false
|
|
50
|
+
},
|
|
51
|
+
'has expected property descriptor'
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
setToStringTag(tagged, 'new tag', { force: true, nonConfigurable: true });
|
|
55
|
+
st.deepEqual(
|
|
56
|
+
Object.getOwnPropertyDescriptor(tagged, Symbol.toStringTag),
|
|
57
|
+
{
|
|
58
|
+
configurable: false,
|
|
59
|
+
enumerable: false,
|
|
60
|
+
value: 'new tag',
|
|
61
|
+
writable: false
|
|
62
|
+
},
|
|
63
|
+
'is nonconfigurable'
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
st.end();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
t.test('does not have Symbol.toStringTag', { skip: hasToStringTag }, function (st) {
|
|
70
|
+
var passed = true;
|
|
71
|
+
for (var key in obj) { // eslint-disable-line no-restricted-syntax
|
|
72
|
+
if (hasOwn(obj, key)) {
|
|
73
|
+
st.fail('object has own key ' + key);
|
|
74
|
+
passed = false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (passed) {
|
|
78
|
+
st.ok(true, 'object has no enumerable own keys');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
st.end();
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
t.end();
|
|
85
|
+
});
|