@hivegpt/hiveai-angular 0.0.593 → 0.0.596
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/environments/environment.d.ts.map +1 -1
- package/esm2020/environments/environment.mjs +15 -0
- package/esm2020/hivegpt-hiveai-angular.mjs +5 -0
- package/esm2020/lib/components/NotificationSocket.mjs +45 -0
- package/esm2020/lib/components/bot-html-editor/bot-html-editor.component.mjs +113 -0
- package/esm2020/lib/components/bot.service.mjs +45 -0
- package/esm2020/lib/components/chat-drawer/chat-drawer.component.mjs +3904 -0
- package/esm2020/lib/components/chatbot/chatbot.component.mjs +95 -0
- package/esm2020/lib/components/conversation.service.mjs +58 -0
- package/esm2020/lib/components/socket-service.service.mjs +65 -0
- package/esm2020/lib/components/translations/translation.service.mjs +244 -0
- package/esm2020/lib/components/video-player/video-player.component.mjs +131 -0
- package/esm2020/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.mjs +187 -0
- package/esm2020/lib/components/voice-agent/services/audio-analyzer.service.mjs +127 -0
- package/esm2020/lib/components/voice-agent/services/voice-agent.service.mjs +352 -0
- package/esm2020/lib/components/voice-agent/voice-agent.module.mjs +37 -0
- package/esm2020/lib/components/voice-agent/voice-modal-tokens.mjs +4 -0
- package/esm2020/lib/hivegpt.module.mjs +28 -0
- package/esm2020/lib/models/video.mjs +2 -0
- package/esm2020/lib/pipes/safe-html.pipe.mjs +20 -0
- package/esm2020/lib/services/platform-token-refresh.service.mjs +177 -0
- package/esm2020/lib/utils/utils.mjs +36 -0
- package/esm2020/public-api.mjs +15 -0
- package/fesm2015/hivegpt-hiveai-angular.mjs +5605 -0
- package/fesm2015/hivegpt-hiveai-angular.mjs.map +1 -0
- package/fesm2020/hivegpt-hiveai-angular.mjs +5606 -0
- package/fesm2020/hivegpt-hiveai-angular.mjs.map +1 -0
- package/hivegpt-hiveai-angular.d.ts.map +1 -1
- package/index.d.ts +6 -0
- package/lib/components/NotificationSocket.d.ts +6 -1
- package/lib/components/NotificationSocket.d.ts.map +1 -1
- package/lib/components/bot-html-editor/bot-html-editor.component.d.ts +3 -0
- package/lib/components/bot-html-editor/bot-html-editor.component.d.ts.map +1 -1
- package/lib/components/bot.service.d.ts +5 -1
- package/lib/components/bot.service.d.ts.map +1 -1
- package/lib/components/chat-drawer/chat-drawer.component.d.ts +7 -3
- package/lib/components/chat-drawer/chat-drawer.component.d.ts.map +1 -1
- package/lib/components/chatbot/chatbot.component.d.ts +3 -0
- package/lib/components/chatbot/chatbot.component.d.ts.map +1 -1
- package/lib/components/conversation.service.d.ts +3 -0
- package/lib/components/conversation.service.d.ts.map +1 -1
- package/lib/components/socket-service.service.d.ts +7 -3
- package/lib/components/socket-service.service.d.ts.map +1 -1
- package/lib/components/translations/translation.service.d.ts +3 -0
- package/lib/components/translations/translation.service.d.ts.map +1 -1
- package/lib/components/video-player/video-player.component.d.ts +3 -0
- package/lib/components/video-player/video-player.component.d.ts.map +1 -1
- package/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.d.ts +3 -0
- package/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.d.ts.map +1 -1
- package/lib/components/voice-agent/services/audio-analyzer.service.d.ts +3 -0
- package/lib/components/voice-agent/services/audio-analyzer.service.d.ts.map +1 -1
- package/lib/components/voice-agent/services/voice-agent.service.d.ts +4 -1
- package/lib/components/voice-agent/services/voice-agent.service.d.ts.map +1 -1
- package/lib/components/voice-agent/voice-agent.module.d.ts +6 -0
- package/lib/components/voice-agent/voice-agent.module.d.ts.map +1 -1
- package/lib/components/voice-agent/voice-modal-tokens.d.ts.map +1 -1
- package/lib/hivegpt.module.d.ts +16 -0
- package/lib/hivegpt.module.d.ts.map +1 -1
- package/lib/models/video.d.ts.map +1 -1
- package/lib/pipes/safe-html.pipe.d.ts +3 -0
- package/lib/pipes/safe-html.pipe.d.ts.map +1 -1
- package/lib/services/platform-token-refresh.service.d.ts +3 -0
- package/lib/services/platform-token-refresh.service.d.ts.map +1 -1
- package/lib/utils/utils.d.ts.map +1 -1
- package/package.json +24 -12
- package/public-api.d.ts +2 -0
- package/public-api.d.ts.map +1 -1
- package/bundles/hivegpt-hiveai-angular.umd.js +0 -6285
- package/bundles/hivegpt-hiveai-angular.umd.js.map +0 -1
- package/bundles/hivegpt-hiveai-angular.umd.min.js +0 -2
- package/bundles/hivegpt-hiveai-angular.umd.min.js.map +0 -1
- package/esm2015/environments/environment.js +0 -15
- package/esm2015/hivegpt-hiveai-angular.js +0 -13
- package/esm2015/lib/components/NotificationSocket.js +0 -39
- package/esm2015/lib/components/bot-html-editor/bot-html-editor.component.js +0 -112
- package/esm2015/lib/components/bot.service.js +0 -50
- package/esm2015/lib/components/chat-drawer/chat-drawer.component.js +0 -3809
- package/esm2015/lib/components/chatbot/chatbot.component.js +0 -57
- package/esm2015/lib/components/conversation.service.js +0 -57
- package/esm2015/lib/components/socket-service.service.js +0 -79
- package/esm2015/lib/components/translations/translation.service.js +0 -244
- package/esm2015/lib/components/video-player/video-player.component.js +0 -123
- package/esm2015/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.js +0 -192
- package/esm2015/lib/components/voice-agent/services/audio-analyzer.service.js +0 -125
- package/esm2015/lib/components/voice-agent/services/voice-agent.service.js +0 -364
- package/esm2015/lib/components/voice-agent/voice-agent.module.js +0 -29
- package/esm2015/lib/components/voice-agent/voice-modal-tokens.js +0 -4
- package/esm2015/lib/hivegpt.module.js +0 -23
- package/esm2015/lib/models/video.js +0 -2
- package/esm2015/lib/pipes/safe-html.pipe.js +0 -19
- package/esm2015/lib/services/platform-token-refresh.service.js +0 -173
- package/esm2015/lib/utils/utils.js +0 -38
- package/esm2015/public-api.js +0 -13
- package/fesm2015/hivegpt-hiveai-angular.js +0 -5484
- package/fesm2015/hivegpt-hiveai-angular.js.map +0 -1
- package/hivegpt-hiveai-angular.d.ts +0 -13
- package/hivegpt-hiveai-angular.metadata.json +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { OverlayModule } from '@angular/cdk/overlay';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
7
|
+
import { ChatDrawerComponent } from './components/chat-drawer/chat-drawer.component';
|
|
8
|
+
import { ChatBotComponent } from './components/chatbot/chatbot.component';
|
|
9
|
+
import { SafeHtmlPipe } from './pipes/safe-html.pipe';
|
|
10
|
+
import { VideoPlayerComponent } from './components/video-player/video-player.component';
|
|
11
|
+
import { QuillModule } from 'ngx-quill';
|
|
12
|
+
import { BotHtmlEditorComponent } from './components/bot-html-editor/bot-html-editor.component';
|
|
13
|
+
import { VoiceAgentModule } from './components/voice-agent/voice-agent.module';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
export class HiveGptModule {
|
|
16
|
+
}
|
|
17
|
+
HiveGptModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HiveGptModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
HiveGptModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: HiveGptModule, declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe, BotHtmlEditorComponent], imports: [CommonModule, OverlayModule, MatIconModule, MatSidenavModule, FormsModule, ReactiveFormsModule, QuillModule, VoiceAgentModule], exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent] });
|
|
19
|
+
HiveGptModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HiveGptModule, imports: [CommonModule, OverlayModule, MatIconModule, MatSidenavModule, FormsModule, ReactiveFormsModule, QuillModule, VoiceAgentModule] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HiveGptModule, decorators: [{
|
|
21
|
+
type: NgModule,
|
|
22
|
+
args: [{
|
|
23
|
+
declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe, BotHtmlEditorComponent],
|
|
24
|
+
imports: [CommonModule, OverlayModule, MatIconModule, MatSidenavModule, FormsModule, ReactiveFormsModule, QuillModule, VoiceAgentModule],
|
|
25
|
+
exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl2ZWdwdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy9saWIvaGl2ZWdwdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBTy9FLE1BQU0sT0FBTyxhQUFhOzsyR0FBYixhQUFhOzRHQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixhQUN0RyxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixhQUM3SCxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0I7NEdBRTFELGFBQWEsWUFIZCxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdCQUFnQjs0RkFHNUgsYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLENBQUM7b0JBQ2pILE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3hJLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixDQUFDO2lCQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgQ2hhdERyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGF0LWRyYXdlci9jaGF0LWRyYXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhdEJvdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGF0Ym90L2NoYXRib3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4vcGlwZXMvc2FmZS1odG1sLnBpcGUnO1xuaW1wb3J0IHsgVmlkZW9QbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmlkZW8tcGxheWVyL3ZpZGVvLXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVpbGxNb2R1bGUgfSBmcm9tICduZ3gtcXVpbGwnO1xuaW1wb3J0IHsgQm90SHRtbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ib3QtaHRtbC1lZGl0b3IvYm90LWh0bWwtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWb2ljZUFnZW50TW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL3ZvaWNlLWFnZW50L3ZvaWNlLWFnZW50Lm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NoYXRCb3RDb21wb25lbnQsIENoYXREcmF3ZXJDb21wb25lbnQsIFZpZGVvUGxheWVyQ29tcG9uZW50LCBTYWZlSHRtbFBpcGUsIEJvdEh0bWxFZGl0b3JDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRTaWRlbmF2TW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgUXVpbGxNb2R1bGUsIFZvaWNlQWdlbnRNb2R1bGVdLFxuICBleHBvcnRzOiBbQ2hhdEJvdENvbXBvbmVudCwgQ2hhdERyYXdlckNvbXBvbmVudCwgVmlkZW9QbGF5ZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEhpdmVHcHRNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy9saWIvbW9kZWxzL3ZpZGVvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElWaWRlbyB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICB0aHVtYm5haWw6IHN0cmluZztcbiAgaXNQbGF5aW5nOiBib29sZWFuO1xuICB1c2VySWQ6IHN0cmluZztcbiAgZXZlbnRJZDogc3RyaW5nO1xuICBhb2lJZHM6IHN0cmluZ1tdO1xuICBpbnNlcnRUaW1lU3RhbXA6IHN0cmluZztcbiAgaXNEZWxldGVkOiBib29sZWFuO1xuICBhcHByb3ByaWF0ZTogQXBwcm9wcmlhdGVbXTtcbiAgaXNJbnRyb1ZpZGVvOiBib29sZWFuO1xuICB2aWRlb1JhdGluZzogVmlkZW9SYXRpbmdbXTtcbiAgbGlrZXM6IFZpZGVvTGlrZVtdO1xuICB2dHRVcmw6IHN0cmluZztcbiAgcHJvY2Vzc2VkVXJsczogc3RyaW5nO1xuICBkdXJhdGlvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVmlkZW9SYXRpbmcge1xuICB1c2VySWQ6IHN0cmluZztcbiAgcmF0ZVZhbHVlOiBzdHJpbmc7XG4gIGluc2VydFRpbWVTdGFtcDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVmlkZW9MaWtlIHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGlzTGlrZWQ6IGJvb2xlYW47XG4gIGluc2VydFRpbWVTdGFtcDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBwcm9wcmlhdGUge1xuICB1c2VySWQ6IHN0cmluZztcbiAgaW5zZXJ0VGltZVN0YW1wOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
export class SafeHtmlPipe {
|
|
5
|
+
constructor(sanitizer) {
|
|
6
|
+
this.sanitizer = sanitizer;
|
|
7
|
+
}
|
|
8
|
+
transform(html) {
|
|
9
|
+
return html ? this.sanitizer.bypassSecurityTrustHtml(html) : '';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{
|
|
17
|
+
name: 'safeHtml',
|
|
18
|
+
}]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy9saWIvcGlwZXMvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQU1wRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBSTtRQUNaLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbEUsQ0FBQzs7MEdBUFUsWUFBWTt3R0FBWixZQUFZOzRGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NhZmVIdG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICB9XG5cbiAgdHJhbnNmb3JtKGh0bWwpOiB1bmtub3duIHtcbiAgICByZXR1cm4gaHRtbCA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpIDogJyc7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Inject, Injectable, InjectionToken, Optional, PLATFORM_ID, } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, of, throwError } from 'rxjs';
|
|
4
|
+
import { catchError, filter, switchMap, take } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common/http";
|
|
7
|
+
/**
|
|
8
|
+
* Default matches Pro-Events `AppConstants.authTokenKey` — same localStorage shape
|
|
9
|
+
* `{ accessToken, refreshToken, ... }` as JSON.
|
|
10
|
+
* Named factory (no arrow fn) so ngc metadata collection accepts it.
|
|
11
|
+
*/
|
|
12
|
+
export function hiveGptAuthStorageKeyFactory() {
|
|
13
|
+
return 'authcc-aae1';
|
|
14
|
+
}
|
|
15
|
+
export const HIVEGPT_AUTH_STORAGE_KEY = new InjectionToken('HIVEGPT_AUTH_STORAGE_KEY', {
|
|
16
|
+
providedIn: 'root',
|
|
17
|
+
factory: hiveGptAuthStorageKeyFactory,
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Proactive access-token refresh (JWT `exp`) + single-flight queue, aligned with
|
|
21
|
+
* Pro-Events `EventInterceptor` + `AuthService.refreshToken`.
|
|
22
|
+
*/
|
|
23
|
+
export class PlatformTokenRefreshService {
|
|
24
|
+
constructor(http,
|
|
25
|
+
/** Use `Object` (not `object`) so ngc metadata collection accepts the parameter type. */
|
|
26
|
+
platformId,
|
|
27
|
+
/**
|
|
28
|
+
* Avoid `string | null` on the parameter — `|` is treated as unsupported expression in ngc metadata.
|
|
29
|
+
*/
|
|
30
|
+
authStorageKey) {
|
|
31
|
+
this.http = http;
|
|
32
|
+
this.platformId = platformId;
|
|
33
|
+
this.refreshTokenInProgress = false;
|
|
34
|
+
this.refreshTokenSubject = new BehaviorSubject(null);
|
|
35
|
+
this.storageKey =
|
|
36
|
+
authStorageKey != null && authStorageKey !== ''
|
|
37
|
+
? authStorageKey
|
|
38
|
+
: 'authcc-aae1';
|
|
39
|
+
}
|
|
40
|
+
/** Read parsed auth blob from localStorage (same as host app). */
|
|
41
|
+
readStoredAuth() {
|
|
42
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const raw = localStorage.getItem(this.storageKey);
|
|
47
|
+
if (!raw) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return JSON.parse(raw);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
persistAuth(res) {
|
|
57
|
+
if (!isPlatformBrowser(this.platformId) || !res) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
localStorage.setItem(this.storageKey, JSON.stringify(res));
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
console.warn('[HiveGpt] Failed to persist auth tokens', e);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* JWT `exp` check without @auth0/angular-jwt (keeps package lean).
|
|
69
|
+
* @param skewSeconds refresh slightly before actual expiry (clock skew).
|
|
70
|
+
*/
|
|
71
|
+
isAccessTokenExpired(token, skewSeconds = 60) {
|
|
72
|
+
if (!token || typeof token !== 'string') {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
const expMs = this.getJwtExpirationMs(token);
|
|
76
|
+
if (expMs == null) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return expMs - skewSeconds * 1000 < Date.now();
|
|
80
|
+
}
|
|
81
|
+
getJwtExpirationMs(token) {
|
|
82
|
+
try {
|
|
83
|
+
const parts = token.split('.');
|
|
84
|
+
if (parts.length < 2) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
const payload = parts[1]
|
|
88
|
+
.replace(/-/g, '+')
|
|
89
|
+
.replace(/_/g, '/');
|
|
90
|
+
const padded = payload + '='.repeat((4 - (payload.length % 4)) % 4);
|
|
91
|
+
if (typeof atob === 'undefined') {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
const json = JSON.parse(atob(padded));
|
|
95
|
+
if (json?.exp == null || typeof json.exp !== 'number') {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
return json.exp * 1000;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Returns a valid access token: refreshes via `POST {usersApiBaseUrl}/user/tokenRefresh`
|
|
106
|
+
* when JWT is expired and a refresh token exists in storage.
|
|
107
|
+
*/
|
|
108
|
+
ensureValidAccessToken(currentAccessToken, usersApiBaseUrl) {
|
|
109
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
110
|
+
return of({
|
|
111
|
+
accessToken: currentAccessToken ?? '',
|
|
112
|
+
refreshed: false,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const stored = this.readStoredAuth();
|
|
116
|
+
const access = (currentAccessToken && String(currentAccessToken).trim()) ||
|
|
117
|
+
stored?.accessToken ||
|
|
118
|
+
'';
|
|
119
|
+
const refresh = stored?.refreshToken;
|
|
120
|
+
if (access && !this.isAccessTokenExpired(access)) {
|
|
121
|
+
return of({ accessToken: access, refreshed: false });
|
|
122
|
+
}
|
|
123
|
+
if (!refresh || typeof refresh !== 'string') {
|
|
124
|
+
return of({ accessToken: access, refreshed: false });
|
|
125
|
+
}
|
|
126
|
+
const base = (usersApiBaseUrl || '').replace(/\/+$/, '');
|
|
127
|
+
if (!base) {
|
|
128
|
+
return of({ accessToken: access, refreshed: false });
|
|
129
|
+
}
|
|
130
|
+
const url = `${base}/user/tokenRefresh`;
|
|
131
|
+
if (!this.refreshTokenInProgress) {
|
|
132
|
+
this.refreshTokenInProgress = true;
|
|
133
|
+
this.refreshTokenSubject.next(null);
|
|
134
|
+
return this.http
|
|
135
|
+
.post(url, { refreshToken: refresh })
|
|
136
|
+
.pipe(switchMap((authResponse) => {
|
|
137
|
+
this.refreshTokenInProgress = false;
|
|
138
|
+
if (authResponse?.accessToken) {
|
|
139
|
+
this.persistAuth(authResponse);
|
|
140
|
+
this.refreshTokenSubject.next(authResponse.accessToken);
|
|
141
|
+
return of({
|
|
142
|
+
accessToken: authResponse.accessToken,
|
|
143
|
+
refreshed: true,
|
|
144
|
+
authResponse,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
this.refreshTokenSubject.next(null);
|
|
148
|
+
return throwError(() => new Error('Token refresh returned no accessToken'));
|
|
149
|
+
}), catchError((err) => {
|
|
150
|
+
this.refreshTokenInProgress = false;
|
|
151
|
+
this.refreshTokenSubject.next(null);
|
|
152
|
+
return throwError(() => err);
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
return this.refreshTokenSubject.pipe(filter((t) => t != null && t !== ''), take(1), switchMap((token) => of({
|
|
156
|
+
accessToken: token,
|
|
157
|
+
refreshed: true,
|
|
158
|
+
})));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
PlatformTokenRefreshService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PlatformTokenRefreshService, deps: [{ token: i1.HttpClient }, { token: PLATFORM_ID }, { token: HIVEGPT_AUTH_STORAGE_KEY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
162
|
+
PlatformTokenRefreshService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PlatformTokenRefreshService, providedIn: 'root' });
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PlatformTokenRefreshService, decorators: [{
|
|
164
|
+
type: Injectable,
|
|
165
|
+
args: [{
|
|
166
|
+
providedIn: 'root',
|
|
167
|
+
}]
|
|
168
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: Object, decorators: [{
|
|
169
|
+
type: Inject,
|
|
170
|
+
args: [PLATFORM_ID]
|
|
171
|
+
}] }, { type: undefined, decorators: [{
|
|
172
|
+
type: Optional
|
|
173
|
+
}, {
|
|
174
|
+
type: Inject,
|
|
175
|
+
args: [HIVEGPT_AUTH_STORAGE_KEY]
|
|
176
|
+
}] }]; } });
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tdG9rZW4tcmVmcmVzaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaGl2ZWdwdC9ldmVudHNncHQtYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3BsYXRmb3JtLXRva2VuLXJlZnJlc2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFckU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN4RCwwQkFBMEIsRUFDMUI7SUFDRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsNEJBQTRCO0NBQ3RDLENBQ0YsQ0FBQztBQW1CRjs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBTXRDLFlBQ1UsSUFBZ0I7SUFDeEIseUZBQXlGO0lBQzVELFVBQWtCO0lBQy9DOztPQUVHO0lBQzJDLGNBQXNCO1FBTjVELFNBQUksR0FBSixJQUFJLENBQVk7UUFFSyxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBUnpDLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFhckUsSUFB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T0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUNsQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbEIsRUFBRSxDQUFDO1lBQ0QsV0FBVyxFQUFFLEtBQUs7WUFDbEIsU0FBUyxFQUFFLElBQUk7U0FDSyxDQUFDLENBQ3hCLENBQ0YsQ0FBQztJQUNKLENBQUM7O3lIQXJLVSwyQkFBMkIsNENBUzVCLFdBQVcsYUFJQyx3QkFBd0I7NkhBYm5DLDJCQUEyQixjQUYxQixNQUFNOzRGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLE1BQU07MkJBQUMsV0FBVzs7MEJBSWxCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIE9wdGlvbmFsLFxuICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBEZWZhdWx0IG1hdGNoZXMgUHJvLUV2ZW50cyBgQXBwQ29uc3RhbnRzLmF1dGhUb2tlbktleWAg4oCUIHNhbWUgbG9jYWxTdG9yYWdlIHNoYXBlXG4gKiBgeyBhY2Nlc3NUb2tlbiwgcmVmcmVzaFRva2VuLCAuLi4gfWAgYXMgSlNPTi5cbiAqIE5hbWVkIGZhY3RvcnkgKG5vIGFycm93IGZuKSBzbyBuZ2MgbWV0YWRhdGEgY29sbGVjdGlvbiBhY2NlcHRzIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGl2ZUdwdEF1dGhTdG9yYWdlS2V5RmFjdG9yeSgpOiBzdHJpbmcge1xuICByZXR1cm4gJ2F1dGhjYy1hYWUxJztcbn1cblxuZXhwb3J0IGNvbnN0IEhJVkVHUFRfQVVUSF9TVE9SQUdFX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAnSElWRUdQVF9BVVRIX1NUT1JBR0VfS0VZJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiBoaXZlR3B0QXV0aFN0b3JhZ2VLZXlGYWN0b3J5LFxuICB9LFxuKTtcblxuLyoqIFN1YnNldCBvZiBwbGF0Zm9ybSB0b2tlbiByZWZyZXNoIHJlc3BvbnNlICh1c2VyL3Rva2VuUmVmcmVzaCkuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpdmVHcHRQbGF0Zm9ybVRva2VuUmVzcG9uc2Uge1xuICBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgcmVmcmVzaFRva2VuPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgZXhwaXJlc0luPzogbnVtYmVyIHwgc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVuc3VyZVRva2VuUmVzdWx0IHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgLyoqIFRydWUgd2hlbiBhIG5ldHdvcmsgcmVmcmVzaCB3YXMgcGVyZm9ybWVkIHN1Y2Nlc3NmdWxseS4gKi9cbiAgcmVmcmVzaGVkOiBib29sZWFuO1xuICAvKiogRnVsbCBBUEkgcGF5bG9hZCB3aGVuIHJlZnJlc2hlZCAoZm9yIGhvc3QgYHNhdmVUb2tlbkFuZExvZ2luVXNlcmApLiAqL1xuICBhdXRoUmVzcG9uc2U/OiBIaXZlR3B0UGxhdGZvcm1Ub2tlblJlc3BvbnNlO1xufVxuXG4vKipcbiAqIFByb2FjdGl2ZSBhY2Nlc3MtdG9rZW4gcmVmcmVzaCAoSldUIGBleHBgKSArIHNpbmdsZS1mbGlnaHQgcXVldWUsIGFsaWduZWQgd2l0aFxuICogUHJvLUV2ZW50cyBgRXZlbnRJbnRlcmNlcHRvcmAgKyBgQXV0aFNlcnZpY2UucmVmcmVzaFRva2VuYC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtVG9rZW5SZWZyZXNoU2VydmljZSB7XG4gIHByaXZhdGUgcmVmcmVzaFRva2VuSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICBwcml2YXRlIHJlZnJlc2hUb2tlblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUtleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAvKiogVXNlIGBPYmplY3RgIChub3QgYG9iamVjdGApIHNvIG5nYyBtZXRhZGF0YSBjb2xsZWN0aW9uIGFjY2VwdHMgdGhlIHBhcmFtZXRlciB0eXBlLiAqL1xuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgIC8qKlxuICAgICAqIEF2b2lkIGBzdHJpbmcgfCBudWxsYCBvbiB0aGUgcGFyYW1ldGVyIOKAlCBgfGAgaXMgdHJlYXRlZCBhcyB1bnN1cHBvcnRlZCBleHByZXNzaW9uIGluIG5nYyBtZXRhZGF0YS5cbiAgICAgKi9cbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEhJVkVHUFRfQVVUSF9TVE9SQUdFX0tFWSkgYXV0aFN0b3JhZ2VLZXk6IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5zdG9yYWdlS2V5ID1cbiAgICAgIGF1dGhTdG9yYWdlS2V5ICE9IG51bGwgJiYgYXV0aFN0b3JhZ2VLZXkgIT09ICcnXG4gICAgICAgID8gYXV0aFN0b3JhZ2VLZXlcbiAgICAgICAgOiAnYXV0aGNjLWFhZTEnO1xuICB9XG5cbiAgLyoqIFJlYWQgcGFyc2VkIGF1dGggYmxvYiBmcm9tIGxvY2FsU3RvcmFnZSAoc2FtZSBhcyBob3N0IGFwcCkuICovXG4gIHJlYWRTdG9yZWRBdXRoKCk6IEhpdmVHcHRQbGF0Zm9ybVRva2VuUmVzcG9uc2UgfCBudWxsIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgICAgIGlmICghcmF3KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmF3KSBhcyBIaXZlR3B0UGxhdGZvcm1Ub2tlblJlc3BvbnNlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcGVyc2lzdEF1dGgocmVzOiBIaXZlR3B0UGxhdGZvcm1Ub2tlblJlc3BvbnNlKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8ICFyZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgSlNPTi5zdHJpbmdpZnkocmVzKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbSGl2ZUdwdF0gRmFpbGVkIHRvIHBlcnNpc3QgYXV0aCB0b2tlbnMnLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSldUIGBleHBgIGNoZWNrIHdpdGhvdXQgQGF1dGgwL2FuZ3VsYXItand0IChrZWVwcyBwYWNrYWdlIGxlYW4pLlxuICAgKiBAcGFyYW0gc2tld1NlY29uZHMgcmVmcmVzaCBzbGlnaHRseSBiZWZvcmUgYWN0dWFsIGV4cGlyeSAoY2xvY2sgc2tldykuXG4gICAqL1xuICBpc0FjY2Vzc1Rva2VuRXhwaXJlZChcbiAgICB0b2tlbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBza2V3U2Vjb25kcyA9IDYwLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIXRva2VuIHx8IHR5cGVvZiB0b2tlbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBleHBNcyA9IHRoaXMuZ2V0Snd0RXhwaXJhdGlvbk1zKHRva2VuKTtcbiAgICBpZiAoZXhwTXMgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXhwTXMgLSBza2V3U2Vjb25kcyAqIDEwMDAgPCBEYXRlLm5vdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRKd3RFeHBpcmF0aW9uTXModG9rZW46IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IHRva2VuLnNwbGl0KCcuJyk7XG4gICAgICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBwYXJ0c1sxXVxuICAgICAgICAucmVwbGFjZSgvLS9nLCAnKycpXG4gICAgICAgIC5yZXBsYWNlKC9fL2csICcvJyk7XG4gICAgICBjb25zdCBwYWRkZWQgPSBwYXlsb2FkICsgJz0nLnJlcGVhdCgoNCAtIChwYXlsb2FkLmxlbmd0aCAlIDQpKSAlIDQpO1xuICAgICAgaWYgKHR5cGVvZiBhdG9iID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKGF0b2IocGFkZGVkKSkgYXMgeyBleHA/OiBudW1iZXIgfTtcbiAgICAgIGlmIChqc29uPy5leHAgPT0gbnVsbCB8fCB0eXBlb2YganNvbi5leHAgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGpzb24uZXhwICogMTAwMDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdmFsaWQgYWNjZXNzIHRva2VuOiByZWZyZXNoZXMgdmlhIGBQT1NUIHt1c2Vyc0FwaUJhc2VVcmx9L3VzZXIvdG9rZW5SZWZyZXNoYFxuICAgKiB3aGVuIEpXVCBpcyBleHBpcmVkIGFuZCBhIHJlZnJlc2ggdG9rZW4gZXhpc3RzIGluIHN0b3JhZ2UuXG4gICAqL1xuICBlbnN1cmVWYWxpZEFjY2Vzc1Rva2VuKFxuICAgIGN1cnJlbnRBY2Nlc3NUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICB1c2Vyc0FwaUJhc2VVcmw6IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxFbnN1cmVUb2tlblJlc3VsdD4ge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgYWNjZXNzVG9rZW46IGN1cnJlbnRBY2Nlc3NUb2tlbiA/PyAnJyxcbiAgICAgICAgcmVmcmVzaGVkOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlZCA9IHRoaXMucmVhZFN0b3JlZEF1dGgoKTtcbiAgICBjb25zdCBhY2Nlc3MgPVxuICAgICAgKGN1cnJlbnRBY2Nlc3NUb2tlbiAmJiBTdHJpbmcoY3VycmVudEFjY2Vzc1Rva2VuKS50cmltKCkpIHx8XG4gICAgICBzdG9yZWQ/LmFjY2Vzc1Rva2VuIHx8XG4gICAgICAnJztcbiAgICBjb25zdCByZWZyZXNoID0gc3RvcmVkPy5yZWZyZXNoVG9rZW47XG5cbiAgICBpZiAoYWNjZXNzICYmICF0aGlzLmlzQWNjZXNzVG9rZW5FeHBpcmVkKGFjY2VzcykpIHtcbiAgICAgIHJldHVybiBvZih7IGFjY2Vzc1Rva2VuOiBhY2Nlc3MsIHJlZnJlc2hlZDogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZWZyZXNoIHx8IHR5cGVvZiByZWZyZXNoICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG9mKHsgYWNjZXNzVG9rZW46IGFjY2VzcywgcmVmcmVzaGVkOiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlID0gKHVzZXJzQXBpQmFzZVVybCB8fCAnJykucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gICAgaWYgKCFiYXNlKSB7XG4gICAgICByZXR1cm4gb2YoeyBhY2Nlc3NUb2tlbjogYWNjZXNzLCByZWZyZXNoZWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IGAke2Jhc2V9L3VzZXIvdG9rZW5SZWZyZXNoYDtcblxuICAgIGlmICghdGhpcy5yZWZyZXNoVG9rZW5JblByb2dyZXNzKSB7XG4gICAgICB0aGlzLnJlZnJlc2hUb2tlbkluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQobnVsbCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3Q8SGl2ZUdwdFBsYXRmb3JtVG9rZW5SZXNwb25zZT4odXJsLCB7IHJlZnJlc2hUb2tlbjogcmVmcmVzaCB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKGF1dGhSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoYXV0aFJlc3BvbnNlPy5hY2Nlc3NUb2tlbikge1xuICAgICAgICAgICAgICB0aGlzLnBlcnNpc3RBdXRoKGF1dGhSZXNwb25zZSk7XG4gICAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KGF1dGhSZXNwb25zZS5hY2Nlc3NUb2tlbik7XG4gICAgICAgICAgICAgIHJldHVybiBvZih7XG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW46IGF1dGhSZXNwb25zZS5hY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICByZWZyZXNoZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgYXV0aFJlc3BvbnNlLFxuICAgICAgICAgICAgICB9IGFzIEVuc3VyZVRva2VuUmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdUb2tlbiByZWZyZXNoIHJldHVybmVkIG5vIGFjY2Vzc1Rva2VuJykpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlblN1YmplY3QubmV4dChudWxsKTtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5waXBlKFxuICAgICAgZmlsdGVyKCh0KTogdCBpcyBzdHJpbmcgPT4gdCAhPSBudWxsICYmIHQgIT09ICcnKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoKHRva2VuKSA9PlxuICAgICAgICBvZih7XG4gICAgICAgICAgYWNjZXNzVG9rZW46IHRva2VuLFxuICAgICAgICAgIHJlZnJlc2hlZDogdHJ1ZSxcbiAgICAgICAgfSBhcyBFbnN1cmVUb2tlblJlc3VsdCksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const formatHoursAndMinutes = (date) => {
|
|
2
|
+
let hours = date.getHours() % 12;
|
|
3
|
+
const minutes = date.getMinutes();
|
|
4
|
+
const amPm = date.getHours() < 12 ? 'AM' : 'PM';
|
|
5
|
+
if (hours === 0)
|
|
6
|
+
hours = 12;
|
|
7
|
+
const formattedHours = hours < 10 ? `0${hours}` : hours;
|
|
8
|
+
const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;
|
|
9
|
+
return `${formattedHours}:${formattedMinutes} ${amPm}`;
|
|
10
|
+
};
|
|
11
|
+
export const formatNow = (timezone) => {
|
|
12
|
+
const now = new Date();
|
|
13
|
+
if (timezone) {
|
|
14
|
+
const options = {
|
|
15
|
+
hour12: true,
|
|
16
|
+
hour: 'numeric',
|
|
17
|
+
minute: 'numeric',
|
|
18
|
+
timeZone: timezone,
|
|
19
|
+
};
|
|
20
|
+
return now.toLocaleString('en-US', options);
|
|
21
|
+
}
|
|
22
|
+
return formatHoursAndMinutes(now);
|
|
23
|
+
};
|
|
24
|
+
export const formatTimeStamps = (timezone, timestamps) => {
|
|
25
|
+
const date = new Date(timestamps + 'Z');
|
|
26
|
+
const options = {
|
|
27
|
+
hour12: true,
|
|
28
|
+
hour: 'numeric',
|
|
29
|
+
minute: 'numeric',
|
|
30
|
+
};
|
|
31
|
+
if (timezone && timezone.trim()) {
|
|
32
|
+
options.timeZone = timezone.trim();
|
|
33
|
+
}
|
|
34
|
+
return date.toLocaleString('en-US', options);
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9oaXZlZ3B0L2V2ZW50c2dwdC1hbmd1bGFyL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLElBQVUsRUFBRSxFQUFFO0lBQzNDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hELElBQUcsS0FBSyxLQUFLLENBQUM7UUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRTNCLE1BQU0sY0FBYyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN4RCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUVoRSxPQUFPLEdBQUcsY0FBYyxJQUFJLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDO0FBQ3pELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQWlCLEVBQUUsRUFBRTtJQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3ZCLElBQUksUUFBUSxFQUFFO1FBQ1osTUFBTSxPQUFPLEdBQVE7WUFDbkIsTUFBTSxFQUFFLElBQUk7WUFDWixJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUM7UUFDRixPQUFPLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQzdDO0lBQ0QsT0FBTyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFFBQTRCLEVBQUUsVUFBZSxFQUFFLEVBQUU7SUFDaEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sT0FBTyxHQUFRO1FBQ25CLE1BQU0sRUFBRSxJQUFJO1FBQ1osSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUUsU0FBUztLQUNsQixDQUFDO0lBQ0YsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQy9CLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0tBQ3BDO0lBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmb3JtYXRIb3Vyc0FuZE1pbnV0ZXMgPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICBsZXQgaG91cnMgPSBkYXRlLmdldEhvdXJzKCkgJSAxMjtcbiAgY29uc3QgbWludXRlcyA9IGRhdGUuZ2V0TWludXRlcygpO1xuICBjb25zdCBhbVBtID0gZGF0ZS5nZXRIb3VycygpIDwgMTIgPyAnQU0nIDogJ1BNJztcbiAgaWYoaG91cnMgPT09IDApIGhvdXJzID0gMTI7XG5cbiAgY29uc3QgZm9ybWF0dGVkSG91cnMgPSBob3VycyA8IDEwID8gYDAke2hvdXJzfWAgOiBob3VycztcbiAgY29uc3QgZm9ybWF0dGVkTWludXRlcyA9IG1pbnV0ZXMgPCAxMCA/IGAwJHttaW51dGVzfWAgOiBtaW51dGVzO1xuXG4gIHJldHVybiBgJHtmb3JtYXR0ZWRIb3Vyc306JHtmb3JtYXR0ZWRNaW51dGVzfSAke2FtUG19YDtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXROb3cgPSAodGltZXpvbmU/OiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgaWYgKHRpbWV6b25lKSB7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgaG91cjEyOiB0cnVlLFxuICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgbWludXRlOiAnbnVtZXJpYycsXG4gICAgICB0aW1lWm9uZTogdGltZXpvbmUsXG4gICAgfTtcbiAgICByZXR1cm4gbm93LnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIG9wdGlvbnMpO1xuICB9XG4gIHJldHVybiBmb3JtYXRIb3Vyc0FuZE1pbnV0ZXMobm93KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRUaW1lU3RhbXBzID0gKHRpbWV6b25lOiBzdHJpbmcgfCB1bmRlZmluZWQsIHRpbWVzdGFtcHM6IGFueSkgPT4ge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZXN0YW1wcyArICdaJyk7XG4gIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICBob3VyMTI6IHRydWUsXG4gICAgaG91cjogJ251bWVyaWMnLFxuICAgIG1pbnV0ZTogJ251bWVyaWMnLFxuICB9O1xuICBpZiAodGltZXpvbmUgJiYgdGltZXpvbmUudHJpbSgpKSB7XG4gICAgb3B0aW9ucy50aW1lWm9uZSA9IHRpbWV6b25lLnRyaW0oKTtcbiAgfVxuICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCBvcHRpb25zKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of hive-gpt
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/components/chat-drawer/chat-drawer.component';
|
|
5
|
+
export * from './lib/components/chatbot/chatbot.component';
|
|
6
|
+
export * from './lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component';
|
|
7
|
+
export * from './lib/components/voice-agent/services/voice-agent.service';
|
|
8
|
+
export * from './lib/components/voice-agent/services/audio-analyzer.service';
|
|
9
|
+
export * from './lib/components/voice-agent/voice-agent.module';
|
|
10
|
+
export * from './lib/components/voice-agent/voice-modal-tokens';
|
|
11
|
+
export * from './lib/components/NotificationSocket';
|
|
12
|
+
export * from './lib/components/video-player/video-player.component';
|
|
13
|
+
export * from './lib/hivegpt.module';
|
|
14
|
+
export * from './lib/services/platform-token-refresh.service';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2hpdmVncHQvZXZlbnRzZ3B0LWFuZ3VsYXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx1RkFBdUYsQ0FBQztBQUN0RyxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGhpdmUtZ3B0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGF0LWRyYXdlci9jaGF0LWRyYXdlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGF0Ym90L2NoYXRib3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdm9pY2UtYWdlbnQvY29tcG9uZW50cy92b2ljZS1hZ2VudC1tb2RhbC92b2ljZS1hZ2VudC1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92b2ljZS1hZ2VudC9zZXJ2aWNlcy92b2ljZS1hZ2VudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdm9pY2UtYWdlbnQvc2VydmljZXMvYXVkaW8tYW5hbHl6ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZvaWNlLWFnZW50L3ZvaWNlLWFnZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZvaWNlLWFnZW50L3ZvaWNlLW1vZGFsLXRva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL05vdGlmaWNhdGlvblNvY2tldCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZpZGVvLXBsYXllci92aWRlby1wbGF5ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hpdmVncHQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3BsYXRmb3JtLXRva2VuLXJlZnJlc2guc2VydmljZSc7XG4iXX0=
|