@acorex-platform/extension-rtc-core-client 0.0.21

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.
@@ -0,0 +1,49 @@
1
+ //#region ----- RTC extension root config -----
2
+ const config = {
3
+ i18n: 'extensions-rtc',
4
+ };
5
+ const MODULE_NAME = 'RtcExtension';
6
+ const RootConfig = {
7
+ config,
8
+ module: {
9
+ name: MODULE_NAME,
10
+ title: `@${config.i18n}:module.title`,
11
+ icon: 'fa-light fa-video',
12
+ },
13
+ };
14
+ //#endregion
15
+
16
+ //#region ----- RTC query keys -----
17
+ const AXERtcQueryKeys = {
18
+ CreateAccessToken: 'RtcExtension:Rtc:CreateAccessToken',
19
+ IsConfigured: 'RtcExtension:Rtc:IsConfigured',
20
+ };
21
+ //#endregion
22
+
23
+ //#region ----- RTC extension settings -----
24
+ var AXERtcSettingKeys;
25
+ (function (AXERtcSettingKeys) {
26
+ AXERtcSettingKeys["ActiveProvider"] = "RtcExtension:Setting:ActiveProvider";
27
+ })(AXERtcSettingKeys || (AXERtcSettingKeys = {}));
28
+ const RTC_PROVIDER_IDS = {
29
+ LiveKit: 'livekit',
30
+ };
31
+ //#endregion
32
+
33
+ //#region ----- RTC integration domain -----
34
+ const AXE_RTC_DOMAIN_ID = 'rtc';
35
+ //#endregion
36
+
37
+ //#region ----- RTC data types -----
38
+ //#endregion
39
+
40
+ //#region ----- Server RTC provider port -----
41
+ const RTC_PROVIDER = Symbol('RTC_PROVIDER');
42
+ //#endregion
43
+
44
+ /**
45
+ * Generated bundle index. Do not edit.
46
+ */
47
+
48
+ export { AXERtcQueryKeys, AXERtcSettingKeys, AXE_RTC_DOMAIN_ID, RTC_PROVIDER, RTC_PROVIDER_IDS, RootConfig };
49
+ //# sourceMappingURL=acorex-platform-extension-rtc-core-client-contracts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-extension-rtc-core-client-contracts.mjs","sources":["../../../../libs/extensions/rtc/core/contracts/src/root-config.ts","../../../../libs/extensions/rtc/core/contracts/src/query.keys.ts","../../../../libs/extensions/rtc/core/contracts/src/settings.keys.ts","../../../../libs/extensions/rtc/core/contracts/src/integration-domain.constants.ts","../../../../libs/extensions/rtc/core/contracts/src/rtc.types.ts","../../../../libs/extensions/rtc/core/contracts/src/rtc-provider.port.ts","../../../../libs/extensions/rtc/core/contracts/src/acorex-platform-extension-rtc-core-client-contracts.ts"],"sourcesContent":["//#region ----- RTC extension root config -----\n\nconst config = {\n i18n: 'extensions-rtc',\n};\n\nconst MODULE_NAME = 'RtcExtension';\n\nexport const RootConfig = {\n config,\n module: {\n name: MODULE_NAME,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-video',\n },\n};\n\n//#endregion\n","//#region ----- RTC query keys -----\n\nexport const AXERtcQueryKeys = {\n CreateAccessToken: 'RtcExtension:Rtc:CreateAccessToken',\n IsConfigured: 'RtcExtension:Rtc:IsConfigured',\n} as const;\n\n//#endregion\n","//#region ----- RTC extension settings -----\n\nexport enum AXERtcSettingKeys {\n ActiveProvider = 'RtcExtension:Setting:ActiveProvider',\n}\n\nexport const RTC_PROVIDER_IDS = {\n LiveKit: 'livekit',\n} as const;\n\nexport type RtcProviderId = (typeof RTC_PROVIDER_IDS)[keyof typeof RTC_PROVIDER_IDS];\n\n//#endregion\n","//#region ----- RTC integration domain -----\n\nexport const AXE_RTC_DOMAIN_ID = 'rtc';\n\n//#endregion\n","//#region ----- RTC data types -----\n\nexport interface AXPRtcAccessTokenRequest {\n roomName: string;\n participantIdentity: string;\n participantName?: string;\n metadata?: string;\n /** `signal` rooms are data-only (no camera/mic publish). */\n purpose?: 'media' | 'signal';\n}\n\nexport interface AXPRtcIceServer {\n urls: string | string[];\n username?: string;\n credential?: string;\n}\n\nexport interface AXPRtcAccessTokenResult {\n token: string;\n serverUrl: string;\n providerId: string;\n /** Extra ICE/TURN servers for local Docker (Firefox ignores loopback). */\n iceServers?: AXPRtcIceServer[];\n /**\n * When true, client should use `iceTransportPolicy: 'relay'` and ICE/TURN from the\n * LiveKit join response (docker Desktop UDP to the SFU is often blocked on Windows).\n */\n forceRelay?: boolean;\n}\n\n//#endregion\n","import type { AXPRtcAccessTokenRequest, AXPRtcAccessTokenResult } from './rtc.types';\n\n//#region ----- Server RTC provider port -----\n\nexport const RTC_PROVIDER = Symbol('RTC_PROVIDER');\n\nexport interface RtcProviderPort {\n readonly id: string;\n createAccessToken(request: AXPRtcAccessTokenRequest): Promise<AXPRtcAccessTokenResult>;\n /** When omitted, the provider is treated as configured if registered. */\n isConfigured?(): Promise<boolean>;\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;AAEA,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,gBAAgB;CACvB;AAED,MAAM,WAAW,GAAG,cAAc;AAE3B,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,aAAA,CAAe;AACrC,QAAA,IAAI,EAAE,mBAAmB;AAC1B,KAAA;;AAGH;;ACjBA;AAEO,MAAM,eAAe,GAAG;AAC7B,IAAA,iBAAiB,EAAE,oCAAoC;AACvD,IAAA,YAAY,EAAE,+BAA+B;;AAG/C;;ACPA;IAEY;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,qCAAsD;AACxD,CAAC,EAFW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;AAItB,MAAM,gBAAgB,GAAG;AAC9B,IAAA,OAAO,EAAE,SAAS;;AAKpB;;ACZA;AAEO,MAAM,iBAAiB,GAAG;AAEjC;;ACJA;AA8BA;;AC5BA;MAEa,YAAY,GAAG,MAAM,CAAC,cAAc;AASjD;;ACbA;;AAEG;;;;"}
@@ -0,0 +1,136 @@
1
+ import { AXP_EXPERIENCE_SETTINGS_GROUP, AXP_EXPERIENCE_SETTINGS_SECTIONS, AXP_SETTING_DEFINITION_PROVIDER, AXP_INTEGRATION_DOMAIN_PROVIDER } from '@acorex-platform/framework-client/common';
2
+ import { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, NgModule } from '@angular/core';
5
+ import { AXP_INTEGRATION_CATEGORY, AXPWidgetsList } from '@acorex-platform/framework-shared/core';
6
+ import { RootConfig, AXE_RTC_DOMAIN_ID, RTC_PROVIDER_IDS, AXERtcSettingKeys } from '@acorex-platform/extension-rtc-core-client/contracts';
7
+
8
+ const I18N$1 = `@${RootConfig.config.i18n}:integration.domain`;
9
+ class AXERtcIntegrationDomainProvider {
10
+ async provide(context) {
11
+ context.register({
12
+ id: AXE_RTC_DOMAIN_ID,
13
+ module: RootConfig.module.name,
14
+ displayName: `${I18N$1}.title`,
15
+ description: `${I18N$1}.description`,
16
+ icon: RootConfig.module.icon,
17
+ category: AXP_INTEGRATION_CATEGORY.Realtime,
18
+ capabilities: [],
19
+ settingsGroup: 'integrations',
20
+ sortOrder: 20,
21
+ });
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcIntegrationDomainProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcIntegrationDomainProvider }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcIntegrationDomainProvider, decorators: [{
27
+ type: Injectable
28
+ }] });
29
+
30
+ const RtcExtensionManifest = {
31
+ name: RootConfig.module.name,
32
+ version: '1.0.0',
33
+ title: RootConfig.module.title,
34
+ icon: RootConfig.module.icon,
35
+ i18n: RootConfig.config.i18n,
36
+ type: 'integration',
37
+ domain: 'rtc',
38
+ dependencies: [],
39
+ };
40
+
41
+ const I18N = `@${RootConfig.config.i18n}:settings`;
42
+ const INTEGRATIONS_SETTINGS_GROUP = 'integrations';
43
+ class AXERtcSettingsProvider {
44
+ async provide(context) {
45
+ this.registerIntegrationsDomainPanel(context);
46
+ this.registerActiveProviderSetting(context);
47
+ }
48
+ registerIntegrationsDomainPanel(context) {
49
+ if (!context.hasGroup(INTEGRATIONS_SETTINGS_GROUP)) {
50
+ return;
51
+ }
52
+ const integrations = context.group(INTEGRATIONS_SETTINGS_GROUP);
53
+ if (!integrations) {
54
+ return;
55
+ }
56
+ integrations
57
+ .addSection('rtc', `${I18N}.integrations.section-title`, `${I18N}.integrations.section-description`)
58
+ .addSetting({
59
+ key: 'RtcExtension:Setting:IntegrationsPanel',
60
+ title: `${I18N}.integrations.connections-panel.title`,
61
+ scope: 'T',
62
+ overridableAt: [],
63
+ isInherited: false,
64
+ widget: {
65
+ type: AXPWidgetsList.Advanced.IntegrationConnectionsPanel,
66
+ layout: { stacked: true },
67
+ options: {
68
+ domainId: AXE_RTC_DOMAIN_ID,
69
+ connectionScope: 'tenant',
70
+ },
71
+ },
72
+ description: `${I18N}.integrations.connections-panel.description`,
73
+ })
74
+ .endSection();
75
+ }
76
+ registerActiveProviderSetting(context) {
77
+ if (!context.hasGroup(AXP_EXPERIENCE_SETTINGS_GROUP)) {
78
+ return;
79
+ }
80
+ const experience = context.group(AXP_EXPERIENCE_SETTINGS_GROUP);
81
+ if (!experience) {
82
+ return;
83
+ }
84
+ const widgets = experience.section(AXP_EXPERIENCE_SETTINGS_SECTIONS.Widgets);
85
+ if (!widgets) {
86
+ return;
87
+ }
88
+ widgets.addSetting({
89
+ key: AXERtcSettingKeys.ActiveProvider,
90
+ title: `${I18N}.provider.active-provider.title`,
91
+ scope: 'T',
92
+ overridableAt: [],
93
+ isInherited: true,
94
+ defaultValue: RTC_PROVIDER_IDS.LiveKit,
95
+ widget: {
96
+ type: AXPWidgetsList.Editors.SelectBox,
97
+ options: {
98
+ dataSource: [{ id: RTC_PROVIDER_IDS.LiveKit, title: 'LiveKit' }],
99
+ },
100
+ },
101
+ description: `${I18N}.provider.active-provider.description`,
102
+ });
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcSettingsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
105
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcSettingsProvider }); }
106
+ }
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcSettingsProvider, decorators: [{
108
+ type: Injectable
109
+ }] });
110
+
111
+ class AXERtcExtensionModule {
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcExtensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
113
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXERtcExtensionModule }); }
114
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcExtensionModule, providers: [
115
+ { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: RtcExtensionManifest, multi: true },
116
+ { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXERtcSettingsProvider, multi: true },
117
+ { provide: AXP_INTEGRATION_DOMAIN_PROVIDER, useClass: AXERtcIntegrationDomainProvider, multi: true },
118
+ ] }); }
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXERtcExtensionModule, decorators: [{
121
+ type: NgModule,
122
+ args: [{
123
+ providers: [
124
+ { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: RtcExtensionManifest, multi: true },
125
+ { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXERtcSettingsProvider, multi: true },
126
+ { provide: AXP_INTEGRATION_DOMAIN_PROVIDER, useClass: AXERtcIntegrationDomainProvider, multi: true },
127
+ ],
128
+ }]
129
+ }] });
130
+
131
+ /**
132
+ * Generated bundle index. Do not edit.
133
+ */
134
+
135
+ export { AXERtcExtensionModule };
136
+ //# sourceMappingURL=acorex-platform-extension-rtc-core-client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-extension-rtc-core-client.mjs","sources":["../../../../libs/extensions/rtc/core/client/src/lib/integration/rtc.integration-domain.provider.ts","../../../../libs/extensions/rtc/core/client/src/lib/manifest.ts","../../../../libs/extensions/rtc/core/client/src/lib/settings.provider.ts","../../../../libs/extensions/rtc/core/client/src/lib/rtc-extension.module.ts","../../../../libs/extensions/rtc/core/client/src/acorex-platform-extension-rtc-core-client.ts"],"sourcesContent":["import { AXP_INTEGRATION_CATEGORY } from '@acorex-platform/framework-shared/core';\nimport {\n type AXPIntegrationDomainProvider,\n AXPIntegrationDomainProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport {\n AXE_RTC_DOMAIN_ID,\n RootConfig,\n} from '@acorex-platform/extension-rtc-core-client/contracts';\n\nconst I18N = `@${RootConfig.config.i18n}:integration.domain`;\n\n@Injectable()\nexport class AXERtcIntegrationDomainProvider implements AXPIntegrationDomainProvider {\n async provide(context: AXPIntegrationDomainProviderContext): Promise<void> {\n context.register({\n id: AXE_RTC_DOMAIN_ID,\n module: RootConfig.module.name,\n displayName: `${I18N}.title`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n category: AXP_INTEGRATION_CATEGORY.Realtime,\n capabilities: [],\n settingsGroup: 'integrations',\n sortOrder: 20,\n });\n }\n}\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/extension-rtc-core-client/contracts';\n\nexport const RtcExtensionManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'integration',\n domain: 'rtc',\n dependencies: [],\n};\n","import {\n AXP_EXPERIENCE_SETTINGS_GROUP,\n AXP_EXPERIENCE_SETTINGS_SECTIONS,\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport { Injectable } from '@angular/core';\nimport {\n AXE_RTC_DOMAIN_ID,\n AXERtcSettingKeys,\n RootConfig,\n RTC_PROVIDER_IDS,\n} from '@acorex-platform/extension-rtc-core-client/contracts';\n\nconst I18N = `@${RootConfig.config.i18n}:settings`;\nconst INTEGRATIONS_SETTINGS_GROUP = 'integrations';\n\n@Injectable()\nexport class AXERtcSettingsProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n this.registerIntegrationsDomainPanel(context);\n this.registerActiveProviderSetting(context);\n }\n\n private registerIntegrationsDomainPanel(context: AXPSettingDefinitionProviderContext): void {\n if (!context.hasGroup(INTEGRATIONS_SETTINGS_GROUP)) {\n return;\n }\n\n const integrations = context.group(INTEGRATIONS_SETTINGS_GROUP);\n if (!integrations) {\n return;\n }\n\n integrations\n .addSection(\n 'rtc',\n `${I18N}.integrations.section-title`,\n `${I18N}.integrations.section-description`,\n )\n .addSetting({\n key: 'RtcExtension:Setting:IntegrationsPanel',\n title: `${I18N}.integrations.connections-panel.title`,\n scope: 'T',\n overridableAt: [],\n isInherited: false,\n widget: {\n type: AXPWidgetsList.Advanced.IntegrationConnectionsPanel,\n layout: { stacked: true },\n options: {\n domainId: AXE_RTC_DOMAIN_ID,\n connectionScope: 'tenant',\n },\n },\n description: `${I18N}.integrations.connections-panel.description`,\n })\n .endSection();\n }\n\n private registerActiveProviderSetting(context: AXPSettingDefinitionProviderContext): void {\n if (!context.hasGroup(AXP_EXPERIENCE_SETTINGS_GROUP)) {\n return;\n }\n\n const experience = context.group(AXP_EXPERIENCE_SETTINGS_GROUP);\n if (!experience) {\n return;\n }\n\n const widgets = experience.section(AXP_EXPERIENCE_SETTINGS_SECTIONS.Widgets);\n if (!widgets) {\n return;\n }\n\n widgets.addSetting({\n key: AXERtcSettingKeys.ActiveProvider,\n title: `${I18N}.provider.active-provider.title`,\n scope: 'T',\n overridableAt: [],\n isInherited: true,\n defaultValue: RTC_PROVIDER_IDS.LiveKit,\n widget: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n dataSource: [{ id: RTC_PROVIDER_IDS.LiveKit, title: 'LiveKit' }],\n },\n },\n description: `${I18N}.provider.active-provider.description`,\n });\n }\n}\n","import {\n AXP_INTEGRATION_DOMAIN_PROVIDER,\n AXP_SETTING_DEFINITION_PROVIDER,\n} from '@acorex-platform/framework-client/common';\nimport { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { NgModule } from '@angular/core';\nimport { AXERtcIntegrationDomainProvider } from './integration/rtc.integration-domain.provider';\nimport { RtcExtensionManifest } from './manifest';\nimport { AXERtcSettingsProvider } from './settings.provider';\n\n@NgModule({\n providers: [\n { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: RtcExtensionManifest, multi: true },\n { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXERtcSettingsProvider, multi: true },\n { provide: AXP_INTEGRATION_DOMAIN_PROVIDER, useClass: AXERtcIntegrationDomainProvider, multi: true },\n ],\n})\nexport class AXERtcExtensionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["I18N"],"mappings":";;;;;;;AAWA,MAAMA,MAAI,GAAG,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,mBAAA,CAAqB;MAG/C,+BAA+B,CAAA;IAC1C,MAAM,OAAO,CAAC,OAA4C,EAAA;QACxD,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,EAAE,EAAE,iBAAiB;AACrB,YAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;YAC9B,WAAW,EAAE,CAAA,EAAGA,MAAI,CAAA,MAAA,CAAQ;YAC5B,WAAW,EAAE,CAAA,EAAGA,MAAI,CAAA,YAAA,CAAc;AAClC,YAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;YAC5B,QAAQ,EAAE,wBAAwB,CAAC,QAAQ;AAC3C,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE,cAAc;AAC7B,YAAA,SAAS,EAAE,EAAE;AACd,SAAA,CAAC;IACJ;8GAbW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA/B,+BAA+B,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C;;;ACVM,MAAM,oBAAoB,GAAsB;AACrD,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK;AAC9B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,YAAY,EAAE,EAAE;CACjB;;ACGD,MAAM,IAAI,GAAG,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,SAAA,CAAW;AAClD,MAAM,2BAA2B,GAAG,cAAc;MAGrC,sBAAsB,CAAA;IACjC,MAAM,OAAO,CAAC,OAA4C,EAAA;AACxD,QAAA,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC;AAC7C,QAAA,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC;IAC7C;AAEQ,IAAA,+BAA+B,CAAC,OAA4C,EAAA;QAClF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE;YAClD;QACF;QAEA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE;YACjB;QACF;QAEA;aACG,UAAU,CACT,KAAK,EACL,CAAA,EAAG,IAAI,6BAA6B,EACpC,CAAA,EAAG,IAAI,CAAA,iCAAA,CAAmC;AAE3C,aAAA,UAAU,CAAC;AACV,YAAA,GAAG,EAAE,wCAAwC;YAC7C,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,qCAAA,CAAuC;AACrD,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,2BAA2B;AACzD,gBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,gBAAA,OAAO,EAAE;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,eAAe,EAAE,QAAQ;AAC1B,iBAAA;AACF,aAAA;YACD,WAAW,EAAE,CAAA,EAAG,IAAI,CAAA,2CAAA,CAA6C;SAClE;AACA,aAAA,UAAU,EAAE;IACjB;AAEQ,IAAA,6BAA6B,CAAC,OAA4C,EAAA;QAChF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE;YACpD;QACF;QAEA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE;YACf;QACF;QAEA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,gCAAgC,CAAC,OAAO,CAAC;QAC5E,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;QAEA,OAAO,CAAC,UAAU,CAAC;YACjB,GAAG,EAAE,iBAAiB,CAAC,cAAc;YACrC,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,+BAAA,CAAiC;AAC/C,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,gBAAgB,CAAC,OAAO;AACtC,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS;AACtC,gBAAA,OAAO,EAAE;AACP,oBAAA,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACjE,iBAAA;AACF,aAAA;YACD,WAAW,EAAE,CAAA,EAAG,IAAI,CAAA,qCAAA,CAAuC;AAC5D,SAAA,CAAC;IACJ;8GAvEW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;MCDY,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAArB,qBAAqB,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,SAAA,EANrB;YACT,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE;YACtF,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE;YAC3F,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,+BAA+B,EAAE,KAAK,EAAE,IAAI,EAAE;AACrG,SAAA,EAAA,CAAA,CAAA;;2FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;wBACT,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE;wBACtF,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC3F,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,+BAA+B,EAAE,KAAK,EAAE,IAAI,EAAE;AACrG,qBAAA;AACF,iBAAA;;;AChBD;;AAEG;;;;"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@acorex-platform/extension-rtc-core-client",
3
+ "version": "0.0.21",
4
+ "sideEffects": false,
5
+ "peerDependencies": {
6
+ "@angular/common": "^21.0.0",
7
+ "@angular/core": "^21.0.0"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "module": "fesm2022/acorex-platform-extension-rtc-core-client.mjs",
13
+ "typings": "types/acorex-platform-extension-rtc-core-client.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./types/acorex-platform-extension-rtc-core-client.d.ts",
20
+ "default": "./fesm2022/acorex-platform-extension-rtc-core-client.mjs"
21
+ },
22
+ "./contracts": {
23
+ "types": "./types/acorex-platform-extension-rtc-core-client-contracts.d.ts",
24
+ "default": "./fesm2022/acorex-platform-extension-rtc-core-client-contracts.mjs"
25
+ }
26
+ },
27
+ "type": "module"
28
+ }
@@ -0,0 +1,62 @@
1
+ declare const RootConfig: {
2
+ config: {
3
+ i18n: string;
4
+ };
5
+ module: {
6
+ name: string;
7
+ title: string;
8
+ icon: string;
9
+ };
10
+ };
11
+
12
+ declare const AXERtcQueryKeys: {
13
+ readonly CreateAccessToken: "RtcExtension:Rtc:CreateAccessToken";
14
+ readonly IsConfigured: "RtcExtension:Rtc:IsConfigured";
15
+ };
16
+
17
+ declare enum AXERtcSettingKeys {
18
+ ActiveProvider = "RtcExtension:Setting:ActiveProvider"
19
+ }
20
+ declare const RTC_PROVIDER_IDS: {
21
+ readonly LiveKit: "livekit";
22
+ };
23
+ type RtcProviderId = (typeof RTC_PROVIDER_IDS)[keyof typeof RTC_PROVIDER_IDS];
24
+
25
+ declare const AXE_RTC_DOMAIN_ID = "rtc";
26
+
27
+ interface AXPRtcAccessTokenRequest {
28
+ roomName: string;
29
+ participantIdentity: string;
30
+ participantName?: string;
31
+ metadata?: string;
32
+ /** `signal` rooms are data-only (no camera/mic publish). */
33
+ purpose?: 'media' | 'signal';
34
+ }
35
+ interface AXPRtcIceServer {
36
+ urls: string | string[];
37
+ username?: string;
38
+ credential?: string;
39
+ }
40
+ interface AXPRtcAccessTokenResult {
41
+ token: string;
42
+ serverUrl: string;
43
+ providerId: string;
44
+ /** Extra ICE/TURN servers for local Docker (Firefox ignores loopback). */
45
+ iceServers?: AXPRtcIceServer[];
46
+ /**
47
+ * When true, client should use `iceTransportPolicy: 'relay'` and ICE/TURN from the
48
+ * LiveKit join response (docker Desktop UDP to the SFU is often blocked on Windows).
49
+ */
50
+ forceRelay?: boolean;
51
+ }
52
+
53
+ declare const RTC_PROVIDER: unique symbol;
54
+ interface RtcProviderPort {
55
+ readonly id: string;
56
+ createAccessToken(request: AXPRtcAccessTokenRequest): Promise<AXPRtcAccessTokenResult>;
57
+ /** When omitted, the provider is treated as configured if registered. */
58
+ isConfigured?(): Promise<boolean>;
59
+ }
60
+
61
+ export { AXERtcQueryKeys, AXERtcSettingKeys, AXE_RTC_DOMAIN_ID, RTC_PROVIDER, RTC_PROVIDER_IDS, RootConfig };
62
+ export type { AXPRtcAccessTokenRequest, AXPRtcAccessTokenResult, AXPRtcIceServer, RtcProviderId, RtcProviderPort };
@@ -0,0 +1,9 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ declare class AXERtcExtensionModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXERtcExtensionModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXERtcExtensionModule, never, never, never>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXERtcExtensionModule>;
7
+ }
8
+
9
+ export { AXERtcExtensionModule };