valtech-components 4.0.165 → 4.0.167

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.
@@ -71,8 +71,10 @@ export class HandoffService {
71
71
  * @param token Raw handoff token read from the URL.
72
72
  */
73
73
  exchangeHandoff(token) {
74
+ // withCredentials: el exchange setea la cookie HttpOnly de refresh. Sin
75
+ // credenciales el browser descarta el Set-Cookie cross-origin → /refresh 400 (H-05).
74
76
  return this.http
75
- .post(`${this.baseUrl}/handoff/exchange`, { token })
77
+ .post(`${this.baseUrl}/handoff/exchange`, { token }, { withCredentials: true })
76
78
  .pipe(tap(response => this.installSession(response)), catchError(err => {
77
79
  // Surface the error untouched — the caller decides how to react
78
80
  // (typically: redirect to /login + toast). Don't install a bad session.
@@ -151,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
151
153
  type: Inject,
152
154
  args: [VALTECH_AUTH_CONFIG]
153
155
  }] }, { type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Router }] });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZG9mZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2hhbmRvZmYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGNBQWMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUFHL0M7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztBQUU3Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztBQW1FM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUNtRCxNQUFnQyxFQUN6RSxJQUFnQixFQUNoQixJQUFpQixFQUNqQixNQUFjO1FBSDJCLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ3pFLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTmhCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFPdEIsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLFVBQWdDLEVBQUU7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBd0IsR0FBRyxJQUFJLENBQUMsT0FBTyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxlQUFlLENBQUMsS0FBYTtRQUMzQixP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QyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTmFtZSBvZiB0aGUgcXVlcnkgcGFyYW0gdGhhdCBjYXJyaWVzIHRoZSBoYW5kb2ZmIHRva2VuLiBBcHBzIG1heSBvdmVycmlkZVxuICogdmlhIGBkZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmYoeyB0b2tlblBhcmFtIH0pYCBidXQgdGhlIGRlZmF1bHQga2VlcHMgdGhlXG4gKiBjb252ZW50aW9uIGNvbnNpc3RlbnQgYWNyb3NzIHRoZSBmYWN0b3J5LlxuICovXG5leHBvcnQgY29uc3QgSEFORE9GRl9UT0tFTl9QQVJBTSA9ICdoYW5kb2ZmJztcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBxdWVyeSBwYXJhbSB0aGF0IGNhcnJpZXMgdGhlIHBvc3QtZXhjaGFuZ2Ugcm91dGUuXG4gKi9cbmV4cG9ydCBjb25zdCBIQU5ET0ZGX1JPVVRFX1BBUkFNID0gJ3JvdXRlJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgSGFuZG9mZlNlcnZpY2UuZGV0ZWN0QW5kRXhjaGFuZ2VIYW5kb2ZmYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3RBbmRFeGNoYW5nZU9wdGlvbnMge1xuICAvKiogT3ZlcnJpZGUgdGhlIHF1ZXJ5IHBhcmFtIG5hbWUuIERlZmF1bHQ6IGAnaGFuZG9mZidgLiAqL1xuICB0b2tlblBhcmFtPzogc3RyaW5nO1xuICAvKiogT3ZlcnJpZGUgdGhlIHJvdXRlIHBhcmFtIG5hbWUuIERlZmF1bHQ6IGAncm91dGUnYC4gKi9cbiAgcm91dGVQYXJhbT86IHN0cmluZztcbiAgLyoqIFdoZXJlIHRvIG5hdmlnYXRlIGlmIG5vIHJvdXRlIHBhcmFtIGlzIHByZXNlbnQuIERlZmF1bHQ6IGAnLydgLiAqL1xuICBkZWZhdWx0Um91dGU/OiBzdHJpbmc7XG4gIC8qKiBXaGVyZSB0byBuYXZpZ2F0ZSBvbiBleGNoYW5nZSBlcnJvci4gRGVmYXVsdDogYXBwJ3MgY29uZmlndXJlZCBgbG9naW5Sb3V0ZWAuICovXG4gIGVycm9yUm91dGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVxdWVzdCBib2R5IGZvciBgUE9TVCAvdjIvYXV0aC9oYW5kb2ZmYC5cbiAqXG4gKiBCb3RoIGZpZWxkcyBhcmUgb3B0aW9uYWwgYW5kIHN0b3JlZCBmb3IgYXVkaXQgb25seSDigJQgdGhlIGV4Y2hhbmdlIHN0ZXBcbiAqIGRvZXMgbm90IGVuZm9yY2UgdGhhdCB0aGUgcmVkZWVtaW5nIGFwcCBtYXRjaGVzIGB0YXJnZXRBcHBJZGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkNyZWF0ZVJlcXVlc3Qge1xuICAvKiogVGFyZ2V0IGFwcCB0aGUgaGFuZG9mZiBpcyBpbnRlbmRlZCBmb3IgKGUuZy4gYFwibXl2YWx0ZWNoXCJgKS4gQXVkaXQtb25seS4gKi9cbiAgdGFyZ2V0QXBwSWQ/OiBzdHJpbmc7XG4gIC8qKiBSb3V0ZSB0aGUgdGFyZ2V0IGFwcCBzaG91bGQgbmF2aWdhdGUgdG8gYWZ0ZXIgZXhjaGFuZ2UuIEVjaG9lZCBiYWNrLiAqL1xuICByb3V0ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBib2R5IGZyb20gYFBPU1QgL3YyL2F1dGgvaGFuZG9mZmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkNyZWF0ZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFJhdyB0b2tlbiB0byBlbWJlZCBpbiB0aGUgcmVkaXJlY3QgVVJMIGFzIGA/aGFuZG9mZj08dG9rZW4+YC4gMzBzIFRUTCwgc2luZ2xlLXVzZS4gKi9cbiAgdG9rZW46IHN0cmluZztcbiAgLyoqIFJGQzMzMzkgZXhwaXJhdGlvbiB0aW1lc3RhbXAuICovXG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICAvKiogRWNob2VkIGByb3V0ZWAgZnJvbSB0aGUgcmVxdWVzdCwgd2hlbiBwcm92aWRlZC4gKi9cbiAgcm91dGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBiYXNlIFVSTCBvZiB0aGUgdGFyZ2V0IGFwcCAoZS5nLiBgXCJodHRwczovL3NpZ2lmeS5jb21cImApLlxuICAgKlxuICAgKiBXaGVuIHByZXNlbnQsIGNhbGxlcnMgc2hvdWxkIHVzZSB0aGlzIGFzIHRoZSBkZXN0aW5hdGlvbiBmb3IgdGhlIHJlZGlyZWN0LlxuICAgKiBCYWNrZW5kIHJlc29sdmVzIGl0IGZyb20gdGhlIGBhcHAtY29uZmlnYCB0YWJsZSAoc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCkuXG4gICAqXG4gICAqIE9wdGlvbmFsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IOKAlCB3aGVuIG1pc3NpbmcsIGNhbGxlcnMgbWF5IGZhbGwgYmFja1xuICAgKiB0byBhIGNsaWVudC1zaWRlIGBhcHBVcmxzYCBtYXBwaW5nLlxuICAgKi9cbiAgdGFyZ2V0QmFzZVVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBib2R5IGZyb20gYFBPU1QgL3YyL2F1dGgvaGFuZG9mZi9leGNoYW5nZWAuXG4gKlxuICogU2FtZSBzaGFwZSBhcyBgU2lnbmluUmVzcG9uc2VgIOKAlCBpbnN0YWxsYWJsZSB2aWEgYEF1dGhTZXJ2aWNlLnNldEV4dGVybmFsQXV0aGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZG9mZkV4Y2hhbmdlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZmlyZWJhc2VUb2tlbj86IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBIYW5kb2ZmU2VydmljZSDigJQgY3Jvc3MtYXBwIHNlc3Npb24gdHJhbnNmZXIuXG4gKlxuICogSW1wbGVtZW50cyB0aGUgT0F1dGggQXV0aG9yaXphdGlvbiBDb2RlIHBhdHRlcm4sIGFwcGxpZWQgaW50ZXJuYWxseSBiZXR3ZWVuXG4gKiBhcHBzIHRoYXQgc2hhcmUgdGhlIHNhbWUgYmFja2VuZC5cbiAqXG4gKiAqKk9yaWdpbiBhcHAgKHVzZXIgaXMgYXV0aGVudGljYXRlZCk6KipcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB7IHRva2VuLCByb3V0ZSB9ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gKiAgIGhhbmRvZmYuY3JlYXRlSGFuZG9mZih7IHRhcmdldEFwcElkOiAnbXl2YWx0ZWNoJywgcm91dGU6ICcvYXBwL2Rhc2hib2FyZCcgfSlcbiAqICk7XG4gKiB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGBodHRwczovL215dmFsdGVjaC5hcHAvP2hhbmRvZmY9JHt0b2tlbn0mcm91dGU9JHtlbmNvZGVVUklDb21wb25lbnQocm91dGUgPz8gJy8nKX1gO1xuICogYGBgXG4gKlxuICogKipUYXJnZXQgYXBwIChib290KToqKiBjYWxsIGBleGNoYW5nZUhhbmRvZmYodG9rZW4pYC4gT24gc3VjY2VzcywgdGhlIHNlc3Npb25cbiAqIGlzIGluc3RhbGxlZCAoYEF1dGhTZXJ2aWNlLnNldEV4dGVybmFsQXV0aGApIGFuZCB0aGUgdXNlciBpcyBhdXRoZW50aWNhdGVkLlxuICogU2VlIGBkZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmZgIGhlbHBlciBmb3IgdGhlIHR5cGljYWwgYm9vdHN0cmFwIHBhdHRlcm4uXG4gKlxuICogU2VjdXJpdHkgbm90ZXM6XG4gKiAtIFRva2VuIGlzIHNpbmdsZS11c2UgYW5kIHNob3J0LWxpdmVkICgzMHMpIOKAlCBlbmZvcmNlZCBzZXJ2ZXItc2lkZS5cbiAqIC0gVG9rZW4gaW4gVVJMIG11c3QgYmUgcmVtb3ZlZCBmcm9tIGhpc3RvcnkgYWZ0ZXIgZXhjaGFuZ2UgdG8gYXZvaWQgbG9nIGxlYWthZ2UuXG4gKiAtIFRoZSBleGNoYW5nZSBlbmRwb2ludCBpcyBwdWJsaWM7IGRvIE5PVCBhZGQgYXV0aCBoZWFkZXIuIFRoZVxuICogICBgSHR0cENsaWVudGAgcmVxdWVzdCBiZWxvdyBhdm9pZHMgdHJpZ2dlcmluZyB0aGUgYXV0aCBpbnRlcmNlcHRvciBzaW5jZSB0aGVcbiAqICAgdXNlciBpc24ndCBsb2dnZWQgaW4geWV0IG9uIHRoZSB0YXJnZXQgYXBwLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEhhbmRvZmZTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBkZXRlY3RlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVkFMVEVDSF9BVVRIX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFZhbHRlY2hBdXRoQ29uZmlnIHwgbnVsbCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICAvKipcbiAgICogQ3JlYXRlIGEgaGFuZG9mZiB0b2tlbi4gQ2FsbGVyIG11c3QgYmUgYXV0aGVudGljYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlcXVlc3QgT3B0aW9uYWwgbWV0YWRhdGE6IHRhcmdldCBhcHAgaWQgYW5kIGludGVuZGVkIHJvdXRlLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGVtaXR0aW5nIGB7IHRva2VuLCBleHBpcmVzQXQsIHJvdXRlPyB9YC5cbiAgICovXG4gIGNyZWF0ZUhhbmRvZmYocmVxdWVzdDogSGFuZG9mZkNyZWF0ZVJlcXVlc3QgPSB7fSk6IE9ic2VydmFibGU8SGFuZG9mZkNyZWF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEhhbmRvZmZDcmVhdGVSZXNwb25zZT4oYCR7dGhpcy5iYXNlVXJsfS9oYW5kb2ZmYCwgcmVxdWVzdCk7XG4gIH1cblxuICAvKipcbiAgICogRXhjaGFuZ2UgYSBoYW5kb2ZmIHRva2VuIGZvciBhIHNlc3Npb24gYW5kIGluc3RhbGwgaXQuXG4gICAqXG4gICAqIE9uIHN1Y2Nlc3MsIHRoZSByZXNwb25zZSBpcyBwaXBlZCB0aHJvdWdoIGBBdXRoU2VydmljZS5zZXRFeHRlcm5hbEF1dGhgXG4gICAqIHNvIHRoZSB1c2VyIGJlY29tZXMgYXV0aGVudGljYXRlZC4gU3Vic2VxdWVudCBuYXZpZ2F0aW9uIGNhbiBwcm9jZWVkLlxuICAgKlxuICAgKiBPbiBmYWlsdXJlLCB0aGUgb2JzZXJ2YWJsZSBlcnJvcnMuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yXG4gICAqIHNob3dpbmcgYW4gZXJyb3IgYW5kIHJvdXRpbmcgdG8gYC9sb2dpbmAuXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlbiBSYXcgaGFuZG9mZiB0b2tlbiByZWFkIGZyb20gdGhlIFVSTC5cbiAgICovXG4gIGV4Y2hhbmdlSGFuZG9mZih0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxIYW5kb2ZmRXhjaGFuZ2VSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PEhhbmRvZmZFeGNoYW5nZVJlc3BvbnNlPihgJHt0aGlzLmJhc2VVcmx9L2hhbmRvZmYvZXhjaGFuZ2VgLCB7IHRva2VuIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHRoaXMuaW5zdGFsbFNlc3Npb24ocmVzcG9uc2UpKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIC8vIFN1cmZhY2UgdGhlIGVycm9yIHVudG91Y2hlZCDigJQgdGhlIGNhbGxlciBkZWNpZGVzIGhvdyB0byByZWFjdFxuICAgICAgICAgIC8vICh0eXBpY2FsbHk6IHJlZGlyZWN0IHRvIC9sb2dpbiArIHRvYXN0KS4gRG9uJ3QgaW5zdGFsbCBhIGJhZCBzZXNzaW9uLlxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQm9vdHN0cmFwIGhlbHBlciDigJQgcmVhZHMgdGhlIGhhbmRvZmYgdG9rZW4gZnJvbSB0aGUgY3VycmVudCBVUkwsIGV4Y2hhbmdlc1xuICAgKiBpdCBmb3IgYSBzZXNzaW9uLCBhbmQgbmF2aWdhdGVzIHRvIHRoZSBpbnRlbmRlZCByb3V0ZSB3aXRoIHRoZSB0b2tlblxuICAgKiBzdHJpcHBlZCBmcm9tIGhpc3RvcnkuXG4gICAqXG4gICAqIElkZW1wb3RlbnQ6IHN1YnNlcXVlbnQgY2FsbHMgYXJlIG5vLW9wcy4gV2lyZSBmcm9tIGFuXG4gICAqIGBBUFBfSU5JVElBTElaRVJgL2Bwcm92aWRlQXBwSW5pdGlhbGl6ZXJgIGZhY3RvcnkgaW4gYG1haW4udHNgLlxuICAgKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIG1haW4udHNcbiAgICogcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IGluamVjdChIYW5kb2ZmU2VydmljZSkuZGV0ZWN0QW5kRXhjaGFuZ2VIYW5kb2ZmKCkpXG4gICAqIGBgYFxuICAgKlxuICAgKiBPbiBlcnJvciAoZXhwaXJlZC91c2VkL2ludmFsaWQgdG9rZW4pLCByZWRpcmVjdHMgdG8gYGVycm9yUm91dGVgIChkZWZhdWx0OlxuICAgKiB0aGUgYXBwJ3MgY29uZmlndXJlZCBgbG9naW5Sb3V0ZWApLiBUaGUgVVJMIGlzIGFsd2F5cyBjbGVhbmVkLCBldmVuIG9uXG4gICAqIGVycm9yLCBzbyB0aGUgdG9rZW4gY2Fubm90IGJlIHJldHJpZWQgYnkgcmVmcmVzaGluZyB0aGUgcGFnZS5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIGEgaGFuZG9mZiB3YXMgZGV0ZWN0ZWQgYW5kIHByb2Nlc3NlZCAoc3VjY2VzcyBvciBmYWlsKS5cbiAgICogICAgICAgICAgYGZhbHNlYCBpZiBubyB0b2tlbiB3YXMgcHJlc2VudCAoY29sZCBib290LCBub3JtYWwgZmxvdykuXG4gICAqL1xuICBhc3luYyBkZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmYob3B0aW9uczogRGV0ZWN0QW5kRXhjaGFuZ2VPcHRpb25zID0ge30pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5kZXRlY3RlZCB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmRldGVjdGVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHRva2VuUGFyYW0gPSBvcHRpb25zLnRva2VuUGFyYW0gPz8gSEFORE9GRl9UT0tFTl9QQVJBTTtcbiAgICBjb25zdCByb3V0ZVBhcmFtID0gb3B0aW9ucy5yb3V0ZVBhcmFtID8/IEhBTkRPRkZfUk9VVEVfUEFSQU07XG4gICAgY29uc3QgZGVmYXVsdFJvdXRlID0gb3B0aW9ucy5kZWZhdWx0Um91dGUgPz8gJy8nO1xuICAgIGNvbnN0IGVycm9yUm91dGUgPSBvcHRpb25zLmVycm9yUm91dGUgPz8gdGhpcy5jb25maWc/LmxvZ2luUm91dGUgPz8gJy9sb2dpbic7XG5cbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGNvbnN0IHRva2VuID0gcGFyYW1zLmdldCh0b2tlblBhcmFtKTtcbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0Um91dGUgPSBwYXJhbXMuZ2V0KHJvdXRlUGFyYW0pIHx8IGRlZmF1bHRSb3V0ZTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmV4Y2hhbmdlSGFuZG9mZih0b2tlbikpO1xuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YXJnZXRSb3V0ZSwgeyByZXBsYWNlVXJsOiB0cnVlIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS53YXJuKCdbSGFuZG9mZl0gRXhjaGFuZ2UgZmFpbGVkLCByZWRpcmVjdGluZyB0byBsb2dpbicsIGVycik7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGVycm9yUm91dGUsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJzaXN0IHRoZSBzZXNzaW9uIGluIGBBdXRoU2VydmljZWAuIE1pcnJvcnMgdGhlIGluc3RhbGwgZmxvdyB1c2VkIGJ5XG4gICAqIHRoZSBub3JtYWwgc2lnbmluIHBhdGggc28gdGltZXJzLCBGaXJlYmFzZSwgYW5kIHRhYi1zeW5jIGFsbCBraWNrIGluLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsU2Vzc2lvbihyZXNwb25zZTogSGFuZG9mZkV4Y2hhbmdlUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLmF1dGguc2V0RXh0ZXJuYWxBdXRoKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiByZXNwb25zZS5hY2Nlc3NUb2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogcmVzcG9uc2UucmVmcmVzaFRva2VuLFxuICAgICAgZmlyZWJhc2VUb2tlbjogcmVzcG9uc2UuZmlyZWJhc2VUb2tlbixcbiAgICAgIGV4cGlyZXNJbjogcmVzcG9uc2UuZXhwaXJlc0luLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYmFzZVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfSR7dGhpcy5jb25maWc/LmF1dGhQcmVmaXh9YDtcbiAgfVxufVxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZG9mZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2hhbmRvZmYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGNBQWMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUFHL0M7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztBQUU3Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztBQW1FM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUNtRCxNQUFnQyxFQUN6RSxJQUFnQixFQUNoQixJQUFpQixFQUNqQixNQUFjO1FBSDJCLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ3pFLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTmhCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFPdEIsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLFVBQWdDLEVBQUU7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBd0IsR0FBRyxJQUFJLENBQUMsT0FBTyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxlQUFlLENBQUMsS0FBYTtRQUMzQix3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QyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUs3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgVmFsdGVjaEF1dGhDb25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBxdWVyeSBwYXJhbSB0aGF0IGNhcnJpZXMgdGhlIGhhbmRvZmYgdG9rZW4uIEFwcHMgbWF5IG92ZXJyaWRlXG4gKiB2aWEgYGRldGVjdEFuZEV4Y2hhbmdlSGFuZG9mZih7IHRva2VuUGFyYW0gfSlgIGJ1dCB0aGUgZGVmYXVsdCBrZWVwcyB0aGVcbiAqIGNvbnZlbnRpb24gY29uc2lzdGVudCBhY3Jvc3MgdGhlIGZhY3RvcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBIQU5ET0ZGX1RPS0VOX1BBUkFNID0gJ2hhbmRvZmYnO1xuXG4vKipcbiAqIE5hbWUgb2YgdGhlIHF1ZXJ5IHBhcmFtIHRoYXQgY2FycmllcyB0aGUgcG9zdC1leGNoYW5nZSByb3V0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEhBTkRPRkZfUk9VVEVfUEFSQU0gPSAncm91dGUnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBIYW5kb2ZmU2VydmljZS5kZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmZgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldGVjdEFuZEV4Y2hhbmdlT3B0aW9ucyB7XG4gIC8qKiBPdmVycmlkZSB0aGUgcXVlcnkgcGFyYW0gbmFtZS4gRGVmYXVsdDogYCdoYW5kb2ZmJ2AuICovXG4gIHRva2VuUGFyYW0/OiBzdHJpbmc7XG4gIC8qKiBPdmVycmlkZSB0aGUgcm91dGUgcGFyYW0gbmFtZS4gRGVmYXVsdDogYCdyb3V0ZSdgLiAqL1xuICByb3V0ZVBhcmFtPzogc3RyaW5nO1xuICAvKiogV2hlcmUgdG8gbmF2aWdhdGUgaWYgbm8gcm91dGUgcGFyYW0gaXMgcHJlc2VudC4gRGVmYXVsdDogYCcvJ2AuICovXG4gIGRlZmF1bHRSb3V0ZT86IHN0cmluZztcbiAgLyoqIFdoZXJlIHRvIG5hdmlnYXRlIG9uIGV4Y2hhbmdlIGVycm9yLiBEZWZhdWx0OiBhcHAncyBjb25maWd1cmVkIGBsb2dpblJvdXRlYC4gKi9cbiAgZXJyb3JSb3V0ZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IGJvZHkgZm9yIGBQT1NUIC92Mi9hdXRoL2hhbmRvZmZgLlxuICpcbiAqIEJvdGggZmllbGRzIGFyZSBvcHRpb25hbCBhbmQgc3RvcmVkIGZvciBhdWRpdCBvbmx5IOKAlCB0aGUgZXhjaGFuZ2Ugc3RlcFxuICogZG9lcyBub3QgZW5mb3JjZSB0aGF0IHRoZSByZWRlZW1pbmcgYXBwIG1hdGNoZXMgYHRhcmdldEFwcElkYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYW5kb2ZmQ3JlYXRlUmVxdWVzdCB7XG4gIC8qKiBUYXJnZXQgYXBwIHRoZSBoYW5kb2ZmIGlzIGludGVuZGVkIGZvciAoZS5nLiBgXCJteXZhbHRlY2hcImApLiBBdWRpdC1vbmx5LiAqL1xuICB0YXJnZXRBcHBJZD86IHN0cmluZztcbiAgLyoqIFJvdXRlIHRoZSB0YXJnZXQgYXBwIHNob3VsZCBuYXZpZ2F0ZSB0byBhZnRlciBleGNoYW5nZS4gRWNob2VkIGJhY2suICovXG4gIHJvdXRlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGJvZHkgZnJvbSBgUE9TVCAvdjIvYXV0aC9oYW5kb2ZmYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYW5kb2ZmQ3JlYXRlUmVzcG9uc2Uge1xuICBvcGVyYXRpb25JZDogc3RyaW5nO1xuICAvKiogUmF3IHRva2VuIHRvIGVtYmVkIGluIHRoZSByZWRpcmVjdCBVUkwgYXMgYD9oYW5kb2ZmPTx0b2tlbj5gLiAzMHMgVFRMLCBzaW5nbGUtdXNlLiAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogUkZDMzMzOSBleHBpcmF0aW9uIHRpbWVzdGFtcC4gKi9cbiAgZXhwaXJlc0F0OiBzdHJpbmc7XG4gIC8qKiBFY2hvZWQgYHJvdXRlYCBmcm9tIHRoZSByZXF1ZXN0LCB3aGVuIHByb3ZpZGVkLiAqL1xuICByb3V0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFic29sdXRlIGJhc2UgVVJMIG9mIHRoZSB0YXJnZXQgYXBwIChlLmcuIGBcImh0dHBzOi8vc2lnaWZ5LmNvbVwiYCkuXG4gICAqXG4gICAqIFdoZW4gcHJlc2VudCwgY2FsbGVycyBzaG91bGQgdXNlIHRoaXMgYXMgdGhlIGRlc3RpbmF0aW9uIGZvciB0aGUgcmVkaXJlY3QuXG4gICAqIEJhY2tlbmQgcmVzb2x2ZXMgaXQgZnJvbSB0aGUgYGFwcC1jb25maWdgIHRhYmxlIChzaW5nbGUgc291cmNlIG9mIHRydXRoKS5cbiAgICpcbiAgICogT3B0aW9uYWwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg4oCUIHdoZW4gbWlzc2luZywgY2FsbGVycyBtYXkgZmFsbCBiYWNrXG4gICAqIHRvIGEgY2xpZW50LXNpZGUgYGFwcFVybHNgIG1hcHBpbmcuXG4gICAqL1xuICB0YXJnZXRCYXNlVXJsPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGJvZHkgZnJvbSBgUE9TVCAvdjIvYXV0aC9oYW5kb2ZmL2V4Y2hhbmdlYC5cbiAqXG4gKiBTYW1lIHNoYXBlIGFzIGBTaWduaW5SZXNwb25zZWAg4oCUIGluc3RhbGxhYmxlIHZpYSBgQXV0aFNlcnZpY2Uuc2V0RXh0ZXJuYWxBdXRoYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYW5kb2ZmRXhjaGFuZ2VSZXNwb25zZSB7XG4gIG9wZXJhdGlvbklkOiBzdHJpbmc7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICBmaXJlYmFzZVRva2VuPzogc3RyaW5nO1xuICBleHBpcmVzSW46IG51bWJlcjtcbiAgdG9rZW5UeXBlOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEhhbmRvZmZTZXJ2aWNlIOKAlCBjcm9zcy1hcHAgc2Vzc2lvbiB0cmFuc2Zlci5cbiAqXG4gKiBJbXBsZW1lbnRzIHRoZSBPQXV0aCBBdXRob3JpemF0aW9uIENvZGUgcGF0dGVybiwgYXBwbGllZCBpbnRlcm5hbGx5IGJldHdlZW5cbiAqIGFwcHMgdGhhdCBzaGFyZSB0aGUgc2FtZSBiYWNrZW5kLlxuICpcbiAqICoqT3JpZ2luIGFwcCAodXNlciBpcyBhdXRoZW50aWNhdGVkKToqKlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHsgdG9rZW4sIHJvdXRlIH0gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAqICAgaGFuZG9mZi5jcmVhdGVIYW5kb2ZmKHsgdGFyZ2V0QXBwSWQ6ICdteXZhbHRlY2gnLCByb3V0ZTogJy9hcHAvZGFzaGJvYXJkJyB9KVxuICogKTtcbiAqIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYGh0dHBzOi8vbXl2YWx0ZWNoLmFwcC8/aGFuZG9mZj0ke3Rva2VufSZyb3V0ZT0ke2VuY29kZVVSSUNvbXBvbmVudChyb3V0ZSA/PyAnLycpfWA7XG4gKiBgYGBcbiAqXG4gKiAqKlRhcmdldCBhcHAgKGJvb3QpOioqIGNhbGwgYGV4Y2hhbmdlSGFuZG9mZih0b2tlbilgLiBPbiBzdWNjZXNzLCB0aGUgc2Vzc2lvblxuICogaXMgaW5zdGFsbGVkIChgQXV0aFNlcnZpY2Uuc2V0RXh0ZXJuYWxBdXRoYCkgYW5kIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQuXG4gKiBTZWUgYGRldGVjdEFuZEV4Y2hhbmdlSGFuZG9mZmAgaGVscGVyIGZvciB0aGUgdHlwaWNhbCBib290c3RyYXAgcGF0dGVybi5cbiAqXG4gKiBTZWN1cml0eSBub3RlczpcbiAqIC0gVG9rZW4gaXMgc2luZ2xlLXVzZSBhbmQgc2hvcnQtbGl2ZWQgKDMwcykg4oCUIGVuZm9yY2VkIHNlcnZlci1zaWRlLlxuICogLSBUb2tlbiBpbiBVUkwgbXVzdCBiZSByZW1vdmVkIGZyb20gaGlzdG9yeSBhZnRlciBleGNoYW5nZSB0byBhdm9pZCBsb2cgbGVha2FnZS5cbiAqIC0gVGhlIGV4Y2hhbmdlIGVuZHBvaW50IGlzIHB1YmxpYzsgZG8gTk9UIGFkZCBhdXRoIGhlYWRlci4gVGhlXG4gKiAgIGBIdHRwQ2xpZW50YCByZXF1ZXN0IGJlbG93IGF2b2lkcyB0cmlnZ2VyaW5nIHRoZSBhdXRoIGludGVyY2VwdG9yIHNpbmNlIHRoZVxuICogICB1c2VyIGlzbid0IGxvZ2dlZCBpbiB5ZXQgb24gdGhlIHRhcmdldCBhcHAuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSGFuZG9mZlNlcnZpY2Uge1xuICBwcml2YXRlIGRldGVjdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcgfCBudWxsLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBoYW5kb2ZmIHRva2VuLiBDYWxsZXIgbXVzdCBiZSBhdXRoZW50aWNhdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gcmVxdWVzdCBPcHRpb25hbCBtZXRhZGF0YTogdGFyZ2V0IGFwcCBpZCBhbmQgaW50ZW5kZWQgcm91dGUuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgZW1pdHRpbmcgYHsgdG9rZW4sIGV4cGlyZXNBdCwgcm91dGU/IH1gLlxuICAgKi9cbiAgY3JlYXRlSGFuZG9mZihyZXF1ZXN0OiBIYW5kb2ZmQ3JlYXRlUmVxdWVzdCA9IHt9KTogT2JzZXJ2YWJsZTxIYW5kb2ZmQ3JlYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SGFuZG9mZkNyZWF0ZVJlc3BvbnNlPihgJHt0aGlzLmJhc2VVcmx9L2hhbmRvZmZgLCByZXF1ZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGNoYW5nZSBhIGhhbmRvZmYgdG9rZW4gZm9yIGEgc2Vzc2lvbiBhbmQgaW5zdGFsbCBpdC5cbiAgICpcbiAgICogT24gc3VjY2VzcywgdGhlIHJlc3BvbnNlIGlzIHBpcGVkIHRocm91Z2ggYEF1dGhTZXJ2aWNlLnNldEV4dGVybmFsQXV0aGBcbiAgICogc28gdGhlIHVzZXIgYmVjb21lcyBhdXRoZW50aWNhdGVkLiBTdWJzZXF1ZW50IG5hdmlnYXRpb24gY2FuIHByb2NlZWQuXG4gICAqXG4gICAqIE9uIGZhaWx1cmUsIHRoZSBvYnNlcnZhYmxlIGVycm9ycy4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3JcbiAgICogc2hvd2luZyBhbiBlcnJvciBhbmQgcm91dGluZyB0byBgL2xvZ2luYC5cbiAgICpcbiAgICogQHBhcmFtIHRva2VuIFJhdyBoYW5kb2ZmIHRva2VuIHJlYWQgZnJvbSB0aGUgVVJMLlxuICAgKi9cbiAgZXhjaGFuZ2VIYW5kb2ZmKHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEhhbmRvZmZFeGNoYW5nZVJlc3BvbnNlPiB7XG4gICAgLy8gd2l0aENyZWRlbnRpYWxzOiBlbCBleGNoYW5nZSBzZXRlYSBsYSBjb29raWUgSHR0cE9ubHkgZGUgcmVmcmVzaC4gU2luXG4gICAgLy8gY3JlZGVuY2lhbGVzIGVsIGJyb3dzZXIgZGVzY2FydGEgZWwgU2V0LUNvb2tpZSBjcm9zcy1vcmlnaW4g4oaSIC9yZWZyZXNoIDQwMCAoSC0wNSkuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8SGFuZG9mZkV4Y2hhbmdlUmVzcG9uc2U+KFxuICAgICAgICBgJHt0aGlzLmJhc2VVcmx9L2hhbmRvZmYvZXhjaGFuZ2VgLFxuICAgICAgICB7IHRva2VuIH0sXG4gICAgICAgIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH1cbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAocmVzcG9uc2UgPT4gdGhpcy5pbnN0YWxsU2Vzc2lvbihyZXNwb25zZSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgLy8gU3VyZmFjZSB0aGUgZXJyb3IgdW50b3VjaGVkIOKAlCB0aGUgY2FsbGVyIGRlY2lkZXMgaG93IHRvIHJlYWN0XG4gICAgICAgICAgLy8gKHR5cGljYWxseTogcmVkaXJlY3QgdG8gL2xvZ2luICsgdG9hc3QpLiBEb24ndCBpbnN0YWxsIGEgYmFkIHNlc3Npb24uXG4gICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCb290c3RyYXAgaGVscGVyIOKAlCByZWFkcyB0aGUgaGFuZG9mZiB0b2tlbiBmcm9tIHRoZSBjdXJyZW50IFVSTCwgZXhjaGFuZ2VzXG4gICAqIGl0IGZvciBhIHNlc3Npb24sIGFuZCBuYXZpZ2F0ZXMgdG8gdGhlIGludGVuZGVkIHJvdXRlIHdpdGggdGhlIHRva2VuXG4gICAqIHN0cmlwcGVkIGZyb20gaGlzdG9yeS5cbiAgICpcbiAgICogSWRlbXBvdGVudDogc3Vic2VxdWVudCBjYWxscyBhcmUgbm8tb3BzLiBXaXJlIGZyb20gYW5cbiAgICogYEFQUF9JTklUSUFMSVpFUmAvYHByb3ZpZGVBcHBJbml0aWFsaXplcmAgZmFjdG9yeSBpbiBgbWFpbi50c2AuXG4gICAqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gbWFpbi50c1xuICAgKiBwcm92aWRlQXBwSW5pdGlhbGl6ZXIoKCkgPT4gaW5qZWN0KEhhbmRvZmZTZXJ2aWNlKS5kZXRlY3RBbmRFeGNoYW5nZUhhbmRvZmYoKSlcbiAgICogYGBgXG4gICAqXG4gICAqIE9uIGVycm9yIChleHBpcmVkL3VzZWQvaW52YWxpZCB0b2tlbiksIHJlZGlyZWN0cyB0byBgZXJyb3JSb3V0ZWAgKGRlZmF1bHQ6XG4gICAqIHRoZSBhcHAncyBjb25maWd1cmVkIGBsb2dpblJvdXRlYCkuIFRoZSBVUkwgaXMgYWx3YXlzIGNsZWFuZWQsIGV2ZW4gb25cbiAgICogZXJyb3IsIHNvIHRoZSB0b2tlbiBjYW5ub3QgYmUgcmV0cmllZCBieSByZWZyZXNoaW5nIHRoZSBwYWdlLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYSBoYW5kb2ZmIHdhcyBkZXRlY3RlZCBhbmQgcHJvY2Vzc2VkIChzdWNjZXNzIG9yIGZhaWwpLlxuICAgKiAgICAgICAgICBgZmFsc2VgIGlmIG5vIHRva2VuIHdhcyBwcmVzZW50IChjb2xkIGJvb3QsIG5vcm1hbCBmbG93KS5cbiAgICovXG4gIGFzeW5jIGRldGVjdEFuZEV4Y2hhbmdlSGFuZG9mZihvcHRpb25zOiBEZXRlY3RBbmRFeGNoYW5nZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLmRldGVjdGVkIHx8IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZGV0ZWN0ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgdG9rZW5QYXJhbSA9IG9wdGlvbnMudG9rZW5QYXJhbSA/PyBIQU5ET0ZGX1RPS0VOX1BBUkFNO1xuICAgIGNvbnN0IHJvdXRlUGFyYW0gPSBvcHRpb25zLnJvdXRlUGFyYW0gPz8gSEFORE9GRl9ST1VURV9QQVJBTTtcbiAgICBjb25zdCBkZWZhdWx0Um91dGUgPSBvcHRpb25zLmRlZmF1bHRSb3V0ZSA/PyAnLyc7XG4gICAgY29uc3QgZXJyb3JSb3V0ZSA9IG9wdGlvbnMuZXJyb3JSb3V0ZSA/PyB0aGlzLmNvbmZpZz8ubG9naW5Sb3V0ZSA/PyAnL2xvZ2luJztcblxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KHRva2VuUGFyYW0pO1xuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRSb3V0ZSA9IHBhcmFtcy5nZXQocm91dGVQYXJhbSkgfHwgZGVmYXVsdFJvdXRlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZXhjaGFuZ2VIYW5kb2ZmKHRva2VuKSk7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhcmdldFJvdXRlLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tIYW5kb2ZmXSBFeGNoYW5nZSBmYWlsZWQsIHJlZGlyZWN0aW5nIHRvIGxvZ2luJywgZXJyKTtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoZXJyb3JSb3V0ZSwgeyByZXBsYWNlVXJsOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcnNpc3QgdGhlIHNlc3Npb24gaW4gYEF1dGhTZXJ2aWNlYC4gTWlycm9ycyB0aGUgaW5zdGFsbCBmbG93IHVzZWQgYnlcbiAgICogdGhlIG5vcm1hbCBzaWduaW4gcGF0aCBzbyB0aW1lcnMsIEZpcmViYXNlLCBhbmQgdGFiLXN5bmMgYWxsIGtpY2sgaW4uXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxTZXNzaW9uKHJlc3BvbnNlOiBIYW5kb2ZmRXhjaGFuZ2VSZXNwb25zZSk6IHZvaWQge1xuICAgIHRoaXMuYXV0aC5zZXRFeHRlcm5hbEF1dGgoe1xuICAgICAgYWNjZXNzVG9rZW46IHJlc3BvbnNlLmFjY2Vzc1Rva2VuLFxuICAgICAgcmVmcmVzaFRva2VuOiByZXNwb25zZS5yZWZyZXNoVG9rZW4sXG4gICAgICBmaXJlYmFzZVRva2VuOiByZXNwb25zZS5maXJlYmFzZVRva2VuLFxuICAgICAgZXhwaXJlc0luOiByZXNwb25zZS5leHBpcmVzSW4sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBiYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29uZmlnPy5hcGlVcmx9JHt0aGlzLmNvbmZpZz8uYXV0aFByZWZpeH1gO1xuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.165';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNjUnO1xuIl19
