@acorex/connectivity 21.0.0-next.40 → 21.0.0-next.41
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/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-oEjW7bgG.mjs → acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs} +2722 -1211
- package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-DdnuQSdS.mjs → acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs} +95 -16
- package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-CR5vAwIZ.mjs → acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs} +5 -11
- package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-CyN_FfDe.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-CyN_FfDe.mjs.map → acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs.map} +1 -1
- package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-Dt5ADfHI.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-Dt5ADfHI.mjs.map → acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs.map} +1 -1
- package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-f7UTofcg.mjs → acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-f7UTofcg.mjs.map → acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs.map} +1 -1
- package/fesm2022/acorex-connectivity-mock.mjs +1 -1
- package/package.json +2 -2
- package/types/acorex-connectivity-mock.d.ts +49 -65
- package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-oEjW7bgG.mjs.map +0 -1
- package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-DdnuQSdS.mjs.map +0 -1
- package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-CR5vAwIZ.mjs.map +0 -1
|
@@ -1,19 +1,51 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
|
+
import { RootConfig } from '@acorex/modules/human-capital-management';
|
|
4
|
+
import { RootConfig as RootConfig$2 } from '@acorex/modules/organization-management';
|
|
5
|
+
import { RootConfig as RootConfig$1 } from '@acorex/modules/person-core';
|
|
3
6
|
import { AXPSessionService } from '@acorex/platform/auth';
|
|
4
7
|
import { AXPEntityStorageService } from '@acorex/platform/layout/entity';
|
|
5
|
-
import {
|
|
6
|
-
import { RootConfig } from '@acorex/modules/organization-management';
|
|
7
|
-
import { b as axcSyncSingleEmployeeDenormalizedOrgFields } from './acorex-connectivity-mock-acorex-connectivity-mock-oEjW7bgG.mjs';
|
|
8
|
+
import { c as axcSyncSingleEmployeeDenormalizedOrgFields } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
|
|
8
9
|
|
|
9
|
-
const LEAVE_REQUEST_ENTITY =
|
|
10
|
-
const EMPLOYEE_ENTITY =
|
|
10
|
+
const LEAVE_REQUEST_ENTITY = RootConfig.entities.leaveRequest.source;
|
|
11
|
+
const EMPLOYEE_ENTITY = RootConfig.entities.employee.source;
|
|
12
|
+
const PERSON_ENTITY = `${RootConfig$1.module.name}.${RootConfig$1.entities.person.name}`;
|
|
13
|
+
//#region ---- Helpers ----
|
|
14
|
+
/**
|
|
15
|
+
* Resolves a persisted FK or lookup snapshot to a scalar id (avoids `String([object Object])` from expanded rows).
|
|
16
|
+
*/
|
|
17
|
+
function axcScalarEntityId(value) {
|
|
18
|
+
if (value == null || value === '') {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
22
|
+
const s = String(value).trim();
|
|
23
|
+
return s.length > 0 ? s : null;
|
|
24
|
+
}
|
|
25
|
+
if (typeof value === 'object' && value !== null && 'id' in value) {
|
|
26
|
+
const id = value.id;
|
|
27
|
+
if (id == null || id === '') {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const s = String(id).trim();
|
|
31
|
+
return s.length > 0 ? s : null;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
/** Non-empty trimmed string or undefined (for optional workflow command inputs). */
|
|
36
|
+
function axcOptionalTrimmedString(raw) {
|
|
37
|
+
if (raw == null || raw === '') {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const s = typeof raw === 'string' ? raw.trim() : String(raw).trim();
|
|
41
|
+
return s.length > 0 ? s : undefined;
|
|
42
|
+
}
|
|
11
43
|
/**
|
|
12
44
|
* Assign To Manager Activity (Backend - Mock)
|
|
13
45
|
*
|
|
14
|
-
* Resolves the manager from
|
|
46
|
+
* Resolves the manager from `employeeId`, or from a leave request, or from the current user's employee when neither is set,
|
|
15
47
|
* recomputing `managerId` from position assignments / org chart in storage when the denormalized field is stale.
|
|
16
|
-
* Outputs manager's **user id** (
|
|
48
|
+
* Outputs the manager's **login user id** (from Employee or Person) for cartable `candidateUserIds` / human-task assignment.
|
|
17
49
|
*
|
|
18
50
|
* Execution Mode: backend
|
|
19
51
|
* Activity Type: workflow-activity:assign-to-manager
|
|
@@ -23,18 +55,41 @@ class AssignToManagerActivity {
|
|
|
23
55
|
this.entityStorage = inject(AXPEntityStorageService);
|
|
24
56
|
this.sessionService = inject(AXPSessionService);
|
|
25
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolves login user id for an employee row (storage may omit `userId` while Person still links the account).
|
|
60
|
+
*/
|
|
61
|
+
async resolveLoginUserIdForEmployeeRow(managerEmp) {
|
|
62
|
+
const direct = managerEmp?.userId != null && String(managerEmp.userId).trim() !== '' ? String(managerEmp.userId).trim() : null;
|
|
63
|
+
if (direct) {
|
|
64
|
+
return direct;
|
|
65
|
+
}
|
|
66
|
+
const personId = managerEmp?.personId != null && String(managerEmp.personId).trim() !== ''
|
|
67
|
+
? String(managerEmp.personId).trim()
|
|
68
|
+
: null;
|
|
69
|
+
if (!personId) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const person = (await this.entityStorage.getOne(PERSON_ENTITY, personId));
|
|
74
|
+
const uid = person?.userId != null && String(person.userId).trim() !== '' ? String(person.userId).trim() : null;
|
|
75
|
+
return uid;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
26
81
|
/**
|
|
27
82
|
* Persists org-derived manager + primary position for one employee, then returns the manager's user id when set.
|
|
28
83
|
*/
|
|
29
84
|
async resolveManagerUserId(employeeId) {
|
|
30
|
-
await axcSyncSingleEmployeeDenormalizedOrgFields(this.entityStorage, RootConfig, RootConfig
|
|
85
|
+
await axcSyncSingleEmployeeDenormalizedOrgFields(this.entityStorage, RootConfig$2, RootConfig, String(employeeId), true);
|
|
31
86
|
const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, String(employeeId)));
|
|
32
|
-
const managerEmployeeId = emp?.managerId;
|
|
87
|
+
const managerEmployeeId = emp?.managerId != null ? String(emp.managerId).trim() : '';
|
|
33
88
|
if (!managerEmployeeId) {
|
|
34
89
|
return null;
|
|
35
90
|
}
|
|
36
|
-
const managerEmp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY,
|
|
37
|
-
return managerEmp
|
|
91
|
+
const managerEmp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, managerEmployeeId));
|
|
92
|
+
return this.resolveLoginUserIdForEmployeeRow(managerEmp);
|
|
38
93
|
}
|
|
39
94
|
async findEmployeeIdByUserId(userId) {
|
|
40
95
|
try {
|
|
@@ -55,14 +110,34 @@ class AssignToManagerActivity {
|
|
|
55
110
|
}
|
|
56
111
|
}
|
|
57
112
|
async execute(input) {
|
|
58
|
-
const leaveRequestId = input.leaveRequestId;
|
|
113
|
+
const leaveRequestId = axcOptionalTrimmedString(input.leaveRequestId);
|
|
59
114
|
let managerId = null;
|
|
60
115
|
let employee = { displayName: '' };
|
|
61
116
|
let subjectEmployeeId = null;
|
|
62
|
-
|
|
117
|
+
const employeeIdFromInput = axcScalarEntityId(input.employeeId);
|
|
118
|
+
if (employeeIdFromInput) {
|
|
119
|
+
subjectEmployeeId = employeeIdFromInput;
|
|
120
|
+
try {
|
|
121
|
+
const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId));
|
|
122
|
+
if (emp) {
|
|
123
|
+
employee = {
|
|
124
|
+
displayName: emp.person?.displayName ?? emp.displayName ?? '',
|
|
125
|
+
...emp,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
managerId = await this.resolveManagerUserId(subjectEmployeeId);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// keep defaults
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else if (leaveRequestId) {
|
|
63
135
|
try {
|
|
64
136
|
const leaveRequest = (await this.entityStorage.getOne(LEAVE_REQUEST_ENTITY, leaveRequestId));
|
|
65
|
-
subjectEmployeeId =
|
|
137
|
+
subjectEmployeeId =
|
|
138
|
+
axcScalarEntityId(leaveRequest?.employeeId) ??
|
|
139
|
+
axcScalarEntityId(leaveRequest.employee) ??
|
|
140
|
+
null;
|
|
66
141
|
if (subjectEmployeeId) {
|
|
67
142
|
const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId));
|
|
68
143
|
if (emp) {
|
|
@@ -107,12 +182,16 @@ class AssignToManagerActivity {
|
|
|
107
182
|
managerId = await this.resolveManagerUserId(initiatorEmployeeId);
|
|
108
183
|
}
|
|
109
184
|
}
|
|
185
|
+
const fallbackUserId = axcScalarEntityId(input.fallbackUserId);
|
|
186
|
+
if (managerId == null && fallbackUserId) {
|
|
187
|
+
managerId = fallbackUserId;
|
|
188
|
+
}
|
|
110
189
|
return {
|
|
111
190
|
success: true,
|
|
112
191
|
data: {
|
|
113
192
|
managerId,
|
|
114
193
|
employee,
|
|
115
|
-
leaveRequestId,
|
|
194
|
+
leaveRequestId: leaveRequestId ?? undefined,
|
|
116
195
|
},
|
|
117
196
|
metadata: {
|
|
118
197
|
outcome: 'done',
|
|
@@ -130,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
130
209
|
}] });
|
|
131
210
|
|
|
132
211
|
export { AssignToManagerActivity };
|
|
133
|
-
//# sourceMappingURL=acorex-connectivity-mock-assign-to-manager.activity-
|
|
212
|
+
//# sourceMappingURL=acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs","sources":["../../../../libs/connectivity/mock/src/lib/workflow-management/activities/assign-to-manager.activity.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { RootConfig as HcmRootConfig } from '@acorex/modules/human-capital-management';\nimport { RootConfig as OrgRootConfig } from '@acorex/modules/organization-management';\nimport { RootConfig as PersonRootConfig } from '@acorex/modules/person-core';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { axcSyncSingleEmployeeDenormalizedOrgFields } from '../../organization-management/org-chart/employee-manager-resolution';\n\nconst LEAVE_REQUEST_ENTITY = HcmRootConfig.entities.leaveRequest.source;\nconst EMPLOYEE_ENTITY = HcmRootConfig.entities.employee.source;\nconst PERSON_ENTITY = `${PersonRootConfig.module.name}.${PersonRootConfig.entities.person.name}`;\n\n//#region ---- Helpers ----\n\n/**\n * Resolves a persisted FK or lookup snapshot to a scalar id (avoids `String([object Object])` from expanded rows).\n */\nfunction axcScalarEntityId(value: unknown): string | null {\n if (value == null || value === '') {\n return null;\n }\n if (typeof value === 'string' || typeof value === 'number') {\n const s = String(value).trim();\n return s.length > 0 ? s : null;\n }\n if (typeof value === 'object' && value !== null && 'id' in value) {\n const id = (value as { id: unknown }).id;\n if (id == null || id === '') {\n return null;\n }\n const s = String(id).trim();\n return s.length > 0 ? s : null;\n }\n return null;\n}\n\n/** Non-empty trimmed string or undefined (for optional workflow command inputs). */\nfunction axcOptionalTrimmedString(raw: unknown): string | undefined {\n if (raw == null || raw === '') {\n return undefined;\n }\n const s = typeof raw === 'string' ? raw.trim() : String(raw).trim();\n return s.length > 0 ? s : undefined;\n}\n\n//#endregion\n\nexport interface AssignToManagerInput {\n /** When set, resolves the subject employee from HumanCapitalManagement.LeaveRequest. */\n leaveRequestId?: string;\n /** When set (scalar or `{ id }`), resolves manager for this employee directly (takes precedence over `leaveRequestId`). */\n employeeId?: unknown;\n /** When org manager cannot be resolved, this platform user id is returned as `managerId` (e.g. initiator for review fallback). */\n fallbackUserId?: unknown;\n}\n\nexport interface AssignToManagerOutput {\n managerId: string | null;\n employee: { displayName: string; [key: string]: unknown };\n leaveRequestId?: string;\n}\n\n/**\n * Assign To Manager Activity (Backend - Mock)\n *\n * Resolves the manager from `employeeId`, or from a leave request, or from the current user's employee when neither is set,\n * recomputing `managerId` from position assignments / org chart in storage when the denormalized field is stale.\n * Outputs the manager's **login user id** (from Employee or Person) for cartable `candidateUserIds` / human-task assignment.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:assign-to-manager\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AssignToManagerActivity implements AXPCommand<AssignToManagerInput, AssignToManagerOutput> {\n private readonly entityStorage = inject(AXPEntityStorageService);\n private readonly sessionService = inject(AXPSessionService);\n\n /**\n * Resolves login user id for an employee row (storage may omit `userId` while Person still links the account).\n */\n private async resolveLoginUserIdForEmployeeRow(\n managerEmp: { userId?: string | null; personId?: string | null } | null,\n ): Promise<string | null> {\n const direct =\n managerEmp?.userId != null && String(managerEmp.userId).trim() !== '' ? String(managerEmp.userId).trim() : null;\n if (direct) {\n return direct;\n }\n const personId =\n managerEmp?.personId != null && String(managerEmp.personId).trim() !== ''\n ? String(managerEmp.personId).trim()\n : null;\n if (!personId) {\n return null;\n }\n try {\n const person = (await this.entityStorage.getOne(PERSON_ENTITY, personId)) as { userId?: string | null } | null;\n const uid =\n person?.userId != null && String(person.userId).trim() !== '' ? String(person.userId).trim() : null;\n return uid;\n } catch {\n return null;\n }\n }\n\n /**\n * Persists org-derived manager + primary position for one employee, then returns the manager's user id when set.\n */\n private async resolveManagerUserId(employeeId: string): Promise<string | null> {\n await axcSyncSingleEmployeeDenormalizedOrgFields(\n this.entityStorage,\n OrgRootConfig,\n HcmRootConfig,\n String(employeeId),\n true,\n );\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, String(employeeId))) as {\n managerId?: string | null;\n } | null;\n const managerEmployeeId = emp?.managerId != null ? String(emp.managerId).trim() : '';\n if (!managerEmployeeId) {\n return null;\n }\n const managerEmp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, managerEmployeeId)) as {\n userId?: string | null;\n personId?: string | null;\n } | null;\n return this.resolveLoginUserIdForEmployeeRow(managerEmp);\n }\n\n private async findEmployeeIdByUserId(userId: string): Promise<string | null> {\n try {\n const result = await this.entityStorage.query(EMPLOYEE_ENTITY, {\n skip: 0,\n take: 1,\n filter: {\n field: 'userId',\n operator: { type: 'equal' },\n value: userId,\n },\n });\n const row = result.items?.[0] as { id?: string } | undefined;\n return row?.id != null ? String(row.id) : null;\n } catch {\n return null;\n }\n }\n\n async execute(input: AssignToManagerInput): Promise<AXPExecuteCommandResult<AssignToManagerOutput>> {\n const leaveRequestId = axcOptionalTrimmedString(input.leaveRequestId);\n\n let managerId: string | null = null;\n let employee: AssignToManagerOutput['employee'] = { displayName: '' };\n\n let subjectEmployeeId: string | null = null;\n\n const employeeIdFromInput = axcScalarEntityId(input.employeeId);\n\n if (employeeIdFromInput) {\n subjectEmployeeId = employeeIdFromInput;\n try {\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId)) as {\n managerId?: string;\n userId?: string;\n displayName?: string;\n person?: { displayName?: string };\n } | null;\n if (emp) {\n employee = {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n managerId = await this.resolveManagerUserId(subjectEmployeeId);\n } catch {\n // keep defaults\n }\n } else if (leaveRequestId) {\n try {\n const leaveRequest = (await this.entityStorage.getOne(LEAVE_REQUEST_ENTITY, leaveRequestId)) as {\n employeeId?: string;\n employee?: unknown;\n employeeName?: string;\n } | null;\n\n subjectEmployeeId =\n axcScalarEntityId(leaveRequest?.employeeId) ??\n axcScalarEntityId((leaveRequest as { employee?: unknown }).employee) ??\n null;\n\n if (subjectEmployeeId) {\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId)) as {\n managerId?: string;\n userId?: string;\n displayName?: string;\n person?: { displayName?: string };\n } | null;\n if (emp) {\n employee = {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n managerId = await this.resolveManagerUserId(subjectEmployeeId);\n }\n\n if (!employee.displayName && leaveRequest) {\n employee = {\n displayName:\n (leaveRequest as { employeeName?: string }).employeeName ??\n (leaveRequest as { employee?: { person?: { displayName?: string }; displayName?: string } }).employee\n ?.person?.displayName ??\n (leaveRequest as { employee?: { displayName?: string } }).employee?.displayName ??\n '',\n ...((leaveRequest as { employee?: object }).employee ?? {}),\n };\n }\n } catch {\n // keep defaults\n }\n }\n\n const sessionUserId = this.sessionService.user?.id;\n if (managerId == null && sessionUserId && !subjectEmployeeId) {\n const initiatorEmployeeId = await this.findEmployeeIdByUserId(String(sessionUserId));\n if (initiatorEmployeeId) {\n try {\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, initiatorEmployeeId)) as {\n displayName?: string;\n person?: { displayName?: string };\n } | null;\n if (emp) {\n employee = {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n } catch {\n // ignore\n }\n managerId = await this.resolveManagerUserId(initiatorEmployeeId);\n }\n }\n\n const fallbackUserId = axcScalarEntityId(input.fallbackUserId);\n if (managerId == null && fallbackUserId) {\n managerId = fallbackUserId;\n }\n\n return {\n success: true,\n data: {\n managerId,\n employee,\n leaveRequestId: leaveRequestId ?? undefined,\n },\n metadata: {\n outcome: 'done',\n },\n };\n }\n}\n"],"names":["HcmRootConfig","PersonRootConfig","OrgRootConfig"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { inject, Injectable } from '@angular/core';
|
|
4
4
|
import { AXPFileStorageService } from '@acorex/platform/common';
|
|
5
5
|
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
6
|
-
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel } from './acorex-connectivity-mock-acorex-connectivity-mock-
|
|
6
|
+
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, a as AXMAiModelStableIds } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
|
|
7
7
|
|
|
8
8
|
//#region ---- Imports ----
|
|
9
9
|
function parseGenerateImageInput(args) {
|
|
@@ -60,15 +60,9 @@ class AiManagementChatGenerateImageCommand {
|
|
|
60
60
|
message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
const modelEntityId = parsed.model?.trim() ||
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
success: false,
|
|
67
|
-
message: {
|
|
68
|
-
text: 'No image model: pass "model" (catalog id) or set options.model on the image-generation delegated specialist row for this assist.',
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
}
|
|
63
|
+
const modelEntityId = parsed.model?.trim() ||
|
|
64
|
+
resolveDelegatedAssistOptionModel(assist, ctx.agentId) ||
|
|
65
|
+
AXMAiModelStableIds.openaiGptImage1;
|
|
72
66
|
let composedPrompt = parsed.prompt;
|
|
73
67
|
if (parsed.style?.trim()) {
|
|
74
68
|
composedPrompt = `${composedPrompt}\nStyle: ${parsed.style.trim()}`;
|
|
@@ -111,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
111
105
|
}] });
|
|
112
106
|
|
|
113
107
|
export { AiManagementChatGenerateImageCommand };
|
|
114
|
-
//# sourceMappingURL=acorex-connectivity-mock-chat-generate-image.command-
|
|
108
|
+
//# sourceMappingURL=acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-generate-image.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AI_CHAT_GENERATED_IMAGE_REF_TYPE,\n AI_GENERATED_IMAGE_MAX_REMOTE_URL_IN_TOOL,\n AXPAiChatToolRunContextService,\n blobOrFileFromImageResult,\n persistAiGeneratedImage,\n RootConfig,\n} from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport { resolveDelegatedAssistOptionModel } from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\nimport { AXMAiModelStableIds } from '../model/model.mock';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatGenerateImage ----\n\nexport interface AiManagementChatGenerateImageInput {\n /**\n * Catalog `AiModel` row id for an image-purpose model. When omitted, uses\n * `delegatedAgents[].options.model` for the active delegated specialist (`agentId` in run context),\n * then falls back to the mock catalog default (OpenAI gpt-image-1).\n */\n model?: string;\n prompt?: string;\n size?: string;\n style?: string;\n}\n\nfunction parseGenerateImageInput(args: unknown):\n | { ok: true; model?: string; prompt: string; size?: string; style?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const prompt = typeof obj['prompt'] === 'string' ? obj['prompt'].trim() : '';\n if (!prompt) {\n return { ok: false, error: 'Invalid arguments: \"prompt\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const size = typeof obj['size'] === 'string' ? obj['size'].trim() : undefined;\n const style = typeof obj['style'] === 'string' ? obj['style'].trim() : undefined;\n return {\n ok: true,\n prompt,\n ...(model ? { model } : {}),\n ...(size ? { size } : {}),\n ...(style ? { style } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatGenerateImageCommand\n implements AXPCommand<AiManagementChatGenerateImageInput, { fileId?: string; prompt: string; imageUrl?: string }>\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatGenerateImageInput,\n ): Promise<AXPExecuteCommandResult<{ fileId?: string; prompt: string; imageUrl?: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Image generation requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseGenerateImageInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() ||\n resolveDelegatedAssistOptionModel(assist, ctx.agentId) ||\n AXMAiModelStableIds.openaiGptImage1;\n\n let composedPrompt = parsed.prompt;\n if (parsed.style?.trim()) {\n composedPrompt = `${composedPrompt}\\nStyle: ${parsed.style.trim()}`;\n }\n\n const { imageUrl } = await this.aiChatRouter.generateImage({\n modelEntityId,\n prompt: composedPrompt,\n size: parsed.size?.trim() || undefined,\n });\n\n try {\n const file = await blobOrFileFromImageResult(imageUrl);\n const { fileId } = await persistAiGeneratedImage(this.fileStorage, file, {\n refId: assist.id,\n refType: AI_CHAT_GENERATED_IMAGE_REF_TYPE,\n });\n return { success: true, data: { fileId, prompt: parsed.prompt } };\n } catch (persistErr) {\n const u = imageUrl.trim();\n if (u.startsWith('https://') && u.length <= AI_GENERATED_IMAGE_MAX_REMOTE_URL_IN_TOOL) {\n return {\n success: true,\n data: { prompt: parsed.prompt, imageUrl: u },\n };\n }\n const pmsg = persistErr instanceof Error ? persistErr.message : String(persistErr);\n throw new Error(`Could not store generated image for chat replay. ${pmsg}`);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { inject, Injectable } from '@angular/core';
|
|
4
4
|
import { AXPFileStorageService } from '@acorex/platform/common';
|
|
5
5
|
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
6
|
-
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel,
|
|
6
|
+
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
|
|
7
7
|
|
|
8
8
|
//#region ---- Imports ----
|
|
9
9
|
function extForMime(mime) {
|
|
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
127
127
|
}] });
|
|
128
128
|
|
|
129
129
|
export { AiManagementChatSynthesizeSpeechCommand };
|
|
130
|
-
//# sourceMappingURL=acorex-connectivity-mock-chat-synthesize-speech.command-
|
|
130
|
+
//# sourceMappingURL=acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-chat-synthesize-speech.command-CyN_FfDe.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-synthesize-speech.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n AXPAiChatToolRunContextService,\n persistAiGeneratedSpeech,\n RootConfig,\n} from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport {\n resolveDelegatedAssistOptionModel,\n resolveDelegatedAssistOptionString,\n} from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatSynthesizeSpeech ----\n\nexport interface AiManagementChatSynthesizeSpeechInput {\n /** Catalog `AiModel` row id (purpose `tts`). When omitted, uses `delegatedAgents[].options.model` for the active delegated specialist. */\n model?: string;\n text?: string;\n voice?: string;\n responseFormat?: string;\n}\n\nfunction extForMime(mime: string): string {\n const m = mime.toLowerCase();\n if (m.includes('mpeg') || m.includes('mp3')) {\n return 'mp3';\n }\n if (m.includes('wav')) {\n return 'wav';\n }\n if (m.includes('opus')) {\n return 'opus';\n }\n if (m.includes('ogg')) {\n return 'ogg';\n }\n if (m.includes('aac')) {\n return 'aac';\n }\n if (m.includes('flac')) {\n return 'flac';\n }\n return 'bin';\n}\n\nfunction parseSynthesizeInput(args: unknown):\n | { ok: true; model?: string; text: string; voice?: string; responseFormat?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const text = typeof obj['text'] === 'string' ? obj['text'].trim() : '';\n if (!text) {\n return { ok: false, error: 'Invalid arguments: \"text\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const voice = typeof obj['voice'] === 'string' ? obj['voice'].trim() : undefined;\n const responseFormat =\n typeof obj['responseFormat'] === 'string' ? obj['responseFormat'].trim() : undefined;\n return {\n ok: true,\n text,\n ...(model ? { model } : {}),\n ...(voice ? { voice } : {}),\n ...(responseFormat ? { responseFormat } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatSynthesizeSpeechCommand\n implements\n AXPCommand<\n AiManagementChatSynthesizeSpeechInput,\n { fileId?: string; text: string; mimeType?: string }\n >\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatSynthesizeSpeechInput,\n ): Promise<AXPExecuteCommandResult<{ fileId?: string; text: string; mimeType?: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Text-to-speech requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseSynthesizeInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';\n if (!modelEntityId) {\n return {\n success: false,\n message: {\n text:\n 'No TTS model: pass \"model\" (catalog id) or set options.model on the text-to-speech delegated specialist row for this assist.',\n },\n };\n }\n\n const voiceFromAssist =\n resolveDelegatedAssistOptionString(assist, ctx.agentId, 'voice') || undefined;\n const voice = parsed.voice?.trim() || voiceFromAssist || 'alloy';\n\n const { audioBytes, mimeType } = await this.aiChatRouter.synthesizeSpeech({\n modelEntityId,\n text: parsed.text,\n voice,\n ...(parsed.responseFormat?.trim() ? { responseFormat: parsed.responseFormat.trim() } : {}),\n });\n\n const mt = mimeType?.trim() || 'application/octet-stream';\n const ext = extForMime(mt);\n const file = new File([audioBytes], `ai-tts.${ext}`, { type: mt });\n\n try {\n const { fileId } = await persistAiGeneratedSpeech(this.fileStorage, file, {\n refId: assist.id,\n refType: AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n });\n return { success: true, data: { fileId, text: parsed.text, mimeType: mt } };\n } catch (persistErr) {\n const pmsg = persistErr instanceof Error ? persistErr.message : String(persistErr);\n throw new Error(`Could not store synthesized speech for chat replay. ${pmsg}`);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-synthesize-speech.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n AXPAiChatToolRunContextService,\n persistAiGeneratedSpeech,\n RootConfig,\n} from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport {\n resolveDelegatedAssistOptionModel,\n resolveDelegatedAssistOptionString,\n} from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatSynthesizeSpeech ----\n\nexport interface AiManagementChatSynthesizeSpeechInput {\n /** Catalog `AiModel` row id (purpose `tts`). When omitted, uses `delegatedAgents[].options.model` for the active delegated specialist. */\n model?: string;\n text?: string;\n voice?: string;\n responseFormat?: string;\n}\n\nfunction extForMime(mime: string): string {\n const m = mime.toLowerCase();\n if (m.includes('mpeg') || m.includes('mp3')) {\n return 'mp3';\n }\n if (m.includes('wav')) {\n return 'wav';\n }\n if (m.includes('opus')) {\n return 'opus';\n }\n if (m.includes('ogg')) {\n return 'ogg';\n }\n if (m.includes('aac')) {\n return 'aac';\n }\n if (m.includes('flac')) {\n return 'flac';\n }\n return 'bin';\n}\n\nfunction parseSynthesizeInput(args: unknown):\n | { ok: true; model?: string; text: string; voice?: string; responseFormat?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const text = typeof obj['text'] === 'string' ? obj['text'].trim() : '';\n if (!text) {\n return { ok: false, error: 'Invalid arguments: \"text\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const voice = typeof obj['voice'] === 'string' ? obj['voice'].trim() : undefined;\n const responseFormat =\n typeof obj['responseFormat'] === 'string' ? obj['responseFormat'].trim() : undefined;\n return {\n ok: true,\n text,\n ...(model ? { model } : {}),\n ...(voice ? { voice } : {}),\n ...(responseFormat ? { responseFormat } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatSynthesizeSpeechCommand\n implements\n AXPCommand<\n AiManagementChatSynthesizeSpeechInput,\n { fileId?: string; text: string; mimeType?: string }\n >\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatSynthesizeSpeechInput,\n ): Promise<AXPExecuteCommandResult<{ fileId?: string; text: string; mimeType?: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Text-to-speech requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseSynthesizeInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';\n if (!modelEntityId) {\n return {\n success: false,\n message: {\n text:\n 'No TTS model: pass \"model\" (catalog id) or set options.model on the text-to-speech delegated specialist row for this assist.',\n },\n };\n }\n\n const voiceFromAssist =\n resolveDelegatedAssistOptionString(assist, ctx.agentId, 'voice') || undefined;\n const voice = parsed.voice?.trim() || voiceFromAssist || 'alloy';\n\n const { audioBytes, mimeType } = await this.aiChatRouter.synthesizeSpeech({\n modelEntityId,\n text: parsed.text,\n voice,\n ...(parsed.responseFormat?.trim() ? { responseFormat: parsed.responseFormat.trim() } : {}),\n });\n\n const mt = mimeType?.trim() || 'application/octet-stream';\n const ext = extForMime(mt);\n const file = new File([audioBytes], `ai-tts.${ext}`, { type: mt });\n\n try {\n const { fileId } = await persistAiGeneratedSpeech(this.fileStorage, file, {\n refId: assist.id,\n refType: AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n });\n return { success: true, data: { fileId, text: parsed.text, mimeType: mt } };\n } catch (persistErr) {\n const pmsg = persistErr instanceof Error ? persistErr.message : String(persistErr);\n throw new Error(`Could not store synthesized speech for chat replay. ${pmsg}`);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { inject, Injectable } from '@angular/core';
|
|
4
4
|
import { AXPFileStorageService } from '@acorex/platform/common';
|
|
5
5
|
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
6
|
-
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel,
|
|
6
|
+
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
|
|
7
7
|
|
|
8
8
|
//#region ---- Imports ----
|
|
9
9
|
function parseTranscribeInput(args) {
|
|
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
107
107
|
}] });
|
|
108
108
|
|
|
109
109
|
export { AiManagementChatTranscribeSpeechCommand };
|
|
110
|
-
//# sourceMappingURL=acorex-connectivity-mock-chat-transcribe-speech.command-
|
|
110
|
+
//# sourceMappingURL=acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-chat-transcribe-speech.command-
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-transcribe-speech.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPAiChatToolRunContextService, RootConfig } from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport {\n resolveDelegatedAssistOptionModel,\n resolveDelegatedAssistOptionString,\n} from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatTranscribeSpeech ----\n\nexport interface AiManagementChatTranscribeSpeechInput {\n /** Catalog `AiModel` row id for a speech-purpose model. When omitted, uses `delegatedAgents[].options.model` for the active delegated specialist (`agentId` in run context). */\n model?: string;\n fileId?: string;\n language?: string;\n}\n\nfunction parseTranscribeInput(args: unknown):\n | { ok: true; model?: string; fileId: string; language?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const fileId = typeof obj['fileId'] === 'string' ? obj['fileId'].trim() : '';\n if (!fileId) {\n return { ok: false, error: 'Invalid arguments: \"fileId\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const language = typeof obj['language'] === 'string' ? obj['language'].trim() : undefined;\n return {\n ok: true,\n fileId,\n ...(model ? { model } : {}),\n ...(language ? { language } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatTranscribeSpeechCommand\n implements AXPCommand<AiManagementChatTranscribeSpeechInput, { text: string }>\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatTranscribeSpeechInput,\n ): Promise<AXPExecuteCommandResult<{ text: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Speech transcription requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseTranscribeInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';\n if (!modelEntityId) {\n return {\n success: false,\n message: {\n text:\n 'No speech model: pass \"model\" (catalog id) or set options.model on the speech-to-text delegated specialist row for this assist.',\n },\n };\n }\n\n let mimeType = 'application/octet-stream';\n let audioBytes: ArrayBuffer;\n try {\n const info = await this.fileStorage.getInfo(parsed.fileId);\n const file = info.binary;\n mimeType = info.mimeType?.trim() || file.type?.trim() || mimeType;\n audioBytes = await file.arrayBuffer();\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return {\n success: false,\n message: { text: `Could not read audio file (fileId: ${parsed.fileId}). ${msg}` },\n };\n }\n\n const language =\n parsed.language?.trim() ||\n resolveDelegatedAssistOptionString(assist, ctx.agentId, 'language') ||\n undefined;\n\n const { text } = await this.aiChatRouter.transcribeSpeech({\n modelEntityId,\n audioBytes,\n mimeType,\n fileName: parsed.fileId,\n ...(language ? { language } : {}),\n });\n\n return { success: true, data: { text } };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import { m as mockUsers } from './acorex-connectivity-mock-acorex-connectivity-mock-
|
|
3
|
+
import { m as mockUsers } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
|
|
4
4
|
|
|
5
5
|
//#endregion
|
|
6
6
|
/**
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
28
28
|
}] });
|
|
29
29
|
|
|
30
30
|
export { UserRolesForListColumnQuery };
|
|
31
|
-
//# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-
|
|
31
|
+
//# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-user-roles-for-list-column.query-
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs","sources":["../../../../libs/connectivity/mock/src/lib/security-management/user/user-roles-for-list-column.query.ts"],"sourcesContent":["import { AXPQuery } from '@acorex/platform/runtime';\nimport { Injectable } from '@angular/core';\nimport { mockUsers } from './user.mock';\n\n//#region ---- Types ----\n\nexport interface UserRolesForListColumnQueryInput {\n userId?: string;\n}\n\nexport interface UserRolesForListColumnQueryResult {\n items: { id: string; title: unknown }[];\n}\n\n//#endregion\n\n/**\n * Resolves role rows for the user list lookup column when using {@link countOnly} column resolve.\n */\n@Injectable({ providedIn: 'root' })\nexport class UserRolesForListColumnQuery implements AXPQuery<UserRolesForListColumnQueryInput, UserRolesForListColumnQueryResult> {\n async fetch(input: UserRolesForListColumnQueryInput): Promise<UserRolesForListColumnQueryResult> {\n debugger\n const userId = input?.userId?.trim();\n if (!userId) {\n return { items: [] };\n }\n const user = mockUsers.find((u) => u.id === userId);\n if (!user?.roles?.length) {\n return { items: [] };\n }\n return { items: user.roles };\n }\n}\n"],"names":[],"mappings":";;;;AAcA;AAEA;;AAEG;MAEU,2BAA2B,CAAA;IACtC,MAAM,KAAK,CAAC,KAAuC,EAAA;AACjD,QAAA;QACA,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QACpC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACtB;AACA,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACxB,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACtB;AACA,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;IAC9B;8GAZW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cADd,MAAM,EAAA,CAAA,CAAA;;2FACnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { c as ACTIVITY_CATEGORIES, d as ACTIVITY_CATEGORY_ID_BY_KEY, e as ACTIVITY_DEFINITIONS, f as AI_ASSIST_MOCK, g as AI_MODEL_MOCK, h as APPLICATIONS, i as AXCActivityCategorySeeder, j as AXCActivityDefinitionSeeder, k as AXCAiAssistSeeder, l as AXCAiManagementMockModule, n as AXCAiModelSeeder, o as AXCAppTermDataSeeder, p as AXCAppVersionDataSeeder, q as AXCApplicationDataSeeder, s as AXCApplicationManagementMockModule, t as AXCAssessmentManagementMockModule, u as AXCAssetManagementMockModule, v as AXCAuthMockModule, w as AXCCalendarDataSeeder, x as AXCCalendarEventDataSeeder, y as AXCCalendarManagementMockModule, z as AXCCommandRegistryDataSeeder, B as AXCCommonMockModule, C as AXCContactCoreMockModule, D as AXCContentManagementMockModule, E as AXCConversationDataSeeder, F as AXCConversationMockConversationApi, G as AXCConversationMockMessageApi, H as AXCConversationMockModule, I as AXCConversationMockRealtimeApi, J as AXCConversationMockUserApi, K as AXCCustomerManagementMockModule, L as AXCDashboardManagementMockModule, M as AXCDataManagementMockModule, N as AXCDexieEntityStorageService, O as AXCDocumentManagementMockModule, P as AXCEditionDataSeeder, Q as AXCEntityDefinitionSeederService, R as AXCEntityDefinitionsModule, S as AXCEntityStorageInsertCommand, T as AXCEntityStorageModule, U as AXCEntityStorageQueryQuery, V as AXCFileStorageServiceDexie, W as AXCFileStorageServiceFirestore, X as AXCFinancialCoreMockModule, Y as AXCFirestoreEntityStorageService, Z as AXCFormTemplateManagementMockModule, _ as AXCGoogleStrategyMock, $ as AXCHealthCoreMockModule, a0 as AXCHelpDeskMockModule, a1 as AXCHumanCapitalManagementMockModule, a2 as AXCIdentifierManagementMockModule, a3 as AXCImageCaptchaChallengeProviderMock, a4 as AXCLearningManagementMockModule, a5 as AXCLocaleManagementMockModule, a6 as AXCLocationManagementMockModule, a7 as AXCLockService, a8 as AXCMeasurementCoreMockModule, a9 as AXCMeetingManagementMockModule, aa as AXCMetaDataDefinitionDataSeeder, ab as AXCMetadataCategorySeeder, ac as AXCMiddlewaresModule, ad as AXCMockCaptchaChallengeComponent, ae as AXCMockEntityLogListener, af as AXCMockModule, ag as AXCMockShowMetaDataFormPopupCommand, ah as AXCNotificationManagementMockModule, ai as AXCOrderManagementMockModule, aj as AXCOrganizationManagementMockModule, ak as AXCPersonCoreMockModule, al as AXCPlatformManagementMockModule, am as AXCProcurementManagementMockModule, an as AXCProductCatalogMockModule, ao as AXCProjectManagementMockModule, ap as AXCQueryRegistryDataSeeder, aq as AXCReportManagementMockModule, ar as AXCSecurityManagementMockModule, as as AXCStoredEntityDefinitionLoader, at as AXCSubscriptionManagementMockModule, au as AXCSupplierManagementMockModule, av as AXCTaskManagementMockModule, aw as AXCTenantManagementMockModule, ax as AXCTenantSeeder, ay as AXCTokensDataSeeder, az as AXCUserPassStrategyMock, aA as AXCVersionDB, aB as AXCVersioningService, aC as AXCWidgetCatalogDataSeeder, aD as AXCWorkflowCategorySeeder, aE as AXCWorkflowDefinitionDataSeeder, aF as AXCWorkflowEngine, aG as AXCWorkflowExecutionDB, aH as AXCWorkflowExecutionStoreDexie, aI as AXCWorkflowExecutionStoreFirestore, aJ as AXCWorkflowInstanceCartableDemoSeeder, aK as AXCWorkflowManagementMockModule, aL as AXC_ENTITY_STORAGE_BACKEND_TYPE, aM as AXC_FIRESTORE_CONFIG, aN as AXC_FIRESTORE_DB, aO as AXC_WORKFLOW_EXECUTION_STORE, aP as AXMAiDemisDefaultAssistId, aQ as AXMAiModelStableIds, aR as AXMAiPlatformDefaultAssistId, aS as AXMAutomationDataSeeder, aT as AXMBusinessUnitDataSeeder, aU as AXMCalendarEventTypeSeeder, aV as AXMDashboardChartDataSourceDefinition, aW as AXMEmployeeDataSeeder, aX as AXMEmploymentTypeDataSeeder, aY as AXMFormDataSourcesProvider, aZ as AXMJobDefinitionDataSeeder, a_ as AXMJobLevelDataSeeder, a$ as AXMLeaveRequestDataSeeder, b0 as AXMMeetingDataSeeder, b1 as AXMMeetingFilesDataSeeder, b2 as AXMMeetingParticipantDataSeeder, b3 as AXMMeetingRoleTypeDataSeeder, b4 as AXMMeetingSessionDataSeeder, b5 as AXMMeetingTypeDataSeeder, b6 as AXMMeetingTypeFileTemplateDataSeeder, b7 as AXMPositionAssignmentDataSeeder, b8 as AXMPositionDataSeeder, b9 as AXMQuestionBankItemCategoryDataSeeder, ba as AXMQuestionBankItemDataSeeder, bb as AXMQuestionnaireCalculationDataSeeder, bc as AXMQuestionnaireCategoryDataSeeder, bd as AXMQuestionnaireDataSeeder, be as AXMResponsibilityDataSeeder, bf as AXMTagDataSeeder, bg as AXMTeamBusinessUnitDataSeeder, bh as AXMTeamDataSeeder, bi as AXMTeamMemberDataSeeder, bj as AXMTeamMemberRoleDataSeeder, bk as AXMWorkflowDashboardChartDataSourceDefinition, bl as AXM_AI_REGISTRY_COMMAND_NAME, bm as AXM_AI_REGISTRY_QUERY_NAME, bn as AXM_CORPORATE_BUSINESS_UNIT_ID, bo as AXPDashboardDataSeeder, bp as AXPIdentifierDB, bq as AXPMessageDataSeeder, br as AXPMockChecksumProvider, bs as AXPMockClockProvider, bt as AXPMockIdentifierService, bu as AXPMockLookupProvider, bv as AXPMockPolicyProvider, bw as AXPMockSequenceProvider, bx as AXPRoomDataSeeder, by as AXPSecurityManagementRoleDataSeeder, bz as AXPSecurityManagementUserDataSeeder, bA as AXPTaskBoardPlatformManagementTaskProvider, bB as AXPTaskBoardProjectManagementTaskProvider, bC as AXVChangeType, bD as BCC, bE as BOC, bF as BUSINESS_UNITS_MOCK, bG as CHAT_LAST_MESSAGE_IDS, bH as COSTMANAGER_ENTERPRISE, bI as COSTMANAGER_PROFESSIONAL, bJ as COSTMANAGER_STANDARD, bK as CP, bL as CRM_ENTERPRISE, bM as DASHBOARDS, bN as EDITIONS, bO as EMPLOYEES_MOCK, bP as EMPLOYMENT_TYPES_MOCK, bQ as ENTITY_DEFINITION_MAP, bR as ENTITY_REGISTRY, bS as FINANCE_BASIC, bT as FINANCE_ENTERPRISE, bU as FINANCE_PRO, bV as G, bW as HR_ENTERPRISE, bX as HW, bY as JOB_DEFINITIONS_CATEGORY_MOCK, bZ as JOB_DEFINITIONS_MOCK, b_ as JOB_DEFINITION_CATEGORY_KEY_TO_ID, b$ as JOB_LEVELS_MOCK, c0 as LASER_PLUMBING_TENANT_ID, c1 as LEAVE_REQUESTS_MOCK, c2 as METADATA_CATEGORY_IDS, c3 as METADATA_GENERAL_CATEGORY_REFS, c4 as METADATA_SYSTEM_CATEGORY_REFS, c5 as MLC, c6 as OHR, c7 as ORDERING_BASIC, c8 as ORDERING_ENTERPRISE, c9 as ORDERING_STANDARD, ca as OWNERSHIP_FILTER_BYPASS, cb as PLATFORM_CONSOLE, cc as PLATFORM_TENANT_ID, cd as PM, ce as POSITIONS_CATEGORY_MOCK, cf as POSITIONS_MOCK, cg as POSITION_ASSIGNMENTS_MOCK, ch as QCP, ci as QGEN, cj as QHW, ck as QOHR, cl as QPM, cm as QTLE, cn as QUESTIONNAIRE_CATEGORY_MOCK, co as QUESTION_BANK_ITEM_CATEGORY_MOCK, cp as QWS, cq as RESPONSIBILITIES_CATEGORY_MOCK, cr as RESPONSIBILITIES_MOCK, cs as RESPONSIBILITY_CATEGORY_KEY_TO_ID, ct as SAFETYMINDER_BASIC, cu as SAFETYMINDER_ENTERPRISE, cv as SAFETYMINDER_PROFESSIONAL, cw as SHOP_BASIC, cx as SHOP_ENTERPRISE, cy as SHOP_PRO, cz as TAGS_MOCK, cA as TASKS, cB as TASK_STATUSES, cC as TASK_TEMPLATES, cD as TASK_TYPES, cE as TEAMS_MOCK, cF as TEAM_BUSINESS_UNITS_MOCK, cG as TEAM_MEMBERS_MOCK, cH as TEAM_MEMBER_ROLES_MOCK, cI as TIMEPLICITY_TENANT_ID, cJ as TLA, cK as TOKENS, cL as TPC, cM as VISIBILITY_FILTER_BYPASS, cN as WORKFLOW_CATEGORIES, cO as WS, cP as activityCategoryMocks, cQ as activityDefinitionEntityMock, cR as applyEntityDefinitionFirestoreSnapshot, cS as automationCommandMiddleware, cT as automationMock, cU as avatarInterface, cV as axVersionDB, cW as axWorkflowExecutionDB, cX as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, cY as axcPatchEmployeeActivePrimaryPositionRefsFromRows, cZ as axcPatchEmployeeManagerRefsFromRows, c_ as axcResolveCommandRegistrySeedId, c$ as axcResolveQueryRegistrySeedId, d0 as axcResolveWidgetCatalogSeedId, d1 as bankCategory, d2 as buildEntityStorageQuickSearchFilter, d3 as buildWorkflowInstanceCartableDemoRows, d4 as bypassAllFilters, d5 as bypassOwnershipFilter, d6 as bypassVisibilityFilter, d7 as calendarEventMock, d8 as calendarEventTypeMockData, d9 as calendarMock, da as chatMessageMock, db as chatMock, dc as checkboxInterface, dd as childCountMiddleware, de as clearEntityDefinitionFirestoreCollections, df as collectQuickSearchFieldPathsFromEntityDefinition, dg as colorInterface, dh as computeDiff, di as contactInterface, dj as conversationDemoSeedUserIds, dk as createFileCastMiddleware, dl as createWidgetLayoutConfig, dm as dateInterface, dn as dateTimeInterface, dp as descriptionInterface, dq as documentFolderSyncMiddleware, dr as emailInterface, ds as entityDefDb, dt as entityValidationMiddleware, du as fileUploaderInterface, dv as finalizeActivityCategoryItemCounts, dw as findEmployeeById, dx as folderStorageMiddleware, dy as groupOrderItemCalculatorMiddleware, dz as historyMiddleware, dA as identifierCommitMiddleware, dB as imageInterface, dC as inspectionOkXNaInterface, dD as loadMockPropertyDefinitions, dE as lockGuardMiddleware, dF as longTextAnswerInterface, dG as lookupInterface, dH as lookupResolverMiddleware, dI as mapInterface, dJ as meetingFilesMock, dK as meetingIds, dL as meetingMock, dM as meetingParticipantMock, dN as meetingRoleTypeMock, dO as meetingSessionMock, dP as meetingTimeSlotMock, dQ as meetingTypeFileTemplateMock, dR as meetingTypeMock, dS as mergeDetailRelationMiddleware, dT as mergeQuickSearchIntoRequest, dU as metadataCategoryMocks, dV as mockParticipantIndexForSecurityUserId, dW as mockQuestionBankItemByName, dX as mockRoleDefinitions, m as mockUsers, dY as multipleChoiceInterface, dZ as multipleSelectInterface, d_ as normalizeAnyFileArrayForView, d$ as normalizeSnapshotFileFieldsForView, e0 as numberInterface, e1 as parseEntityStorageInsertData, e2 as parseEntityStorageQueryRequest, e3 as participantIds, e4 as participantMock, e5 as passwordInterface, e6 as personIdentifierTypeMock, e7 as personIds, e8 as personLegalIds, e9 as personMock, ea as personNaturalIds, eb as phoneInterface, ec as primaryMiddleware, ed as provideMockPropertySetups, ee as qrcodeInterface, ef as questionBankItemMock, eg as questionnaireCalculationMock, eh as questionnaireMock, ei as ratingInterface, ej as richTextInterface, ek as scaleInterface, el as selectInterface, em as selectionListInterface, en as sexAtBirthInterface, eo as signatureInterface, ep as signatureLoaderMiddleware, eq as statusDefaultMiddleware, er as tagInterface, es as tenantMocks, et as textAreaInterface, eu as textInterface, ev as timeDurationInterface, ew as titleInterface, ex as toUiRows, ey as toggleInterface, ez as tokenCategoryIds, eA as tokenCategoryMocks, eB as urlInterface, eC as versionInterface, eD as visibilityFilterMiddleware, eE as workflowDefinitionEntityMock, eF as workflowDefinitionIds, eG as workflowDefinitionMock, eH as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-oEjW7bgG.mjs';
|
|
1
|
+
export { d as ACTIVITY_CATEGORIES, e as ACTIVITY_CATEGORY_ID_BY_KEY, f as ACTIVITY_DEFINITIONS, g as AI_ASSIST_MOCK, h as AI_MODEL_MOCK, i as APPLICATIONS, j as AXCActivityCategorySeeder, k as AXCActivityDefinitionSeeder, l as AXCAiAssistSeeder, n as AXCAiManagementMockModule, o as AXCAiModelSeeder, p as AXCAppTermDataSeeder, q as AXCAppVersionDataSeeder, s as AXCApplicationDataSeeder, t as AXCApplicationManagementMockModule, u as AXCAssessmentManagementMockModule, v as AXCAssetManagementMockModule, w as AXCAuthMockModule, x as AXCCalendarDataSeeder, y as AXCCalendarEventDataSeeder, z as AXCCalendarManagementMockModule, B as AXCCommandRegistryDataSeeder, C as AXCCommonMockModule, D as AXCContactCoreMockModule, E as AXCContentManagementMockModule, F as AXCConversationDataSeeder, G as AXCConversationMockConversationApi, H as AXCConversationMockMessageApi, I as AXCConversationMockModule, J as AXCConversationMockRealtimeApi, K as AXCConversationMockUserApi, L as AXCCustomerManagementMockModule, M as AXCDashboardManagementMockModule, N as AXCDataManagementMockModule, O as AXCDexieEntityStorageService, P as AXCDocumentManagementMockModule, Q as AXCEditionDataSeeder, R as AXCEntityDefinitionSeederService, S as AXCEntityDefinitionsModule, T as AXCEntityStorageInsertCommand, U as AXCEntityStorageModule, V as AXCEntityStorageQueryQuery, W as AXCFileStorageServiceDexie, X as AXCFileStorageServiceFirestore, Y as AXCFinancialCoreMockModule, Z as AXCFirestoreEntityStorageService, _ as AXCFormTemplateManagementMockModule, $ as AXCGoogleStrategyMock, a0 as AXCHealthCoreMockModule, a1 as AXCHelpDeskMockModule, a2 as AXCHumanCapitalManagementMockModule, a3 as AXCIdentifierManagementMockModule, a4 as AXCImageCaptchaChallengeProviderMock, a5 as AXCLearningManagementMockModule, a6 as AXCLocaleManagementMockModule, a7 as AXCLocationManagementMockModule, a8 as AXCLockService, a9 as AXCMeasurementCoreMockModule, aa as AXCMeetingManagementMockModule, ab as AXCMetaDataDefinitionDataSeeder, ac as AXCMetadataCategorySeeder, ad as AXCMiddlewaresModule, ae as AXCMockCaptchaChallengeComponent, af as AXCMockEntityLogListener, ag as AXCMockModule, ah as AXCMockShowMetaDataFormPopupCommand, ai as AXCNotificationManagementMockModule, aj as AXCOrderManagementMockModule, ak as AXCOrganizationManagementMockModule, al as AXCPersonCoreMockModule, am as AXCPlatformManagementMockModule, an as AXCProcurementManagementMockModule, ao as AXCProductCatalogMockModule, ap as AXCProjectManagementMockModule, aq as AXCQueryRegistryDataSeeder, ar as AXCReportManagementMockModule, as as AXCSecurityManagementMockModule, at as AXCStoredEntityDefinitionLoader, au as AXCSubscriptionManagementMockModule, av as AXCSupplierManagementMockModule, aw as AXCTaskManagementMockModule, ax as AXCTenantManagementMockModule, ay as AXCTenantSeeder, az as AXCTokensDataSeeder, aA as AXCUserPassStrategyMock, aB as AXCVersionDB, aC as AXCVersioningService, aD as AXCWidgetCatalogDataSeeder, aE as AXCWorkflowCategorySeeder, aF as AXCWorkflowDefinitionDataSeeder, aG as AXCWorkflowEngine, aH as AXCWorkflowExecutionDB, aI as AXCWorkflowExecutionStoreDexie, aJ as AXCWorkflowExecutionStoreFirestore, aK as AXCWorkflowInstanceCartableDemoSeeder, aL as AXCWorkflowManagementMockModule, aM as AXC_ENTITY_STORAGE_BACKEND_TYPE, aN as AXC_FIRESTORE_CONFIG, aO as AXC_FIRESTORE_DB, aP as AXC_WORKFLOW_EXECUTION_STORE, aQ as AXMAiDemisDefaultAssistId, a as AXMAiModelStableIds, aR as AXMAiPlatformDefaultAssistId, aS as AXMAutomationDataSeeder, aT as AXMBusinessUnitDataSeeder, aU as AXMCalendarEventTypeSeeder, aV as AXMDashboardChartDataSourceDefinition, aW as AXMEmployeeDataSeeder, aX as AXMEmploymentTypeDataSeeder, aY as AXMFormDataSourcesProvider, aZ as AXMJobDefinitionDataSeeder, a_ as AXMJobLevelDataSeeder, a$ as AXMLeaveRequestDataSeeder, b0 as AXMMeetingDataSeeder, b1 as AXMMeetingFilesDataSeeder, b2 as AXMMeetingParticipantDataSeeder, b3 as AXMMeetingRoleTypeDataSeeder, b4 as AXMMeetingSessionDataSeeder, b5 as AXMMeetingTypeDataSeeder, b6 as AXMMeetingTypeFileTemplateDataSeeder, b7 as AXMPositionAssignmentDataSeeder, b8 as AXMPositionDataSeeder, b9 as AXMQuestionBankItemCategoryDataSeeder, ba as AXMQuestionBankItemDataSeeder, bb as AXMQuestionnaireCalculationDataSeeder, bc as AXMQuestionnaireCategoryDataSeeder, bd as AXMQuestionnaireDataSeeder, be as AXMResponsibilityDataSeeder, bf as AXMTagDataSeeder, bg as AXMTeamBusinessUnitDataSeeder, bh as AXMTeamDataSeeder, bi as AXMTeamMemberDataSeeder, bj as AXMTeamMemberRoleDataSeeder, bk as AXMWorkflowDashboardChartDataSourceDefinition, bl as AXM_AI_REGISTRY_COMMAND_NAME, bm as AXM_AI_REGISTRY_QUERY_NAME, bn as AXM_CORPORATE_BUSINESS_UNIT_ID, bo as AXPDashboardDataSeeder, bp as AXPIdentifierDB, bq as AXPMessageDataSeeder, br as AXPMockChecksumProvider, bs as AXPMockClockProvider, bt as AXPMockIdentifierService, bu as AXPMockLookupProvider, bv as AXPMockPolicyProvider, bw as AXPMockSequenceProvider, bx as AXPRoomDataSeeder, by as AXPSecurityManagementRoleDataSeeder, bz as AXPSecurityManagementUserDataSeeder, bA as AXPTaskBoardPlatformManagementTaskProvider, bB as AXPTaskBoardProjectManagementTaskProvider, bC as AXVChangeType, bD as BCC, bE as BOC, bF as BUSINESS_UNITS_MOCK, bG as CHAT_LAST_MESSAGE_IDS, bH as COSTMANAGER_ENTERPRISE, bI as COSTMANAGER_PROFESSIONAL, bJ as COSTMANAGER_STANDARD, bK as CP, bL as CRM_ENTERPRISE, bM as DASHBOARDS, bN as EDITIONS, bO as EMPLOYEES_MOCK, bP as EMPLOYMENT_TYPES_MOCK, bQ as ENTITY_DEFINITION_MAP, bR as ENTITY_REGISTRY, bS as FINANCE_BASIC, bT as FINANCE_ENTERPRISE, bU as FINANCE_PRO, bV as G, bW as HR_ENTERPRISE, bX as HW, bY as JOB_DEFINITIONS_CATEGORY_MOCK, bZ as JOB_DEFINITIONS_MOCK, b_ as JOB_DEFINITION_CATEGORY_KEY_TO_ID, b$ as JOB_LEVELS_MOCK, c0 as LASER_PLUMBING_TENANT_ID, c1 as LEAVE_REQUESTS_MOCK, c2 as METADATA_CATEGORY_IDS, c3 as METADATA_GENERAL_CATEGORY_REFS, c4 as METADATA_SYSTEM_CATEGORY_REFS, c5 as MLC, c6 as OHR, c7 as ORDERING_BASIC, c8 as ORDERING_ENTERPRISE, c9 as ORDERING_STANDARD, ca as OWNERSHIP_FILTER_BYPASS, cb as PLATFORM_CONSOLE, cc as PLATFORM_TENANT_ID, cd as PM, ce as POSITIONS_CATEGORY_MOCK, cf as POSITIONS_MOCK, cg as POSITION_ASSIGNMENTS_MOCK, ch as QCP, ci as QGEN, cj as QHW, ck as QOHR, cl as QPM, cm as QTLE, cn as QUESTIONNAIRE_CATEGORY_MOCK, co as QUESTION_BANK_ITEM_CATEGORY_MOCK, cp as QWS, cq as RESPONSIBILITIES_CATEGORY_MOCK, cr as RESPONSIBILITIES_MOCK, cs as RESPONSIBILITY_CATEGORY_KEY_TO_ID, ct as SAFETYMINDER_BASIC, cu as SAFETYMINDER_ENTERPRISE, cv as SAFETYMINDER_PROFESSIONAL, cw as SHOP_BASIC, cx as SHOP_ENTERPRISE, cy as SHOP_PRO, cz as TAGS_MOCK, cA as TASKS, cB as TASK_STATUSES, cC as TASK_TEMPLATES, cD as TASK_TYPES, cE as TEAMS_MOCK, cF as TEAM_BUSINESS_UNITS_MOCK, cG as TEAM_MEMBERS_MOCK, cH as TEAM_MEMBER_ROLES_MOCK, cI as TIMEPLICITY_TENANT_ID, cJ as TLA, cK as TOKENS, cL as TPC, cM as VISIBILITY_FILTER_BYPASS, cN as WORKFLOW_CATEGORIES, cO as WS, cP as activityCategoryMocks, cQ as activityDefinitionEntityMock, cR as applyEntityDefinitionFirestoreSnapshot, cS as automationCommandMiddleware, cT as automationMock, cU as avatarInterface, cV as axVersionDB, cW as axWorkflowExecutionDB, cX as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, cY as axcPatchEmployeeActivePrimaryPositionRefsFromRows, cZ as axcPatchEmployeeManagerRefsFromRows, c_ as axcResolveCommandRegistrySeedId, c$ as axcResolveQueryRegistrySeedId, d0 as axcResolveWidgetCatalogSeedId, d1 as bankCategory, d2 as buildEntityStorageQuickSearchFilter, d3 as buildWorkflowInstanceCartableDemoRows, d4 as bypassAllFilters, d5 as bypassOwnershipFilter, d6 as bypassVisibilityFilter, d7 as calendarEventMock, d8 as calendarEventTypeMockData, d9 as calendarMock, da as chatMessageMock, db as chatMock, dc as checkboxInterface, dd as childCountMiddleware, de as clearEntityDefinitionFirestoreCollections, df as collectQuickSearchFieldPathsFromEntityDefinition, dg as colorInterface, dh as computeDiff, di as contactInterface, dj as conversationDemoSeedUserIds, dk as createFileCastMiddleware, dl as createWidgetLayoutConfig, dm as dateInterface, dn as dateTimeInterface, dp as descriptionInterface, dq as documentFolderSyncMiddleware, dr as emailInterface, ds as entityDefDb, dt as entityValidationMiddleware, du as fileUploaderInterface, dv as finalizeActivityCategoryItemCounts, dw as findEmployeeById, dx as folderStorageMiddleware, dy as groupOrderItemCalculatorMiddleware, dz as historyMiddleware, dA as identifierCommitMiddleware, dB as imageInterface, dC as inspectionOkXNaInterface, dD as loadMockPropertyDefinitions, dE as lockGuardMiddleware, dF as longTextAnswerInterface, dG as lookupInterface, dH as lookupResolverMiddleware, dI as mapInterface, dJ as meetingFilesMock, dK as meetingIds, dL as meetingMock, dM as meetingParticipantMock, dN as meetingRoleTypeMock, dO as meetingSessionMock, dP as meetingTimeSlotMock, dQ as meetingTypeFileTemplateMock, dR as meetingTypeMock, dS as mergeDetailRelationMiddleware, dT as mergeQuickSearchIntoRequest, dU as metadataCategoryMocks, dV as mockParticipantIndexForSecurityUserId, dW as mockQuestionBankItemByName, dX as mockRoleDefinitions, m as mockUsers, dY as multipleChoiceInterface, dZ as multipleSelectInterface, d_ as normalizeAnyFileArrayForView, d$ as normalizeSnapshotFileFieldsForView, e0 as numberInterface, e1 as parseEntityStorageInsertData, e2 as parseEntityStorageQueryRequest, e3 as participantIds, e4 as participantMock, e5 as passwordInterface, e6 as personIdentifierTypeMock, e7 as personIds, e8 as personLegalIds, e9 as personMock, ea as personNaturalIds, eb as phoneInterface, ec as primaryMiddleware, ed as provideMockPropertySetups, ee as qrcodeInterface, ef as questionBankItemMock, eg as questionnaireCalculationMock, eh as questionnaireMock, ei as ratingInterface, ej as richTextInterface, ek as scaleInterface, el as selectInterface, em as selectionListInterface, en as sexAtBirthInterface, eo as signatureInterface, ep as signatureLoaderMiddleware, eq as statusDefaultMiddleware, er as tagInterface, es as tenantMocks, et as textAreaInterface, eu as textInterface, ev as timeDurationInterface, ew as titleInterface, ex as toUiRows, ey as toggleInterface, ez as tokenCategoryIds, eA as tokenCategoryMocks, eB as urlInterface, eC as versionInterface, eD as visibilityFilterMiddleware, eE as workflowDefinitionEntityMock, eF as workflowDefinitionIds, eG as workflowDefinitionMock, eH as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
|
|
2
2
|
//# sourceMappingURL=acorex-connectivity-mock.mjs.map
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/connectivity",
|
|
3
|
-
"version": "21.0.0-next.
|
|
3
|
+
"version": "21.0.0-next.41",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/modules": "21.0.0-next.
|
|
5
|
+
"@acorex/modules": "21.0.0-next.41"
|
|
6
6
|
},
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"module": "fesm2022/acorex-connectivity.mjs",
|