@acorex-platform/extension-rtc-livekit-client 0.0.38 → 0.0.46

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.
@@ -16,6 +16,17 @@ const RootConfig = {
16
16
  };
17
17
  //#endregion
18
18
 
19
+ const LiveKitExtensionManifest = {
20
+ name: RootConfig.module.name,
21
+ version: '1.0.0',
22
+ title: RootConfig.module.title,
23
+ icon: RootConfig.module.icon,
24
+ i18n: RootConfig.config.i18n,
25
+ type: 'integration',
26
+ domain: 'rtc',
27
+ dependencies: ['RtcExtension'],
28
+ };
29
+
19
30
  //#region ----- LiveKit platform env keys -----
20
31
  /** Root `.env` / profile overlay keys for platform LiveKit credentials. */
21
32
  const AXE_LIVEKIT_ENV_KEYS = {
@@ -68,5 +79,5 @@ var AXELiveKitSettingKeys;
68
79
  * Generated bundle index. Do not edit.
69
80
  */
70
81
 
71
- export { AXELiveKitCommandKeys, AXELiveKitQueryKeys, AXELiveKitSettingKeys, AXE_LIVEKIT_ENV_KEYS, RootConfig };
82
+ export { AXELiveKitCommandKeys, AXELiveKitQueryKeys, AXELiveKitSettingKeys, AXE_LIVEKIT_ENV_KEYS, LiveKitExtensionManifest, RootConfig };
72
83
  //# sourceMappingURL=acorex-platform-extension-rtc-livekit-client-contracts.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-extension-rtc-livekit-client-contracts.mjs","sources":["../../../../libs/extensions/rtc/livekit/contracts/src/root-config.ts","../../../../libs/extensions/rtc/livekit/contracts/src/env.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/query.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/commands.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/connection.types.ts","../../../../libs/extensions/rtc/livekit/contracts/src/settings.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/acorex-platform-extension-rtc-livekit-client-contracts.ts"],"sourcesContent":["//#region ----- LiveKit extension config -----\n\nconst config = {\n i18n: 'extensions-livekit',\n};\n\nconst MODULE_NAME = 'LiveKitExtension';\n\nexport const RootConfig = {\n config,\n module: {\n name: MODULE_NAME,\n title: `@${config.i18n}:integration.display-name`,\n icon: 'fa-light fa-video',\n },\n integration: {\n providerId: 'livekit',\n },\n};\n\n//#endregion\n","//#region ----- LiveKit platform env keys -----\n\n/** Root `.env` / profile overlay keys for platform LiveKit credentials. */\nexport const AXE_LIVEKIT_ENV_KEYS = {\n Url: 'LIVEKIT_URL',\n ApiKey: 'LIVEKIT_API_KEY',\n ApiSecret: 'LIVEKIT_API_SECRET',\n /** Optional HTTP(S) base; converted to ws/wss when LIVEKIT_URL is unset. */\n HttpUrl: 'LIVEKIT_HTTP_URL',\n /** Documented for deploy stacks with self-signed TLS (browser must trust the cert for wss). */\n TlsInsecure: 'LIVEKIT_TLS_INSECURE',\n /** When true, clients get LIVEKIT_DEV_WS_URL (vite proxy to remote LiveKit). */\n DevWsProxy: 'LIVEKIT_DEV_WS_PROXY',\n /** Browser WebSocket URL via demo dev proxy (default ws://127.0.0.1:4800/livekit-ws). */\n DevWsUrl: 'LIVEKIT_DEV_WS_URL',\n /** Optional TURN host override when LIVEKIT_URL is localhost (default 127.0.0.1). */\n TurnHost: 'LIVEKIT_TURN_HOST',\n /** When true, production stack includes coturn + LiveKit turn_servers (set false for local dev). */\n TurnEnabled: 'LIVEKIT_TURN_ENABLED',\n /** @deprecated Use LIVEKIT_TURN_ENABLED. */\n DockerRtc: 'LIVEKIT_DOCKER_RTC',\n /** Browser-reachable IP for docker LiveKit/coturn ICE (compose reads root `.env`). */\n NodeIp: 'LIVEKIT_NODE_IP',\n} as const;\n\nexport type AXELiveKitEnvKey = (typeof AXE_LIVEKIT_ENV_KEYS)[keyof typeof AXE_LIVEKIT_ENV_KEYS];\n\nexport interface AXELiveKitPlatformConfig {\n url: string;\n apiKey: string;\n apiSecret: string;\n}\n\n//#endregion\n","//#region ----- LiveKit query keys -----\n\nexport const AXELiveKitQueryKeys = {\n IsConfigured: 'LiveKitExtension:Config:IsConfigured',\n} as const;\n\n//#endregion\n","//#region ----- LiveKit command keys -----\n\nexport enum AXELiveKitCommandKeys {\n ConnectionConnect = 'LiveKitExtension:Command:Connection.Connect',\n}\n\n//#endregion\n","//#region ----- LiveKit tenant connection config -----\n\n/** Stored on IntegrationManagement connection `config` for server-side token generation. */\nexport interface AXELiveKitConnectionConfig {\n apiKey?: string;\n apiSecret?: string;\n /** Duplicate of `instanceUrl` when stored in config for masked reconfigure flows. */\n serverUrl?: string;\n}\n\n//#endregion\n","//#region ----- LiveKit extension settings -----\n\nexport enum AXELiveKitSettingKeys {\n ConnectionPanel = 'LiveKitExtension:Setting:ConnectionPanel',\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,oBAAoB;CAC3B;AAED,MAAM,WAAW,GAAG,kBAAkB;AAE/B,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,yBAAA,CAA2B;AACjD,QAAA,IAAI,EAAE,mBAAmB;AAC1B,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,UAAU,EAAE,SAAS;AACtB,KAAA;;AAGH;;ACpBA;AAEA;AACO,MAAM,oBAAoB,GAAG;AAClC,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,SAAS,EAAE,oBAAoB;;AAE/B,IAAA,OAAO,EAAE,kBAAkB;;AAE3B,IAAA,WAAW,EAAE,sBAAsB;;AAEnC,IAAA,UAAU,EAAE,sBAAsB;;AAElC,IAAA,QAAQ,EAAE,oBAAoB;;AAE9B,IAAA,QAAQ,EAAE,mBAAmB;;AAE7B,IAAA,WAAW,EAAE,sBAAsB;;AAEnC,IAAA,SAAS,EAAE,oBAAoB;;AAE/B,IAAA,MAAM,EAAE,iBAAiB;;AAW3B;;ACjCA;AAEO,MAAM,mBAAmB,GAAG;AACjC,IAAA,YAAY,EAAE,sCAAsC;;AAGtD;;ACNA;IAEY;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,6CAAiE;AACnE,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;AAIjC;;ACNA;AAUA;;ACVA;IAEY;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,0CAA4D;AAC9D,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;AAIjC;;ACNA;;AAEG;;"}
1
+ {"version":3,"file":"acorex-platform-extension-rtc-livekit-client-contracts.mjs","sources":["../../../../libs/extensions/rtc/livekit/contracts/src/root-config.ts","../../../../libs/extensions/rtc/livekit/contracts/src/manifest.ts","../../../../libs/extensions/rtc/livekit/contracts/src/env.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/query.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/commands.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/connection.types.ts","../../../../libs/extensions/rtc/livekit/contracts/src/settings.keys.ts","../../../../libs/extensions/rtc/livekit/contracts/src/acorex-platform-extension-rtc-livekit-client-contracts.ts"],"sourcesContent":["//#region ----- LiveKit extension config -----\n\nconst config = {\n i18n: 'extensions-livekit',\n};\n\nconst MODULE_NAME = 'LiveKitExtension';\n\nexport const RootConfig = {\n config,\n module: {\n name: MODULE_NAME,\n title: `@${config.i18n}:integration.display-name`,\n icon: 'fa-light fa-video',\n },\n integration: {\n providerId: 'livekit',\n },\n};\n\n//#endregion\n","\nimport { AXPModuleManifest } from '@acorex-platform/framework-shared/core';\nimport { RootConfig } from './root-config';\n\nexport const LiveKitExtensionManifest: 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: ['RtcExtension'],\n};\n","//#region ----- LiveKit platform env keys -----\n\n/** Root `.env` / profile overlay keys for platform LiveKit credentials. */\nexport const AXE_LIVEKIT_ENV_KEYS = {\n Url: 'LIVEKIT_URL',\n ApiKey: 'LIVEKIT_API_KEY',\n ApiSecret: 'LIVEKIT_API_SECRET',\n /** Optional HTTP(S) base; converted to ws/wss when LIVEKIT_URL is unset. */\n HttpUrl: 'LIVEKIT_HTTP_URL',\n /** Documented for deploy stacks with self-signed TLS (browser must trust the cert for wss). */\n TlsInsecure: 'LIVEKIT_TLS_INSECURE',\n /** When true, clients get LIVEKIT_DEV_WS_URL (vite proxy to remote LiveKit). */\n DevWsProxy: 'LIVEKIT_DEV_WS_PROXY',\n /** Browser WebSocket URL via demo dev proxy (default ws://127.0.0.1:4800/livekit-ws). */\n DevWsUrl: 'LIVEKIT_DEV_WS_URL',\n /** Optional TURN host override when LIVEKIT_URL is localhost (default 127.0.0.1). */\n TurnHost: 'LIVEKIT_TURN_HOST',\n /** When true, production stack includes coturn + LiveKit turn_servers (set false for local dev). */\n TurnEnabled: 'LIVEKIT_TURN_ENABLED',\n /** @deprecated Use LIVEKIT_TURN_ENABLED. */\n DockerRtc: 'LIVEKIT_DOCKER_RTC',\n /** Browser-reachable IP for docker LiveKit/coturn ICE (compose reads root `.env`). */\n NodeIp: 'LIVEKIT_NODE_IP',\n} as const;\n\nexport type AXELiveKitEnvKey = (typeof AXE_LIVEKIT_ENV_KEYS)[keyof typeof AXE_LIVEKIT_ENV_KEYS];\n\nexport interface AXELiveKitPlatformConfig {\n url: string;\n apiKey: string;\n apiSecret: string;\n}\n\n//#endregion\n","//#region ----- LiveKit query keys -----\n\nexport const AXELiveKitQueryKeys = {\n IsConfigured: 'LiveKitExtension:Config:IsConfigured',\n} as const;\n\n//#endregion\n","//#region ----- LiveKit command keys -----\n\nexport enum AXELiveKitCommandKeys {\n ConnectionConnect = 'LiveKitExtension:Command:Connection.Connect',\n}\n\n//#endregion\n","//#region ----- LiveKit tenant connection config -----\n\n/** Stored on IntegrationManagement connection `config` for server-side token generation. */\nexport interface AXELiveKitConnectionConfig {\n apiKey?: string;\n apiSecret?: string;\n /** Duplicate of `instanceUrl` when stored in config for masked reconfigure flows. */\n serverUrl?: string;\n}\n\n//#endregion\n","//#region ----- LiveKit extension settings -----\n\nexport enum AXELiveKitSettingKeys {\n ConnectionPanel = 'LiveKitExtension:Setting:ConnectionPanel',\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,oBAAoB;CAC3B;AAED,MAAM,WAAW,GAAG,kBAAkB;AAE/B,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,yBAAA,CAA2B;AACjD,QAAA,IAAI,EAAE,mBAAmB;AAC1B,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,UAAU,EAAE,SAAS;AACtB,KAAA;;AAGH;;AChBO,MAAM,wBAAwB,GAAsB;AACzD,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;IACb,YAAY,EAAE,CAAC,cAAc,CAAC;;;ACZhC;AAEA;AACO,MAAM,oBAAoB,GAAG;AAClC,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,SAAS,EAAE,oBAAoB;;AAE/B,IAAA,OAAO,EAAE,kBAAkB;;AAE3B,IAAA,WAAW,EAAE,sBAAsB;;AAEnC,IAAA,UAAU,EAAE,sBAAsB;;AAElC,IAAA,QAAQ,EAAE,oBAAoB;;AAE9B,IAAA,QAAQ,EAAE,mBAAmB;;AAE7B,IAAA,WAAW,EAAE,sBAAsB;;AAEnC,IAAA,SAAS,EAAE,oBAAoB;;AAE/B,IAAA,MAAM,EAAE,iBAAiB;;AAW3B;;ACjCA;AAEO,MAAM,mBAAmB,GAAG;AACjC,IAAA,YAAY,EAAE,sCAAsC;;AAGtD;;ACNA;IAEY;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,mBAAA,CAAA,GAAA,6CAAiE;AACnE,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;AAIjC;;ACNA;AAUA;;ACVA;IAEY;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,0CAA4D;AAC9D,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;AAIjC;;ACNA;;AAEG;;"}
@@ -1,10 +1,10 @@
1
1
  import { AXMIntegrationManagementModule } from '@acorex-platform/module-integration-management-client';
2
2
  import { AXP_INTEGRATION_RUNTIME_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXP_INTEGRATION_PROVIDER } from '@acorex-platform/framework-client/common';
3
- import { AXP_LOGO_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';
4
3
  import { provideCommandSetups } from '@acorex-platform/framework-client/runtime';
5
4
  import * as i0 from '@angular/core';
6
5
  import { Injectable, NgModule } from '@angular/core';
7
6
  import { RootConfig, AXELiveKitCommandKeys, AXELiveKitSettingKeys } from '@acorex-platform/extension-rtc-livekit-client/contracts';
7
+ import { AXP_LOGO_PROVIDER } from '@acorex-platform/framework-client/core';
8
8
  import { AXPWidgetsList, AXP_INTEGRATION_AUTH_METHOD_TYPE, AXP_INTEGRATION_CONNECTION_SCOPE, AXP_INTEGRATION_CONNECTION_STATUS } from '@acorex-platform/framework-shared/core';
9
9
  import { AXE_RTC_DOMAIN_ID } from '@acorex-platform/extension-rtc-core-client/contracts';
10
10
  import { trim, defaultTo } from 'lodash-es';
@@ -120,17 +120,6 @@ const provideLiveKitIntegrationRuntimeProvider = {
120
120
  multi: true,
121
121
  };
122
122
 
123
- const LiveKitExtensionManifest = {
124
- name: RootConfig.module.name,
125
- version: '1.0.0',
126
- title: RootConfig.module.title,
127
- icon: RootConfig.module.icon,
128
- i18n: RootConfig.config.i18n,
129
- type: 'integration',
130
- domain: 'rtc',
131
- dependencies: ['RtcExtension'],
132
- };
133
-
134
123
  const INTEGRATIONS_SETTINGS_GROUP = 'integrations';
135
124
  const I18N = `@${RootConfig.config.i18n}:settings.tenant-integration`;
136
125
  //#region ----- LiveKit settings provider -----
@@ -175,7 +164,6 @@ class AXELiveKitExtensionModule {
175
164
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXELiveKitExtensionModule, imports: [AXMIntegrationManagementModule] }); }
176
165
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXELiveKitExtensionModule, providers: [
177
166
  AXE_LIVEKIT_LOGO_PROVIDER,
178
- { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: LiveKitExtensionManifest, multi: true },
179
167
  { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXELiveKitSettingsProvider, multi: true },
180
168
  { provide: AXP_INTEGRATION_PROVIDER, useClass: AXELiveKitIntegrationProvider, multi: true },
181
169
  provideLiveKitIntegrationRuntimeProvider,
@@ -193,7 +181,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
193
181
  imports: [AXMIntegrationManagementModule],
194
182
  providers: [
195
183
  AXE_LIVEKIT_LOGO_PROVIDER,
196
- { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: LiveKitExtensionManifest, multi: true },
197
184
  { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXELiveKitSettingsProvider, multi: true },
198
185
  { provide: AXP_INTEGRATION_PROVIDER, useClass: AXELiveKitIntegrationProvider, multi: true },
199
186
  provideLiveKitIntegrationRuntimeProvider,
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-extension-rtc-livekit-client.mjs","sources":["../../../../libs/extensions/rtc/livekit/client/src/lib/brand/livekit-logo-key.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/brand/livekit-logo.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/integration/livekit.integration.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/integration/livekit.integration-runtime.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/manifest.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/settings/livekit-settings.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/livekit-extension.module.ts","../../../../libs/extensions/rtc/livekit/client/src/acorex-platform-extension-rtc-livekit-client.ts"],"sourcesContent":["//#region ---- LiveKit logo registry key ----\n\nexport const axpLiveKitLogoKey = 'livekit' as const;\n\n/** Mark artwork (64×64); consuming apps copy to `assets/images/brand/integrations/`. */\nexport const AXE_LIVEKIT_MARK_SRC = 'assets/images/brand/integrations/livekit-mark.svg';\n\n/** Source mark dimensions (64×64). */\nexport const AXE_LIVEKIT_MARK_ASPECT = 1;\n\n//#endregion\n","import {\n AXP_LOGO_PROVIDER,\n type AXPLogoProvider,\n type AXPLogoRequest,\n type AXPLogoView,\n} from '@acorex-platform/framework-client/core';\nimport {\n AXE_LIVEKIT_MARK_ASPECT,\n AXE_LIVEKIT_MARK_SRC,\n axpLiveKitLogoKey,\n} from './livekit-logo-key';\n\nconst liveKitLogoProvider: AXPLogoProvider = {\n key: axpLiveKitLogoKey,\n resolve: async (request: AXPLogoRequest): Promise<AXPLogoView> => ({\n kind: 'image',\n src: AXE_LIVEKIT_MARK_SRC,\n height: request.size,\n width: Math.round(request.size * AXE_LIVEKIT_MARK_ASPECT),\n }),\n};\n\nexport const AXE_LIVEKIT_LOGO_PROVIDER = {\n provide: AXP_LOGO_PROVIDER,\n useValue: liveKitLogoProvider,\n multi: true,\n} as const;\n","import {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n AXP_INTEGRATION_CONNECTION_SCOPE,\n AXPWidgetsList,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPIntegrationProvider, AXPIntegrationProviderContext } from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { AXE_RTC_DOMAIN_ID } from '@acorex-platform/extension-rtc-core-client/contracts';\nimport { AXELiveKitCommandKeys, RootConfig } from '@acorex-platform/extension-rtc-livekit-client/contracts';\nimport { axpLiveKitLogoKey } from '../brand/livekit-logo-key';\n\n@Injectable()\nexport class AXELiveKitIntegrationProvider implements AXPIntegrationProvider {\n async provide(context: AXPIntegrationProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration`;\n\n context.register({\n id: RootConfig.integration.providerId,\n domainId: AXE_RTC_DOMAIN_ID,\n module: RootConfig.module.name,\n displayName: `${I18N}.display-name`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n logoKey: axpLiveKitLogoKey,\n connectionScopes: [AXP_INTEGRATION_CONNECTION_SCOPE.Tenant],\n allowMultipleConnections: false,\n defaultConnectionKey: 'default',\n connectCommandKey: AXELiveKitCommandKeys.ConnectionConnect,\n authMethods: [\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.ApiToken,\n label: `${I18N}.auth.api-token.label`,\n instructions: `${I18N}.auth.api-token.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'serverUrl',\n options: { placeholder: `${I18N}.auth.api-token.server-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiKey',\n options: { placeholder: `${I18N}.auth.api-token.api-key.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiSecret',\n options: { placeholder: `${I18N}.auth.api-token.api-secret.placeholder` },\n },\n ],\n },\n ],\n });\n }\n}\n","import {\r\n AXP_INTEGRATION_CONNECTION_STATUS,\r\n type AXPIntegrationProviderRuntimeHooks,\r\n type AXPIntegrationRuntimeContext,\r\n type AXPIntegrationValidationResult,\r\n} from '@acorex-platform/framework-shared/core';\r\nimport {\r\n AXP_INTEGRATION_RUNTIME_PROVIDER,\r\n type AXPIntegrationRuntimeProvider,\r\n} from '@acorex-platform/framework-client/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { defaultTo, trim } from 'lodash-es';\r\nimport { RootConfig, type AXELiveKitConnectionConfig } from '@acorex-platform/extension-rtc-livekit-client/contracts';\r\n\r\n@Injectable()\r\nexport class AXELiveKitIntegrationRuntimeProvider implements AXPIntegrationRuntimeProvider {\r\n readonly providerId = RootConfig.integration.providerId;\r\n\r\n async getHooks(): Promise<AXPIntegrationProviderRuntimeHooks> {\r\n return {\r\n validateConnection: (ctx) => this.validateConnection(ctx),\r\n };\r\n }\r\n\r\n private async validateConnection(ctx: AXPIntegrationRuntimeContext): Promise<AXPIntegrationValidationResult> {\r\n const config = (ctx.config ?? {}) as AXELiveKitConnectionConfig;\r\n const serverUrl = trim(defaultTo(ctx.instanceUrl ?? config.serverUrl, ''));\r\n const apiKey = trim(defaultTo(config.apiKey, ''));\r\n const apiSecret = trim(defaultTo(config.apiSecret, ''));\r\n\r\n if (!serverUrl || !apiKey || !apiSecret) {\r\n return {\r\n valid: false,\r\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\r\n errorMessage: '@extensions-livekit:integration.validation.incomplete-credentials',\r\n };\r\n }\r\n\r\n return {\r\n valid: true,\r\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\r\n externalAccountName: serverUrl,\r\n };\r\n }\r\n}\r\n\r\nexport const provideLiveKitIntegrationRuntimeProvider = {\r\n provide: AXP_INTEGRATION_RUNTIME_PROVIDER,\r\n useClass: AXELiveKitIntegrationRuntimeProvider,\r\n multi: true,\r\n};\r\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/extension-rtc-livekit-client/contracts';\n\nexport const LiveKitExtensionManifest: 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: ['RtcExtension'],\n};\n","import {\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 { AXELiveKitSettingKeys, RootConfig } from '@acorex-platform/extension-rtc-livekit-client/contracts';\n\nconst INTEGRATIONS_SETTINGS_GROUP = 'integrations';\nconst I18N = `@${RootConfig.config.i18n}:settings.tenant-integration`;\n\n//#region ----- LiveKit settings provider -----\n\n@Injectable()\nexport class AXELiveKitSettingsProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<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('livekit', `${I18N}.section-title`, `${I18N}.section-description`)\n .addSetting({\n key: AXELiveKitSettingKeys.ConnectionPanel,\n title: `${I18N}.connection-title`,\n scope: 'T',\n overridableAt: [],\n isInherited: false,\n widget: {\n type: AXPWidgetsList.Advanced.IntegrationConnectionsPanel,\n layout: { stacked: true },\n options: {\n providerId: RootConfig.integration.providerId,\n connectionScope: 'tenant',\n },\n },\n description: `${I18N}.connection-description`,\n })\n .endSection();\n }\n}\n\n//#endregion\n","import { AXMIntegrationManagementModule } from '@acorex-platform/module-integration-management-client';\nimport {\n AXP_INTEGRATION_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 { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\nimport { AXELiveKitCommandKeys } from '@acorex-platform/extension-rtc-livekit-client/contracts';\nimport { AXE_LIVEKIT_LOGO_PROVIDER } from './brand/livekit-logo.provider';\nimport { AXELiveKitIntegrationProvider } from './integration/livekit.integration.provider';\nimport { provideLiveKitIntegrationRuntimeProvider } from './integration/livekit.integration-runtime.provider';\nimport { LiveKitExtensionManifest } from './manifest';\nimport { AXELiveKitSettingsProvider } from './settings/livekit-settings.provider';\n\n@NgModule({\n imports: [AXMIntegrationManagementModule],\n providers: [\n AXE_LIVEKIT_LOGO_PROVIDER,\n { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: LiveKitExtensionManifest, multi: true },\n { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXELiveKitSettingsProvider, multi: true },\n { provide: AXP_INTEGRATION_PROVIDER, useClass: AXELiveKitIntegrationProvider, multi: true },\n provideLiveKitIntegrationRuntimeProvider,\n provideCommandSetups([\n {\n key: AXELiveKitCommandKeys.ConnectionConnect,\n command: () => import('./features/connect/connect-livekit.command').then((c) => c.ConnectLiveKitCommand),\n },\n ]),\n ],\n})\nexport class AXELiveKitExtensionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-extension-rtc-livekit-client.mjs","sources":["../../../../libs/extensions/rtc/livekit/client/src/lib/brand/livekit-logo-key.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/brand/livekit-logo.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/integration/livekit.integration.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/integration/livekit.integration-runtime.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/settings/livekit-settings.provider.ts","../../../../libs/extensions/rtc/livekit/client/src/lib/livekit-extension.module.ts","../../../../libs/extensions/rtc/livekit/client/src/acorex-platform-extension-rtc-livekit-client.ts"],"sourcesContent":["//#region ---- LiveKit logo registry key ----\n\nexport const axpLiveKitLogoKey = 'livekit' as const;\n\n/** Mark artwork (64×64); consuming apps copy to `assets/images/brand/integrations/`. */\nexport const AXE_LIVEKIT_MARK_SRC = 'assets/images/brand/integrations/livekit-mark.svg';\n\n/** Source mark dimensions (64×64). */\nexport const AXE_LIVEKIT_MARK_ASPECT = 1;\n\n//#endregion\n","import {\n AXP_LOGO_PROVIDER,\n type AXPLogoProvider,\n type AXPLogoRequest,\n type AXPLogoView,\n} from '@acorex-platform/framework-client/core';\nimport {\n AXE_LIVEKIT_MARK_ASPECT,\n AXE_LIVEKIT_MARK_SRC,\n axpLiveKitLogoKey,\n} from './livekit-logo-key';\n\nconst liveKitLogoProvider: AXPLogoProvider = {\n key: axpLiveKitLogoKey,\n resolve: async (request: AXPLogoRequest): Promise<AXPLogoView> => ({\n kind: 'image',\n src: AXE_LIVEKIT_MARK_SRC,\n height: request.size,\n width: Math.round(request.size * AXE_LIVEKIT_MARK_ASPECT),\n }),\n};\n\nexport const AXE_LIVEKIT_LOGO_PROVIDER = {\n provide: AXP_LOGO_PROVIDER,\n useValue: liveKitLogoProvider,\n multi: true,\n} as const;\n","import {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n AXP_INTEGRATION_CONNECTION_SCOPE,\n AXPWidgetsList,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPIntegrationProvider, AXPIntegrationProviderContext } from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { AXE_RTC_DOMAIN_ID } from '@acorex-platform/extension-rtc-core-client/contracts';\nimport { AXELiveKitCommandKeys, RootConfig } from '@acorex-platform/extension-rtc-livekit-client/contracts';\nimport { axpLiveKitLogoKey } from '../brand/livekit-logo-key';\n\n@Injectable()\nexport class AXELiveKitIntegrationProvider implements AXPIntegrationProvider {\n async provide(context: AXPIntegrationProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration`;\n\n context.register({\n id: RootConfig.integration.providerId,\n domainId: AXE_RTC_DOMAIN_ID,\n module: RootConfig.module.name,\n displayName: `${I18N}.display-name`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n logoKey: axpLiveKitLogoKey,\n connectionScopes: [AXP_INTEGRATION_CONNECTION_SCOPE.Tenant],\n allowMultipleConnections: false,\n defaultConnectionKey: 'default',\n connectCommandKey: AXELiveKitCommandKeys.ConnectionConnect,\n authMethods: [\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.ApiToken,\n label: `${I18N}.auth.api-token.label`,\n instructions: `${I18N}.auth.api-token.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'serverUrl',\n options: { placeholder: `${I18N}.auth.api-token.server-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiKey',\n options: { placeholder: `${I18N}.auth.api-token.api-key.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiSecret',\n options: { placeholder: `${I18N}.auth.api-token.api-secret.placeholder` },\n },\n ],\n },\n ],\n });\n }\n}\n","import {\r\n AXP_INTEGRATION_CONNECTION_STATUS,\r\n type AXPIntegrationProviderRuntimeHooks,\r\n type AXPIntegrationRuntimeContext,\r\n type AXPIntegrationValidationResult,\r\n} from '@acorex-platform/framework-shared/core';\r\nimport {\r\n AXP_INTEGRATION_RUNTIME_PROVIDER,\r\n type AXPIntegrationRuntimeProvider,\r\n} from '@acorex-platform/framework-client/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { defaultTo, trim } from 'lodash-es';\r\nimport { RootConfig, type AXELiveKitConnectionConfig } from '@acorex-platform/extension-rtc-livekit-client/contracts';\r\n\r\n@Injectable()\r\nexport class AXELiveKitIntegrationRuntimeProvider implements AXPIntegrationRuntimeProvider {\r\n readonly providerId = RootConfig.integration.providerId;\r\n\r\n async getHooks(): Promise<AXPIntegrationProviderRuntimeHooks> {\r\n return {\r\n validateConnection: (ctx) => this.validateConnection(ctx),\r\n };\r\n }\r\n\r\n private async validateConnection(ctx: AXPIntegrationRuntimeContext): Promise<AXPIntegrationValidationResult> {\r\n const config = (ctx.config ?? {}) as AXELiveKitConnectionConfig;\r\n const serverUrl = trim(defaultTo(ctx.instanceUrl ?? config.serverUrl, ''));\r\n const apiKey = trim(defaultTo(config.apiKey, ''));\r\n const apiSecret = trim(defaultTo(config.apiSecret, ''));\r\n\r\n if (!serverUrl || !apiKey || !apiSecret) {\r\n return {\r\n valid: false,\r\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\r\n errorMessage: '@extensions-livekit:integration.validation.incomplete-credentials',\r\n };\r\n }\r\n\r\n return {\r\n valid: true,\r\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\r\n externalAccountName: serverUrl,\r\n };\r\n }\r\n}\r\n\r\nexport const provideLiveKitIntegrationRuntimeProvider = {\r\n provide: AXP_INTEGRATION_RUNTIME_PROVIDER,\r\n useClass: AXELiveKitIntegrationRuntimeProvider,\r\n multi: true,\r\n};\r\n","import {\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 { AXELiveKitSettingKeys, RootConfig } from '@acorex-platform/extension-rtc-livekit-client/contracts';\n\nconst INTEGRATIONS_SETTINGS_GROUP = 'integrations';\nconst I18N = `@${RootConfig.config.i18n}:settings.tenant-integration`;\n\n//#region ----- LiveKit settings provider -----\n\n@Injectable()\nexport class AXELiveKitSettingsProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<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('livekit', `${I18N}.section-title`, `${I18N}.section-description`)\n .addSetting({\n key: AXELiveKitSettingKeys.ConnectionPanel,\n title: `${I18N}.connection-title`,\n scope: 'T',\n overridableAt: [],\n isInherited: false,\n widget: {\n type: AXPWidgetsList.Advanced.IntegrationConnectionsPanel,\n layout: { stacked: true },\n options: {\n providerId: RootConfig.integration.providerId,\n connectionScope: 'tenant',\n },\n },\n description: `${I18N}.connection-description`,\n })\n .endSection();\n }\n}\n\n//#endregion\n","import { AXMIntegrationManagementModule } from '@acorex-platform/module-integration-management-client';\nimport {\n AXP_INTEGRATION_PROVIDER,\n AXP_SETTING_DEFINITION_PROVIDER,\n} from '@acorex-platform/framework-client/common';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\nimport { AXELiveKitCommandKeys } from '@acorex-platform/extension-rtc-livekit-client/contracts';\nimport { AXE_LIVEKIT_LOGO_PROVIDER } from './brand/livekit-logo.provider';\nimport { AXELiveKitIntegrationProvider } from './integration/livekit.integration.provider';\nimport { provideLiveKitIntegrationRuntimeProvider } from './integration/livekit.integration-runtime.provider';\nimport { AXELiveKitSettingsProvider } from './settings/livekit-settings.provider';\n\n@NgModule({\n imports: [AXMIntegrationManagementModule],\n providers: [\n AXE_LIVEKIT_LOGO_PROVIDER,\n { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXELiveKitSettingsProvider, multi: true },\n { provide: AXP_INTEGRATION_PROVIDER, useClass: AXELiveKitIntegrationProvider, multi: true },\n provideLiveKitIntegrationRuntimeProvider,\n provideCommandSetups([\n {\n key: AXELiveKitCommandKeys.ConnectionConnect,\n command: () => import('./features/connect/connect-livekit.command').then((c) => c.ConnectLiveKitCommand),\n },\n ]),\n ],\n})\nexport class AXELiveKitExtensionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/extension-rtc-livekit-client",
3
- "version": "0.0.38",
3
+ "version": "0.0.46",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",
@@ -1,3 +1,5 @@
1
+ import { AXPModuleManifest } from '@acorex-platform/framework-shared/core';
2
+
1
3
  declare const RootConfig: {
2
4
  config: {
3
5
  i18n: string;
@@ -12,6 +14,8 @@ declare const RootConfig: {
12
14
  };
13
15
  };
14
16
 
17
+ declare const LiveKitExtensionManifest: AXPModuleManifest;
18
+
15
19
  /** Root `.env` / profile overlay keys for platform LiveKit credentials. */
16
20
  declare const AXE_LIVEKIT_ENV_KEYS: {
17
21
  readonly Url: "LIVEKIT_URL";
@@ -61,5 +65,5 @@ declare enum AXELiveKitSettingKeys {
61
65
  ConnectionPanel = "LiveKitExtension:Setting:ConnectionPanel"
62
66
  }
63
67
 
64
- export { AXELiveKitCommandKeys, AXELiveKitQueryKeys, AXELiveKitSettingKeys, AXE_LIVEKIT_ENV_KEYS, RootConfig };
68
+ export { AXELiveKitCommandKeys, AXELiveKitQueryKeys, AXELiveKitSettingKeys, AXE_LIVEKIT_ENV_KEYS, LiveKitExtensionManifest, RootConfig };
65
69
  export type { AXELiveKitConnectionConfig, AXELiveKitEnvKey, AXELiveKitPlatformConfig };