@doctorus/common 0.0.25 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ssm/index.d.ts +1 -1
- package/lib/ssm/index.js +3 -2
- package/lib/ssm/keys.d.ts +2 -1
- package/lib/ssm/keys.js +2 -1
- package/lib/ssm/utils.d.ts +12 -0
- package/lib/ssm/utils.js +16 -1
- package/package.json +1 -1
package/lib/ssm/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { SSM_PARAM_KEY } from './keys';
|
|
2
|
-
export { buildSSMPath, buildSSMPathWithPrefix, extractEnvFromPath, extractKeyFromPath, isEnvAgnostic } from './utils';
|
|
2
|
+
export { buildSSMPath, buildSSMPathWithPrefix, buildICalTokenPath, extractEnvFromPath, extractKeyFromPath, isEnvAgnostic, } from './utils';
|
package/lib/ssm/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isEnvAgnostic = exports.extractKeyFromPath = exports.extractEnvFromPath = exports.buildSSMPathWithPrefix = exports.buildSSMPath = exports.SSM_PARAM_KEY = void 0;
|
|
3
|
+
exports.isEnvAgnostic = exports.extractKeyFromPath = exports.extractEnvFromPath = exports.buildICalTokenPath = exports.buildSSMPathWithPrefix = exports.buildSSMPath = exports.SSM_PARAM_KEY = void 0;
|
|
4
4
|
var keys_1 = require("./keys");
|
|
5
5
|
Object.defineProperty(exports, "SSM_PARAM_KEY", { enumerable: true, get: function () { return keys_1.SSM_PARAM_KEY; } });
|
|
6
6
|
var utils_1 = require("./utils");
|
|
7
7
|
Object.defineProperty(exports, "buildSSMPath", { enumerable: true, get: function () { return utils_1.buildSSMPath; } });
|
|
8
8
|
Object.defineProperty(exports, "buildSSMPathWithPrefix", { enumerable: true, get: function () { return utils_1.buildSSMPathWithPrefix; } });
|
|
9
|
+
Object.defineProperty(exports, "buildICalTokenPath", { enumerable: true, get: function () { return utils_1.buildICalTokenPath; } });
|
|
9
10
|
Object.defineProperty(exports, "extractEnvFromPath", { enumerable: true, get: function () { return utils_1.extractEnvFromPath; } });
|
|
10
11
|
Object.defineProperty(exports, "extractKeyFromPath", { enumerable: true, get: function () { return utils_1.extractKeyFromPath; } });
|
|
11
12
|
Object.defineProperty(exports, "isEnvAgnostic", { enumerable: true, get: function () { return utils_1.isEnvAgnostic; } });
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3NtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUF1QztBQUE5QixxR0FBQSxhQUFhLE9BQUE7QUFDdEIsaUNBT2lCO0FBTmYscUdBQUEsWUFBWSxPQUFBO0FBQ1osK0dBQUEsc0JBQXNCLE9BQUE7QUFDdEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsc0dBQUEsYUFBYSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU1NNX1BBUkFNX0tFWSB9IGZyb20gJy4va2V5cyc7XG5leHBvcnQge1xuICBidWlsZFNTTVBhdGgsXG4gIGJ1aWxkU1NNUGF0aFdpdGhQcmVmaXgsXG4gIGJ1aWxkSUNhbFRva2VuUGF0aCxcbiAgZXh0cmFjdEVudkZyb21QYXRoLFxuICBleHRyYWN0S2V5RnJvbVBhdGgsXG4gIGlzRW52QWdub3N0aWMsXG59IGZyb20gJy4vdXRpbHMnO1xuIl19
|
package/lib/ssm/keys.d.ts
CHANGED
|
@@ -25,5 +25,6 @@ export declare enum SSM_PARAM_KEY {
|
|
|
25
25
|
EMAIL_FROM_ADDRESS = "email-from-address",
|
|
26
26
|
EVENT_API_REAL_TIME_DNS = "event-api-real-time-dns",
|
|
27
27
|
EVENT_API_HTTP_DNS = "event-api-http-dns",
|
|
28
|
-
NOTIFIED_EVENT_ACTIONS = "notified-event-actions"
|
|
28
|
+
NOTIFIED_EVENT_ACTIONS = "notified-event-actions",
|
|
29
|
+
ICAL_TOKEN = "ical-token"
|
|
29
30
|
}
|
package/lib/ssm/keys.js
CHANGED
|
@@ -30,5 +30,6 @@ var SSM_PARAM_KEY;
|
|
|
30
30
|
SSM_PARAM_KEY["EVENT_API_REAL_TIME_DNS"] = "event-api-real-time-dns";
|
|
31
31
|
SSM_PARAM_KEY["EVENT_API_HTTP_DNS"] = "event-api-http-dns";
|
|
32
32
|
SSM_PARAM_KEY["NOTIFIED_EVENT_ACTIONS"] = "notified-event-actions";
|
|
33
|
+
SSM_PARAM_KEY["ICAL_TOKEN"] = "ical-token";
|
|
33
34
|
})(SSM_PARAM_KEY || (exports.SSM_PARAM_KEY = SSM_PARAM_KEY = {}));
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zc20va2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksYUEwQlg7QUExQkQsV0FBWSxhQUFhO0lBQ3ZCLHNEQUFxQyxDQUFBO0lBQ3JDLDRFQUEyRCxDQUFBO0lBQzNELHNEQUFxQyxDQUFBO0lBQ3JDLDBEQUF5QyxDQUFBO0lBQ3pDLDhEQUE2QyxDQUFBO0lBQzdDLDBDQUF5QixDQUFBO0lBQ3pCLHNEQUFxQyxDQUFBO0lBQ3JDLGtEQUFpQyxDQUFBO0lBQ2pDLDhDQUE2QixDQUFBO0lBQzdCLGtEQUFpQyxDQUFBO0lBQ2pDLDhGQUE2RSxDQUFBO0lBQzdFLDJGQUEwRSxDQUFBO0lBQzFFLHlGQUF3RSxDQUFBO0lBQ3hFLDBFQUF5RCxDQUFBO0lBQ3pELHdFQUF1RCxDQUFBO0lBQ3ZELDBGQUF5RSxDQUFBO0lBQ3pFLG9DQUFtQixDQUFBO0lBQ25CLDRDQUEyQixDQUFBO0lBQzNCLDRGQUEyRSxDQUFBO0lBQzNFLHdDQUF1QixDQUFBO0lBQ3ZCLDBEQUF5QyxDQUFBO0lBQ3pDLG9FQUFtRCxDQUFBO0lBQ25ELDBEQUF5QyxDQUFBO0lBQ3pDLGtFQUFpRCxDQUFBO0lBQ2pELDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUExQlcsYUFBYSw2QkFBYixhQUFhLFFBMEJ4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU1NNIFBhcmFtZXRlciBTdG9yZSBrZXlzIHVzZWQgYWNyb3NzIEFXUyBzdGFja3NcbiAqL1xuZXhwb3J0IGVudW0gU1NNX1BBUkFNX0tFWSB7XG4gIENPR05JVE9fVVNFUl9QT09MX0lEID0gJ3VzZXItcG9vbC1pZCcsXG4gIENPR05JVE9fVVNFUl9QT09MX1dFQl9DTElFTlRfSUQgPSAndXNlci1wb29sLXdlYi1jbGllbnQtaWQnLFxuICBDT0dOSVRPX09BVVRIX0RPTUFJTiA9ICdvYXV0aC1kb21haW4nLFxuICBSVU1fR1VFU1RfUk9MRV9BUk4gPSAncnVtLWd1ZXN0LXJvbWUtYXJuJyxcbiAgUlVNX0lERU5USVRZX1BPT0xfSUQgPSAncnVtLWlkZW50aXR5LXBvb2wtaWQnLFxuICBSVU1fQVBQX0lEID0gJ3J1bS1hcHAtaWQnLFxuICBHUkFQSFFMX0hUVFBfVVJMID0gJ2dyYXBocWwtaHR0cC11cmwnLFxuICBHUkFQSFFMX1dTX1VSTCA9ICdncmFwaHFsLXdzLXVybCcsXG4gIEdSQVBIUUxfSE9TVCA9ICdncmFwaHFsLWhvc3QnLFxuICBHUkFQSFFMX0FQSV9JRCA9ICdncmFwaHFsLWFwaS1pZCcsXG4gIE1FRElDQUxfQVNTRVRTX0FXU19DTE9VREZST05UX1BSSVZBVEVfS0VZID0gJ21lZGljYWwtYXNzZXRzLWRpc3QtcHJpdmF0ZS1rZXknLFxuICBNRURJQ0FMX0FTU0VUU19BV1NfQ0xPVURGUk9OVF9LRVlfSUQgPSAnbWVkaWNhbC1hc3NldHMtZGlzdC1wdWJsaWMta2V5LWlkJyxcbiAgTUVESUNBTF9BU1NFVFNfQVdTX0NMT1VERlJPTlRfUFVCX0tFWSA9ICdtZWRpY2FsLWFzc2V0cy1kaXN0LXB1YmxpYy1rZXknLFxuICBNRURJQ0FMX0FTU0VUU19CVUNLRVRfTkFNRSA9ICdtZWRpY2FsLWFzc2V0cy1idWNrZXQtbmFtZScsXG4gIFBVQkxJQ19BU1NFVFNfQlVDS0VUX05BTUUgPSAncHVibGljLWFzc2V0cy1idWNrZXQtbmFtZScsXG4gIFBVQkxJQ19BU1NFVFNfRElTVFJJQlVUSU9OX0RPTUFJTl9OQU1FID0gJ3B1YmxpYy1hc3NldHMtZGlzdC1kb21haW4tbmFtZScsXG4gIERCX1VTRVIgPSAnZGItdXNlcicsXG4gIERCX1BBU1NXT1JEID0gJ2RiLXBhc3N3b3JkJyxcbiAgTUVESUNBTF9BU1NFVFNfRElTVFJJQlVUSU9OX0RPTUFJTl9OQU1FID0gJ21lZGljYWwtYXNzZXRzLWRpc3QtZG9tYWluLW5hbWUnLFxuICBCQVNFX0hPU1QgPSAnYmFzZS1ob3N0JyxcbiAgRU1BSUxfRlJPTV9BRERSRVNTID0gJ2VtYWlsLWZyb20tYWRkcmVzcycsXG4gIEVWRU5UX0FQSV9SRUFMX1RJTUVfRE5TID0gJ2V2ZW50LWFwaS1yZWFsLXRpbWUtZG5zJyxcbiAgRVZFTlRfQVBJX0hUVFBfRE5TID0gJ2V2ZW50LWFwaS1odHRwLWRucycsXG4gIE5PVElGSUVEX0VWRU5UX0FDVElPTlMgPSAnbm90aWZpZWQtZXZlbnQtYWN0aW9ucycsXG4gIElDQUxfVE9LRU4gPSAnaWNhbC10b2tlbicsXG59XG4iXX0=
|
package/lib/ssm/utils.d.ts
CHANGED
|
@@ -73,3 +73,15 @@ export declare function extractKeyFromPath(path: string): SSM_PARAM_KEY | null;
|
|
|
73
73
|
* ```
|
|
74
74
|
*/
|
|
75
75
|
export declare function isEnvAgnostic(path: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Build SSM parameter path for iCal token by user ID
|
|
78
|
+
* @param userId - User ID
|
|
79
|
+
* @returns Full SSM parameter path in format `/ical/${userId}/token` (environment-agnostic)
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts
|
|
83
|
+
* buildICalTokenPath('user-123')
|
|
84
|
+
* // Returns: '/ical/user-123/token'
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function buildICalTokenPath(userId: string): string;
|
package/lib/ssm/utils.js
CHANGED
|
@@ -5,6 +5,7 @@ exports.buildSSMPathWithPrefix = buildSSMPathWithPrefix;
|
|
|
5
5
|
exports.extractEnvFromPath = extractEnvFromPath;
|
|
6
6
|
exports.extractKeyFromPath = extractKeyFromPath;
|
|
7
7
|
exports.isEnvAgnostic = isEnvAgnostic;
|
|
8
|
+
exports.buildICalTokenPath = buildICalTokenPath;
|
|
8
9
|
const keys_1 = require("./keys");
|
|
9
10
|
/**
|
|
10
11
|
* Build SSM parameter path with optional environment prefix
|
|
@@ -102,4 +103,18 @@ function isEnvAgnostic(path) {
|
|
|
102
103
|
const parts = path.split('/').filter((p) => p.length > 0);
|
|
103
104
|
return parts.length === 1;
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Build SSM parameter path for iCal token by user ID
|
|
108
|
+
* @param userId - User ID
|
|
109
|
+
* @returns Full SSM parameter path in format `/ical/${userId}/token` (environment-agnostic)
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* buildICalTokenPath('user-123')
|
|
114
|
+
* // Returns: '/ical/user-123/token'
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
function buildICalTokenPath(userId) {
|
|
118
|
+
return `/ical/${userId}/token`;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3NtL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLG9DQUVDO0FBY0Qsd0RBSUM7QUFnQkQsZ0RBR0M7QUFnQkQsZ0RBV0M7QUFnQkQsc0NBSUM7QUFhRCxnREFFQztBQXRIRCxpQ0FBdUM7QUFFdkM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixZQUFZLENBQUMsR0FBa0IsRUFBRSxHQUFrQjtJQUNqRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsTUFBYyxFQUFFLEdBQWtCO0lBQ3ZFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdFLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM1RCxPQUFPLEdBQUcsZ0JBQWdCLEdBQUcsYUFBYSxFQUFFLENBQUM7QUFDL0MsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxJQUFZO0lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDekMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsSUFBWTtJQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXpDLGdEQUFnRDtJQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFhLENBQWEsQ0FBQztJQUM1RCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLFFBQXlCLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixhQUFhLENBQUMsSUFBWTtJQUN4QyxzRUFBc0U7SUFDdEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxTQUFTLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTU01fUEFSQU1fS0VZIH0gZnJvbSAnLi9rZXlzJztcblxuLyoqXG4gKiBCdWlsZCBTU00gcGFyYW1ldGVyIHBhdGggd2l0aCBvcHRpb25hbCBlbnZpcm9ubWVudCBwcmVmaXhcbiAqIEBwYXJhbSBlbnYgLSBFbnZpcm9ubWVudCBuYW1lIChlLmcuLCAnZGV2JywgJ3N0YWdpbmcnLCAncHJvZCcpLCBvciBudWxsIGZvciBlbnYtYWdub3N0aWMgcGFyYW1ldGVyc1xuICogQHBhcmFtIGtleSAtIFNTTSBwYXJhbWV0ZXIga2V5XG4gKiBAcmV0dXJucyBGdWxsIFNTTSBwYXJhbWV0ZXIgcGF0aFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogYnVpbGRTU01QYXRoKCdwcm9kJywgU1NNX1BBUkFNX0tFWS5DT0dOSVRPX1VTRVJfUE9PTF9JRClcbiAqIC8vIFJldHVybnM6ICcvcHJvZC91c2VyLXBvb2wtaWQnXG4gKlxuICogYnVpbGRTU01QYXRoKG51bGwsIFNTTV9QQVJBTV9LRVkuREJfVVNFUilcbiAqIC8vIFJldHVybnM6ICcvZGItdXNlcicgKGVudi1hZ25vc3RpYylcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTU01QYXRoKGVudjogc3RyaW5nIHwgbnVsbCwga2V5OiBTU01fUEFSQU1fS0VZKTogc3RyaW5nIHtcbiAgcmV0dXJuIGVudiA/IGAvJHtlbnZ9LyR7a2V5fWAgOiBgLyR7a2V5fWA7XG59XG5cbi8qKlxuICogQnVpbGQgU1NNIHBhcmFtZXRlciBwYXRoIHdpdGggY3VzdG9tIHByZWZpeFxuICogQHBhcmFtIHByZWZpeCAtIEN1c3RvbSBwcmVmaXggKGUuZy4sICcvbXlhcHAvcHJvZCcpXG4gKiBAcGFyYW0ga2V5IC0gU1NNIHBhcmFtZXRlciBrZXlcbiAqIEByZXR1cm5zIEZ1bGwgU1NNIHBhcmFtZXRlciBwYXRoXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBidWlsZFNTTVBhdGhXaXRoUHJlZml4KCcvbXlhcHAvcHJvZCcsIFNTTV9QQVJBTV9LRVkuREJfVVNFUilcbiAqIC8vIFJldHVybnM6ICcvbXlhcHAvcHJvZC9kYi11c2VyJ1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNTTVBhdGhXaXRoUHJlZml4KHByZWZpeDogc3RyaW5nLCBrZXk6IFNTTV9QQVJBTV9LRVkpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkUHJlZml4ID0gcHJlZml4LmVuZHNXaXRoKCcvJykgPyBwcmVmaXguc2xpY2UoMCwgLTEpIDogcHJlZml4O1xuICBjb25zdCBub3JtYWxpemVkS2V5ID0ga2V5LnN0YXJ0c1dpdGgoJy8nKSA/IGtleSA6IGAvJHtrZXl9YDtcbiAgcmV0dXJuIGAke25vcm1hbGl6ZWRQcmVmaXh9JHtub3JtYWxpemVkS2V5fWA7XG59XG5cbi8qKlxuICogRXh0cmFjdCBlbnZpcm9ubWVudCBmcm9tIFNTTSBwYXJhbWV0ZXIgcGF0aFxuICogQHBhcmFtIHBhdGggLSBTU00gcGFyYW1ldGVyIHBhdGhcbiAqIEByZXR1cm5zIEVudmlyb25tZW50IG5hbWUgb3IgbnVsbCBpZiBlbnYtYWdub3N0aWMgb3Igbm90IGZvdW5kXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBleHRyYWN0RW52RnJvbVBhdGgoJy9wcm9kL3VzZXItcG9vbC1pZCcpXG4gKiAvLyBSZXR1cm5zOiAncHJvZCdcbiAqXG4gKiBleHRyYWN0RW52RnJvbVBhdGgoJy9kYi11c2VyJylcbiAqIC8vIFJldHVybnM6IG51bGwgKGVudi1hZ25vc3RpYyBwYXJhbWV0ZXIpXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RFbnZGcm9tUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgbWF0Y2ggPSBwYXRoLm1hdGNoKC9eXFwvKFteL10rKVxcLy8pO1xuICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXSA6IG51bGw7XG59XG5cbi8qKlxuICogUGFyc2UgU1NNIHBhcmFtZXRlciBwYXRoIHRvIGV4dHJhY3Qga2V5XG4gKiBAcGFyYW0gcGF0aCAtIFNTTSBwYXJhbWV0ZXIgcGF0aFxuICogQHJldHVybnMgU1NNIHBhcmFtZXRlciBrZXkgb3IgbnVsbCBpZiBub3QgZm91bmRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGV4dHJhY3RLZXlGcm9tUGF0aCgnL3Byb2QvdXNlci1wb29sLWlkJylcbiAqIC8vIFJldHVybnM6IFNTTV9QQVJBTV9LRVkuQ09HTklUT19VU0VSX1BPT0xfSURcbiAqXG4gKiBleHRyYWN0S2V5RnJvbVBhdGgoJy9kYi11c2VyJylcbiAqIC8vIFJldHVybnM6IFNTTV9QQVJBTV9LRVkuREJfVVNFUiAoZW52LWFnbm9zdGljKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0S2V5RnJvbVBhdGgocGF0aDogc3RyaW5nKTogU1NNX1BBUkFNX0tFWSB8IG51bGwge1xuICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKTtcbiAgY29uc3Qga2V5VmFsdWUgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcblxuICAvLyBDaGVjayBpZiB0aGUga2V5IHZhbHVlIG1hdGNoZXMgYW55IGVudW0gdmFsdWVcbiAgY29uc3QgZW51bVZhbHVlcyA9IE9iamVjdC52YWx1ZXMoU1NNX1BBUkFNX0tFWSkgYXMgc3RyaW5nW107XG4gIGlmIChlbnVtVmFsdWVzLmluY2x1ZGVzKGtleVZhbHVlKSkge1xuICAgIHJldHVybiBrZXlWYWx1ZSBhcyBTU01fUEFSQU1fS0VZO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gU1NNIHBhcmFtZXRlciBwYXRoIGlzIGVudmlyb25tZW50LWFnbm9zdGljXG4gKiBAcGFyYW0gcGF0aCAtIFNTTSBwYXJhbWV0ZXIgcGF0aFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgcGF0aCBpcyBlbnYtYWdub3N0aWMgKG5vIGVudmlyb25tZW50IHByZWZpeClcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGlzRW52QWdub3N0aWMoJy9kYi11c2VyJylcbiAqIC8vIFJldHVybnM6IHRydWVcbiAqXG4gKiBpc0VudkFnbm9zdGljKCcvcHJvZC91c2VyLXBvb2wtaWQnKVxuICogLy8gUmV0dXJuczogZmFsc2VcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnZBZ25vc3RpYyhwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gRW52LWFnbm9zdGljIHBhdGhzIGhhdmUgZm9ybWF0OiAva2V5IChvbmx5IDIgcGFydHMgd2hlbiBzcGxpdCBieSAvKVxuICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy8nKS5maWx0ZXIoKHApID0+IHAubGVuZ3RoID4gMCk7XG4gIHJldHVybiBwYXJ0cy5sZW5ndGggPT09IDE7XG59XG5cbi8qKlxuICogQnVpbGQgU1NNIHBhcmFtZXRlciBwYXRoIGZvciBpQ2FsIHRva2VuIGJ5IHVzZXIgSURcbiAqIEBwYXJhbSB1c2VySWQgLSBVc2VyIElEXG4gKiBAcmV0dXJucyBGdWxsIFNTTSBwYXJhbWV0ZXIgcGF0aCBpbiBmb3JtYXQgYC9pY2FsLyR7dXNlcklkfS90b2tlbmAgKGVudmlyb25tZW50LWFnbm9zdGljKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogYnVpbGRJQ2FsVG9rZW5QYXRoKCd1c2VyLTEyMycpXG4gKiAvLyBSZXR1cm5zOiAnL2ljYWwvdXNlci0xMjMvdG9rZW4nXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSUNhbFRva2VuUGF0aCh1c2VySWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgL2ljYWwvJHt1c2VySWR9L3Rva2VuYDtcbn1cbiJdfQ==
|