5
+ export const VERSION = '4.0.167';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xNjcnO1xuIl19
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.165';
59
+ const VERSION = '4.0.167';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -8537,7 +8537,13 @@ class AuthService {
8537
8537
  browser: request.browser ?? platformInfo.browser,
8538
8538
  os: request.os ?? platformInfo.os,
8539
8539
  };
8540
- return this.http.post(`${this.baseUrl}/signin`, enrichedRequest).pipe(tap(response => {
8540
+ // withCredentials: el backend setea la cookie HttpOnly de refresh (valtech_refresh)
8541
+ // en la respuesta. El browser solo almacena ese Set-Cookie cross-origin si la
8542
+ // request se hizo con credenciales. Sin esto la cookie no persiste y /refresh
8543
+ // falla siempre (400) → la sesión no dura (H-05).
8544
+ return this.http
8545
+ .post(`${this.baseUrl}/signin`, enrichedRequest, { withCredentials: true })
8546
+ .pipe(tap(response => {
8541
8547
  if (response.mfaRequired) {
8542
8548
  // MFA requerido - guardar estado temporal
8543
8549
  this.stateService.setMFAPending({
@@ -8685,7 +8691,11 @@ class AuthService {
8685
8691
  */
8686
8692
  verifyEmail(request) {
8687
8693
  this.stateService.clearError();
8688
- return this.http.post(`${this.baseUrl}/verify-email`, request).pipe(tap(response => {
8694
+ // withCredentials: el verify-email auto-loguea y setea la cookie HttpOnly de
8695
+ // refresh. Sin credenciales el browser descarta el Set-Cookie → /refresh 400 (H-05).
8696
+ return this.http
8697
+ .post(`${this.baseUrl}/verify-email`, request, { withCredentials: true })
8698
+ .pipe(tap(response => {
8689
8699
  if (response.verified && response.accessToken) {
8690
8700
  // Auto-login: guardar tokens y actualizar estado
8691
8701
  this.handleSuccessfulAuth(response);
@@ -9033,7 +9043,11 @@ class AuthService {
9033
9043
  */
9034
9044
  activateAccount(request) {
9035
9045
  this.stateService.clearError();
9036
- return this.http.post(`${this.baseUrl}/activate`, request).pipe(tap(response => {
9046
+ // withCredentials: activate auto-loguea y setea la cookie HttpOnly de refresh.
9047
+ // Sin credenciales el browser descarta el Set-Cookie → /refresh 400 (H-05).
9048
+ return this.http
9049
+ .post(`${this.baseUrl}/activate`, request, { withCredentials: true })
9050
+ .pipe(tap(response => {
9037
9051
  if (response.activated && response.accessToken) {
9038
9052
  this.handleSuccessfulAuth(response);
9039
9053
  }
@@ -27959,6 +27973,13 @@ function provideValtechAppVersionHttp(config) {
27959
27973
  *
27960
27974
  * Las tres dependencias se inyectan como opcionales.
27961
27975
  */
27976
+ /**
27977
+ * Máximo que `applyUpdate` espera por el `VERSION_READY` del SW antes de recargar
27978
+ * igual. Cubre el caso en que el update lo detectó el path HTTP antes de que el
27979
+ * SW descargara el bundle nuevo (evita el loop de banner). Si el SW nunca queda
27980
+ * listo (Android Chrome), recarga como último recurso al vencer.
27981
+ */
27982
+ const SW_READY_TIMEOUT_MS = 8000;
27962
27983
  /**
27963
27984
  * Compara dos versiones semver. Retorna true si `a` es estrictamente menor
27964
27985
  * que `b`. Tolerante a longitudes distintas y a partes no numéricas.
@@ -27985,9 +28006,13 @@ class AppVersionService {
27985
28006
  this.appConfig = inject(AppConfigService, { optional: true });
27986
28007
  this.serviceConfig = inject(VALTECH_APP_VERSION, { optional: true });
27987
28008
  /** Plugin nativo opcional: provisto por apps Capacitor para Play Store / App Store. */
27988
- this.platformPlugin = inject(APP_VERSION_PLATFORM_PLUGIN, { optional: true });
28009
+ this.platformPlugin = inject(APP_VERSION_PLATFORM_PLUGIN, {
28010
+ optional: true,
28011
+ });
27989
28012
  /** Plugin HTTP opcional: alternativa a AppConfigService para apps sin Firebase. */
27990
- this.remotePlugin = inject(APP_VERSION_REMOTE_PLUGIN, { optional: true });
28013
+ this.remotePlugin = inject(APP_VERSION_REMOTE_PLUGIN, {
28014
+ optional: true,
28015
+ });
27991
28016
  this.document = inject(DOCUMENT);
27992
28017
  this.destroyRef = inject(DestroyRef);
27993
28018
  /** True cuando el SW reportó un bundle nuevo listo (`VERSION_READY`). */
@@ -28056,7 +28081,21 @@ class AppVersionService {
28056
28081
  }
28057
28082
  try {
28058
28083
  if (this.swUpdate?.isEnabled) {
28059
- await this.swUpdate.activateUpdate();
28084
+ // Si la actualización se detectó por el path HTTP (/version.json) ANTES
28085
+ // de que el SW descargue el bundle nuevo, `swUpdateReady` aún es false:
28086
+ // recargar ahora volvería a cargar el MISMO bundle viejo y el banner
28087
+ // reaparecería (loop de "actualizar N veces"). Pedimos al SW que chequee
28088
+ // y esperamos a que el bundle quede listo (con timeout) para que el
28089
+ // reload realmente cambie de versión.
28090
+ if (!this.swUpdateReady()) {
28091
+ await this.swUpdate.checkForUpdate().catch(() => undefined);
28092
+ if (!this.swUpdateReady()) {
28093
+ await this.waitForSwReady(SW_READY_TIMEOUT_MS);
28094
+ }
28095
+ }
28096
+ if (this.swUpdateReady()) {
28097
+ await this.swUpdate.activateUpdate();
28098
+ }
28060
28099
  }
28061
28100
  }
28062
28101
  catch (err) {
@@ -28066,6 +28105,30 @@ class AppVersionService {
28066
28105
  this.document.defaultView?.location.reload();
28067
28106
  }
28068
28107
  }
28108
+ /**
28109
+ * Espera a que el SW reporte un bundle nuevo listo (`VERSION_READY`), o hasta
28110
+ * `timeoutMs`. Evita el reload "en seco" cuando el update lo detectó el path
28111
+ * HTTP antes de que el SW descargara el bundle. Si el timeout vence (ej.
28112
+ * Android Chrome donde VERSION_READY es poco confiable), resuelve igual y el
28113
+ * caller recarga como último recurso.
28114
+ */
28115
+ waitForSwReady(timeoutMs) {
28116
+ if (this.swUpdateReady() || !this.swUpdate?.isEnabled)
28117
+ return Promise.resolve();
28118
+ return new Promise(resolve => {
28119
+ let settled = false;
28120
+ const finish = () => {
28121
+ if (settled)
28122
+ return;
28123
+ settled = true;
28124
+ sub.unsubscribe();
28125
+ clearTimeout(timer);
28126
+ resolve();
28127
+ };
28128
+ const sub = this.swUpdate.versionUpdates.pipe(filter$1(evt => evt.type === 'VERSION_READY')).subscribe(() => finish());
28129
+ const timer = setTimeout(finish, timeoutMs);
28130
+ });
28131
+ }
28069
28132
  /**
28070
28133
  * Descarta el banner de actualización opcional.
28071
28134
  * No tiene efecto sobre el estado `update-required` (hard gate).
@@ -28079,7 +28142,9 @@ class AppVersionService {
28079
28142
  async checkNow() {
28080
28143
  await Promise.all([
28081
28144
  this.swUpdate?.isEnabled
28082
- ? this.swUpdate.checkForUpdate().catch(err => console.warn('[AppVersionService] checkForUpdate failed:', err))
28145
+ ? this.swUpdate
28146
+ .checkForUpdate()
28147
+ .catch(err => console.warn('[AppVersionService] checkForUpdate failed:', err))
28083
28148
  : undefined,
28084
28149
  this.remotePlugin ? this.loadRemoteConfig() : undefined,
28085
28150
  ]);
@@ -34278,8 +34343,10 @@ class HandoffService {
34278
34343
  * @param token Raw handoff token read from the URL.
34279
34344
  */
34280
34345
  exchangeHandoff(token) {
34346
+ // withCredentials: el exchange setea la cookie HttpOnly de refresh. Sin
34347
+ // credenciales el browser descarta el Set-Cookie cross-origin → /refresh 400 (H-05).
34281
34348
  return this.http
34282
- .post(`${this.baseUrl}/handoff/exchange`, { token })
34349
+ .post(`${this.baseUrl}/handoff/exchange`, { token }, { withCredentials: true })
34283
34350
  .pipe(tap(response => this.installSession(response)), catchError(err => {
34284
34351
  // Surface the error untouched — the caller decides how to react
34285
34352
  // (typically: redirect to /login + toast). Don't install a bad session.