@acorex/connectivity 21.0.0-next.91 → 21.0.0-next.93

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.
Files changed (54) hide show
  1. package/fesm2022/acorex-connectivity-api.mjs.map +1 -1
  2. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-B5bnzTKN.mjs → acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs} +3962 -3636
  3. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-B5bnzTKN.mjs.map → acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs.map} +1 -1
  4. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-Dv7Jzdhf.mjs → acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs} +2 -2
  5. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-CTrrsAvF.mjs.map +1 -0
  6. package/fesm2022/acorex-connectivity-mock-category-metadata-inheritance.query-CIof4zTg.mjs.map +1 -1
  7. package/fesm2022/acorex-connectivity-mock-category-with-items.query-DAKUJIIt.mjs.map +1 -1
  8. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-C_1j3JPR.mjs → acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs} +2 -3
  9. package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-CSbgiZEm.mjs.map +1 -0
  10. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-0y5swsxw.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs} +2 -3
  11. package/fesm2022/acorex-connectivity-mock-chat-synthesize-speech.command-CjdySQzM.mjs.map +1 -0
  12. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-D59NedG-.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs} +2 -3
  13. package/fesm2022/acorex-connectivity-mock-chat-transcribe-speech.command-Wm1Ao81s.mjs.map +1 -0
  14. package/fesm2022/acorex-connectivity-mock-check-permission.activity-vr3OHtjC.mjs.map +1 -1
  15. package/fesm2022/acorex-connectivity-mock-distribution-record.activity-a1_k9Czb.mjs.map +1 -1
  16. package/fesm2022/acorex-connectivity-mock-entity-create.activity-CdoUzUvF.mjs.map +1 -1
  17. package/fesm2022/acorex-connectivity-mock-entity-delete.activity-ErEN1c24.mjs.map +1 -1
  18. package/fesm2022/acorex-connectivity-mock-entity-read.activity-1fJW8gVe.mjs.map +1 -1
  19. package/fesm2022/acorex-connectivity-mock-entity-update.activity-06HTKiQQ.mjs.map +1 -1
  20. package/fesm2022/acorex-connectivity-mock-extract-document-text.command-nGfUTSf6.mjs.map +1 -1
  21. package/fesm2022/acorex-connectivity-mock-get-application-versions-chart-data.query-DwVuYuKx.mjs.map +1 -1
  22. package/fesm2022/acorex-connectivity-mock-get-application-versions-timeline.query-sFKYynZA.mjs.map +1 -1
  23. package/fesm2022/acorex-connectivity-mock-get-current-session-user.activity-CsmxwXsM.mjs.map +1 -1
  24. package/fesm2022/acorex-connectivity-mock-get-current-user-manager.activity-C1mj2bgB.mjs.map +1 -1
  25. package/fesm2022/acorex-connectivity-mock-get-employee-list.query-BWbZj3tp.mjs.map +1 -1
  26. package/fesm2022/acorex-connectivity-mock-get-location-list.query-CQ2rFDUM.mjs.map +1 -1
  27. package/fesm2022/acorex-connectivity-mock-get-product-chart-data.query-D7DBzLT-.mjs.map +1 -1
  28. package/fesm2022/acorex-connectivity-mock-get-product-list.query-o9TcY_RC.mjs.map +1 -1
  29. package/fesm2022/acorex-connectivity-mock-get-product-pdf-data.query-DUZvwsmY.mjs.map +1 -1
  30. package/fesm2022/acorex-connectivity-mock-get-subscriptions-chart-data.query-BXDzY2Sd.mjs.map +1 -1
  31. package/fesm2022/acorex-connectivity-mock-get-subscriptions-timeline.query-D_jVT-7a.mjs.map +1 -1
  32. package/fesm2022/acorex-connectivity-mock-get-tenant-application-access.query-BG6t0137.mjs.map +1 -1
  33. package/fesm2022/acorex-connectivity-mock-get-tenant-registration-chart-data.query-CgMZxfzh.mjs.map +1 -1
  34. package/fesm2022/acorex-connectivity-mock-get-tenant-registration-timeline.query-COmTsDCV.mjs.map +1 -1
  35. package/fesm2022/acorex-connectivity-mock-get-tenant-user-distribution.query-gqSqvIaa.mjs.map +1 -1
  36. package/fesm2022/acorex-connectivity-mock-if.activity-DvzuhItL.mjs.map +1 -1
  37. package/fesm2022/{acorex-connectivity-mock-jira-instance-sync.command-BYOuTU3R.mjs → acorex-connectivity-mock-jira-instance-sync.command-CaOd4PJa.mjs} +1 -2
  38. package/fesm2022/{acorex-connectivity-mock-jira-instance-sync.command-BYOuTU3R.mjs.map → acorex-connectivity-mock-jira-instance-sync.command-CaOd4PJa.mjs.map} +1 -1
  39. package/fesm2022/{acorex-connectivity-mock-notification-management-email-send.command-Df6E-9-c.mjs → acorex-connectivity-mock-notification-management-email-send.command-BuH_Lm6V.mjs} +1 -2
  40. package/fesm2022/acorex-connectivity-mock-notification-management-email-send.command-BuH_Lm6V.mjs.map +1 -0
  41. package/fesm2022/acorex-connectivity-mock-sample.command-CJmDL4pL.mjs.map +1 -1
  42. package/fesm2022/acorex-connectivity-mock-structured-text-completion.command-l31pjl9-.mjs.map +1 -1
  43. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-DVuh_6NC.mjs → acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs} +2 -2
  44. package/fesm2022/acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs.map +1 -0
  45. package/fesm2022/acorex-connectivity-mock.mjs +1 -1
  46. package/package.json +2 -2
  47. package/types/acorex-connectivity-api.d.ts +1 -2
  48. package/types/acorex-connectivity-mock.d.ts +73 -56
  49. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-Dv7Jzdhf.mjs.map +0 -1
  50. package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-C_1j3JPR.mjs.map +0 -1
  51. package/fesm2022/acorex-connectivity-mock-chat-synthesize-speech.command-0y5swsxw.mjs.map +0 -1
  52. package/fesm2022/acorex-connectivity-mock-chat-transcribe-speech.command-D59NedG-.mjs.map +0 -1
  53. package/fesm2022/acorex-connectivity-mock-notification-management-email-send.command-Df6E-9-c.mjs.map +0 -1
  54. package/fesm2022/acorex-connectivity-mock-user-roles-for-list-column.query-DVuh_6NC.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-connectivity-mock-jira-instance-sync.command-BYOuTU3R.mjs","sources":["../../../../libs/connectivity/mock/src/lib/jira-management/features/jira-instance-sync/jira-api.client.ts","../../../../libs/connectivity/mock/src/lib/jira-management/features/jira-instance-sync/jira-instance-sync.service.ts","../../../../libs/connectivity/mock/src/lib/jira-management/features/jira-instance-sync/jira-instance-sync.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { defaultTo, get, isEmpty, trim } from 'lodash-es';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface JiraApiClientOptions {\n baseUrl: string;\n token: string;\n apiVersion?: string | null;\n}\n\nexport class JiraApiError extends Error {\n constructor(\n message: string,\n readonly status?: number,\n readonly body?: string,\n ) {\n super(message);\n this.name = 'JiraApiError';\n }\n}\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst JIRA_DEV_PROXY_PREFIX = '/connectivity/mock/jira-proxy';\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction shouldUseDevJiraProxy(): boolean {\n if (typeof window === 'undefined') {\n return false;\n }\n return /^https?:\\/\\/(localhost|127\\.0\\.0\\.1)(:\\d+)?$/i.test(window.location.origin);\n}\n\nfunction buildApiRoot(baseUrl: string, apiVersion: string): string {\n const base = trim(baseUrl).replace(/\\/+$/, '');\n const directRoot = `${base}/rest/api/${apiVersion}`;\n\n if (!shouldUseDevJiraProxy()) {\n return directRoot;\n }\n\n try {\n const { host } = new URL(base);\n return `${JIRA_DEV_PROXY_PREFIX}/${host}/rest/api/${apiVersion}`;\n } catch {\n return directRoot;\n }\n}\n\n//#endregion\n\n//#region ---- Client ----\n\nexport class JiraApiClient {\n private readonly apiRoot: string;\n private readonly token: string;\n\n constructor(options: JiraApiClientOptions) {\n const version = defaultTo(trim(defaultTo(options.apiVersion, '')), '2');\n this.apiRoot = buildApiRoot(options.baseUrl, version);\n this.token = trim(options.token);\n }\n\n async get<T>(path: string, query?: Record<string, string | number | boolean | undefined>): Promise<T> {\n const url = new URL(\n `${this.apiRoot}${path.startsWith('/') ? path : `/${path}`}`,\n typeof window !== 'undefined' ? window.location.origin : 'http://localhost',\n );\n if (query) {\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined && value !== null && value !== '') {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n const response = await fetch(url.toString(), {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n Authorization: `Bearer ${this.token}`,\n },\n });\n\n const bodyText = await response.text();\n if (!response.ok) {\n throw new JiraApiError(\n `Jira API request failed (${response.status} ${response.statusText})`,\n response.status,\n bodyText,\n );\n }\n\n if (isEmpty(bodyText)) {\n return {} as T;\n }\n\n try {\n return JSON.parse(bodyText) as T;\n } catch {\n throw new JiraApiError('Jira API returned invalid JSON', response.status, bodyText);\n }\n }\n}\n\n//#endregion\n\n//#region ---- Response Shapes ----\n\nexport type JiraProjectDto = {\n id: string;\n key: string;\n name: string;\n projectTypeKey?: string;\n style?: string;\n simplified?: boolean;\n lead?: { accountId?: string; displayName?: string };\n avatarUrls?: Record<string, string>;\n description?: string;\n};\n\nexport type JiraIssueTypeDto = {\n id: string;\n name: string;\n description?: string;\n subtask?: boolean;\n hierarchyLevel?: number;\n iconUrl?: string;\n};\n\nexport type JiraFieldDto = {\n id: string;\n name: string;\n custom: boolean;\n schema?: { type?: string; custom?: string };\n};\n\nexport type JiraProjectStatusDto = {\n id: string;\n name: string;\n statuses: Array<{\n id: string;\n name: string;\n statusCategory?: { key?: string };\n }>;\n};\n\nexport type JiraSearchResultDto = {\n issues?: Array<{\n id: string;\n key: string;\n fields?: Record<string, unknown>;\n }>;\n};\n\nexport type JiraWorklogListDto = {\n worklogs?: Array<{\n id: string;\n author?: { accountId?: string; displayName?: string };\n started: string;\n timeSpentSeconds: number;\n timeSpent?: string;\n comment?: string;\n created?: string;\n updated?: string;\n }>;\n};\n\nexport type JiraCreateMetaDto = {\n projects?: Array<{\n issuetypes?: Array<{\n id: string;\n fields?: Record<\n string,\n {\n required?: boolean;\n hasDefaultValue?: boolean;\n defaultValue?: unknown;\n allowedValues?: unknown[];\n schema?: { type?: string };\n }\n >;\n }>;\n }>;\n};\n\nexport function readIssueField<T>(issue: { fields?: Record<string, unknown> }, path: string): T | undefined {\n return get(issue.fields, path) as T | undefined;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n RootConfig,\n type AXMJiraManagementJiraInstanceEntityModel,\n} from '@acorex/modules/jira-management';\nimport { createMultiLanguageString } from '@acorex/platform/contracts';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport { AXPIntegrationRuntimeService } from '@acorex/platform/common';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get, isString, trim } from 'lodash-es';\nimport {\n JiraApiClient,\n JiraApiError,\n readIssueField,\n type JiraCreateMetaDto,\n type JiraFieldDto,\n type JiraIssueTypeDto,\n type JiraProjectDto,\n type JiraProjectStatusDto,\n type JiraSearchResultDto,\n type JiraWorklogListDto,\n} from './jira-api.client';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface JiraInstanceSyncInput {\n instanceId: string;\n}\n\nexport interface JiraInstanceSyncResult {\n instanceId: string;\n projects: number;\n issueTypes: number;\n fields: number;\n workflowStatuses: number;\n projectIssueTypes: number;\n projectIssueTypeFields: number;\n issues: number;\n worklogs: number;\n}\n\ntype StoredRow = { id: string } & Record<string, unknown>;\n\n//#endregion\n\n//#region ---- Service ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXCJiraInstanceSyncService {\n //#region ---- Services & Dependencies ----\n\n private readonly storage = inject(AXPEntityStorageService);\n private readonly integrationRuntime = inject(AXPIntegrationRuntimeService, { optional: true });\n\n private readonly instanceEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraInstance.name}`;\n private readonly projectEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraProject.name}`;\n private readonly issueTypeEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraIssueType.name}`;\n private readonly fieldEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraField.name}`;\n private readonly projectIssueTypeEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraProjectIssueType.name}`;\n private readonly projectIssueTypeFieldEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraProjectIssueTypeField.name}`;\n private readonly workflowStatusEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraWorkflowStatus.name}`;\n private readonly issueEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraIssue.name}`;\n private readonly worklogEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraWorklog.name}`;\n\n //#endregion\n\n //#region ---- Public API ----\n\n async sync(input: JiraInstanceSyncInput): Promise<JiraInstanceSyncResult> {\n const instance = (await this.storage.getOne(this.instanceEntity, input.instanceId)) as\n | AXMJiraManagementJiraInstanceEntityModel\n | null;\n\n if (!instance) {\n throw new Error('Jira instance not found.');\n }\n\n const token = await this.resolveToken(instance);\n const baseUrl = defaultTo(trim(defaultTo(instance.baseUrl, '')), trim(defaultTo(instance.siteUrl, '')));\n if (!baseUrl) {\n throw new Error('Configure base URL before syncing.');\n }\n\n const client = new JiraApiClient({\n baseUrl,\n token,\n apiVersion: instance.apiVersion,\n });\n\n const [\n jiraProjects,\n jiraIssueTypes,\n jiraFields,\n existingProjects,\n existingIssueTypes,\n existingFields,\n existingProjectIssueTypes,\n existingProjectIssueTypeFields,\n existingWorkflowStatuses,\n existingIssues,\n existingWorklogs,\n ] = await Promise.all([\n client.get<JiraProjectDto[]>('/project'),\n client.get<JiraIssueTypeDto[]>('/issuetype'),\n client.get<JiraFieldDto[]>('/field'),\n this.loadAll(this.projectEntity),\n this.loadAll(this.issueTypeEntity),\n this.loadAll(this.fieldEntity),\n this.loadAll(this.projectIssueTypeEntity),\n this.loadAll(this.projectIssueTypeFieldEntity),\n this.loadAll(this.workflowStatusEntity),\n this.loadAll(this.issueEntity),\n this.loadAll(this.worklogEntity),\n ]);\n\n const instanceTitle = instance.title;\n const instanceName = instance.name;\n let projectIssueTypes = 0;\n let projectIssueTypeFields = 0;\n let workflowStatuses = 0;\n let issues = 0;\n let worklogs = 0;\n\n const issueTypeIdByJiraId = new Map<string, string>();\n\n for (const jiraIssueType of jiraIssueTypes) {\n const id = await this.upsertRow(\n this.issueTypeEntity,\n existingIssueTypes,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraIssueTypeId'] === jiraIssueType.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, title: instanceTitle },\n jiraIssueTypeId: jiraIssueType.id,\n name: jiraIssueType.name,\n description: jiraIssueType.description ? createMultiLanguageString(jiraIssueType.description) : null,\n subtask: jiraIssueType.subtask === true,\n hierarchyLevel: defaultTo(jiraIssueType.hierarchyLevel, 0),\n iconUrl: jiraIssueType.iconUrl ?? null,\n },\n );\n issueTypeIdByJiraId.set(jiraIssueType.id, id);\n }\n\n const fieldIdByJiraFieldId = new Map<string, string>();\n for (const jiraField of jiraFields) {\n const fieldId = await this.upsertRow(\n this.fieldEntity,\n existingFields,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraFieldId'] === jiraField.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, name: instanceName },\n jiraFieldId: jiraField.id,\n name: jiraField.name,\n custom: jiraField.custom === true,\n fieldType: get(jiraField, 'schema.type') ?? null,\n schema: get(jiraField, 'schema.custom') ?? null,\n },\n );\n fieldIdByJiraFieldId.set(jiraField.id, fieldId);\n }\n\n const projectIdByJiraId = new Map<string, string>();\n for (const jiraProject of jiraProjects) {\n const projectId = await this.upsertRow(\n this.projectEntity,\n existingProjects,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraProjectId'] === jiraProject.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, title: instanceTitle, name: instanceName },\n jiraProjectId: jiraProject.id,\n key: jiraProject.key,\n name: jiraProject.name,\n projectTypeKey: jiraProject.projectTypeKey ?? null,\n style: jiraProject.style ?? null,\n simplified: jiraProject.simplified ?? null,\n leadAccountId: jiraProject.lead?.accountId ?? null,\n leadDisplayName: jiraProject.lead?.displayName ?? null,\n avatarUrl: jiraProject.avatarUrls?.['48x48'] ?? null,\n description: jiraProject.description ? createMultiLanguageString(jiraProject.description) : null,\n projectStatusId: 'Active',\n },\n );\n projectIdByJiraId.set(jiraProject.id, projectId);\n\n const statusesByIssueType = await client.get<JiraProjectStatusDto[]>(`/project/${jiraProject.key}/statuses`);\n const linkedIssueTypeIds = new Set<string>();\n\n for (const issueTypeBlock of statusesByIssueType) {\n const localIssueTypeId = issueTypeIdByJiraId.get(issueTypeBlock.id);\n if (!localIssueTypeId) {\n continue;\n }\n\n linkedIssueTypeIds.add(localIssueTypeId);\n await this.upsertRow(\n this.projectIssueTypeEntity,\n existingProjectIssueTypes,\n (row) => row['projectId'] === projectId && row['issueTypeId'] === localIssueTypeId,\n {\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId,\n issueType: { id: localIssueTypeId, name: issueTypeBlock.name },\n },\n );\n projectIssueTypes += 1;\n\n let order = 0;\n for (const status of issueTypeBlock.statuses) {\n order += 1;\n await this.upsertRow(\n this.workflowStatusEntity,\n existingWorkflowStatuses,\n (row) =>\n row['projectId'] === projectId &&\n row['issueTypeId'] === localIssueTypeId &&\n row['jiraStatusId'] === status.id,\n {\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId,\n issueType: { id: localIssueTypeId, name: issueTypeBlock.name },\n jiraStatusId: status.id,\n name: status.name,\n statusCategoryKey: this.mapStatusCategory(status.statusCategory?.key),\n order,\n },\n );\n workflowStatuses += 1;\n }\n }\n\n const createMeta = await client.get<JiraCreateMetaDto>('/issue/createmeta', {\n projectKeys: jiraProject.key,\n expand: 'projects.issuetypes.fields',\n });\n\n for (const projectMeta of createMeta.projects ?? []) {\n for (const issueTypeMeta of projectMeta.issuetypes ?? []) {\n const localIssueTypeId = issueTypeIdByJiraId.get(issueTypeMeta.id);\n if (!localIssueTypeId || !linkedIssueTypeIds.has(localIssueTypeId)) {\n continue;\n }\n\n let fieldOrder = 0;\n for (const [jiraFieldKey, fieldMeta] of Object.entries(issueTypeMeta.fields ?? {})) {\n const localFieldId = fieldIdByJiraFieldId.get(jiraFieldKey);\n if (!localFieldId) {\n continue;\n }\n\n fieldOrder += 1;\n await this.upsertRow(\n this.projectIssueTypeFieldEntity,\n existingProjectIssueTypeFields,\n (row) =>\n row['projectId'] === projectId &&\n row['issueTypeId'] === localIssueTypeId &&\n row['fieldId'] === localFieldId,\n {\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId,\n issueType: { id: localIssueTypeId, name: issueTypeBlockName(issueTypeMeta.id, statusesByIssueType) },\n fieldId: localFieldId,\n field: { id: localFieldId, jiraFieldId: jiraFieldKey, name: jiraFieldKey },\n required: fieldMeta.required === true,\n hasDefaultValue: fieldMeta.hasDefaultValue === true,\n defaultValue: fieldMeta.defaultValue != null ? JSON.stringify(fieldMeta.defaultValue) : null,\n allowedValues:\n fieldMeta.allowedValues && fieldMeta.allowedValues.length > 0\n ? JSON.stringify(fieldMeta.allowedValues)\n : null,\n order: fieldOrder,\n },\n );\n projectIssueTypeFields += 1;\n }\n }\n }\n\n const search = await client.get<JiraSearchResultDto>('/search', {\n jql: `project = ${jiraProject.key} ORDER BY updated DESC`,\n maxResults: 50,\n fields: 'summary,description,issuetype,status,assignee,reporter,priority,parent,resolution,labels,created,updated',\n });\n\n for (const jiraIssue of search.issues ?? []) {\n const jiraIssueTypeId = readIssueField<{ id?: string }>(jiraIssue, 'issuetype.id')?.id;\n const jiraStatusId = readIssueField<{ id?: string }>(jiraIssue, 'status.id')?.id;\n const localIssueTypeId = jiraIssueTypeId ? issueTypeIdByJiraId.get(jiraIssueTypeId) : undefined;\n\n const workflowStatus = existingWorkflowStatuses.find(\n (row) =>\n row['projectId'] === projectId &&\n row['issueTypeId'] === localIssueTypeId &&\n row['jiraStatusId'] === jiraStatusId,\n );\n\n const parentJiraId = readIssueField<{ id?: string }>(jiraIssue, 'parent.id')?.id;\n const parentIssue = parentJiraId\n ? existingIssues.find((row) => row['jiraIssueId'] === parentJiraId)\n : undefined;\n\n const issueId = await this.upsertRow(\n this.issueEntity,\n existingIssues,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraIssueId'] === jiraIssue.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, name: instanceName },\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId ?? '',\n issueType: localIssueTypeId\n ? { id: localIssueTypeId, name: readIssueField<{ name?: string }>(jiraIssue, 'issuetype.name')?.name }\n : undefined,\n workflowStatusId: workflowStatus?.id ?? '',\n workflowStatus: workflowStatus\n ? {\n id: workflowStatus.id,\n name: workflowStatus['name'] as string,\n statusCategoryKey: workflowStatus['statusCategoryKey'] as string,\n }\n : undefined,\n jiraIssueId: jiraIssue.id,\n jiraIssueKey: jiraIssue.key,\n summary: defaultTo(readIssueField<string>(jiraIssue, 'summary'), jiraIssue.key),\n description: readIssueField<string>(jiraIssue, 'description') ?? null,\n assigneeAccountId: readIssueField<{ accountId?: string }>(jiraIssue, 'assignee.accountId')?.accountId ?? null,\n assigneeDisplayName:\n readIssueField<{ displayName?: string }>(jiraIssue, 'assignee.displayName')?.displayName ?? null,\n reporterAccountId: readIssueField<{ accountId?: string }>(jiraIssue, 'reporter.accountId')?.accountId ?? null,\n reporterDisplayName:\n readIssueField<{ displayName?: string }>(jiraIssue, 'reporter.displayName')?.displayName ?? null,\n priorityName: readIssueField<{ name?: string }>(jiraIssue, 'priority.name')?.name ?? null,\n parentIssueId: parentIssue?.id ?? null,\n parentIssue: parentIssue\n ? { id: parentIssue.id, jiraIssueKey: parentIssue['jiraIssueKey'] as string }\n : undefined,\n resolutionName: readIssueField<{ name?: string }>(jiraIssue, 'resolution.name')?.name ?? null,\n labels: JSON.stringify(readIssueField<string[]>(jiraIssue, 'labels') ?? []),\n jiraCreated: readIssueField<string>(jiraIssue, 'created') ?? null,\n jiraUpdated: readIssueField<string>(jiraIssue, 'updated') ?? null,\n },\n );\n issues += 1;\n\n const worklogList = await client.get<JiraWorklogListDto>(`/issue/${jiraIssue.key}/worklog`);\n for (const worklog of worklogList.worklogs ?? []) {\n await this.upsertRow(\n this.worklogEntity,\n existingWorklogs,\n (row) => row['issueId'] === issueId && row['jiraWorklogId'] === worklog.id,\n {\n issueId,\n issue: { id: issueId, jiraIssueKey: jiraIssue.key, summary: readIssueField<string>(jiraIssue, 'summary') },\n jiraWorklogId: worklog.id,\n authorAccountId: worklog.author?.accountId ?? null,\n authorDisplayName: worklog.author?.displayName ?? null,\n started: worklog.started,\n timeSpentSeconds: worklog.timeSpentSeconds,\n timeSpentDisplay: worklog.timeSpent ?? null,\n comment: isString(worklog.comment) ? worklog.comment : null,\n jiraCreated: worklog.created ?? null,\n jiraUpdated: worklog.updated ?? null,\n },\n );\n worklogs += 1;\n }\n }\n }\n\n await this.storage.updateOne(this.instanceEntity, instance.id, {\n lastSyncAt: new Date().toISOString(),\n });\n\n return {\n instanceId: instance.id,\n projects: jiraProjects.length,\n issueTypes: jiraIssueTypes.length,\n fields: jiraFields.length,\n workflowStatuses,\n projectIssueTypes,\n projectIssueTypeFields,\n issues,\n worklogs,\n };\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n private async resolveToken(instance: AXMJiraManagementJiraInstanceEntityModel): Promise<string> {\n if (instance.integrationConnectionId && this.integrationRuntime) {\n const client = await this.integrationRuntime.withClient(\n { providerId: 'jira', connectionScope: 'tenant', connectionKey: instance.name },\n async (resolved) => resolved as { token: string },\n );\n const token = trim(defaultTo(client.token, ''));\n if (token) {\n return token;\n }\n }\n\n const adminToken = trim(defaultTo(instance.adminToken, ''));\n if (adminToken) {\n return adminToken;\n }\n\n const pat = trim(defaultTo(instance.personalAccessToken, ''));\n if (pat) {\n return pat;\n }\n\n throw new Error('Configure an integration connection or personal access token before syncing.');\n }\n\n private async loadAll(entityName: string): Promise<StoredRow[]> {\n const result = await this.storage.query(entityName, { skip: 0, take: 50_000 });\n return (result.items ?? []) as StoredRow[];\n }\n\n private async upsertRow(\n entityName: string,\n cache: StoredRow[],\n match: (row: StoredRow) => boolean,\n payload: Record<string, unknown>,\n ): Promise<string> {\n const existing = cache.find(match);\n if (existing) {\n await this.storage.updateOne(entityName, existing.id, payload);\n Object.assign(existing, payload);\n return existing.id;\n }\n\n const id = crypto.randomUUID();\n await this.storage.insertOne(entityName, { id, ...payload });\n const created = { id, ...payload };\n cache.push(created);\n return id;\n }\n\n private mapStatusCategory(key?: string): 'new' | 'indeterminate' | 'done' {\n if (key === 'done') {\n return 'done';\n }\n if (key === 'indeterminate') {\n return 'indeterminate';\n }\n return 'new';\n }\n\n //#endregion\n}\n\nfunction issueTypeBlockName(issueTypeId: string, blocks: JiraProjectStatusDto[]): string {\n return blocks.find((block) => block.id === issueTypeId)?.name ?? issueTypeId;\n}\n\nexport { JiraApiError };\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { RootConfig } from '@acorex/modules/jira-management';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get } from 'lodash-es';\nimport { AXCJiraInstanceSyncService, JiraApiError, type JiraInstanceSyncResult } from './jira-instance-sync.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface JiraInstanceSyncCommandInput {\n instanceId?: string;\n}\n\nconst I18N = `${RootConfig.config.i18n}:instances.entities.instance`;\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXCJiraInstanceSyncCommand implements AXPCommand<JiraInstanceSyncCommandInput, JiraInstanceSyncResult> {\n //#region ---- Services & Dependencies ----\n\n private readonly syncService = inject(AXCJiraInstanceSyncService);\n private readonly loadingDialog = inject(AXLoadingDialogService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command Execution ----\n\n async execute(input?: JiraInstanceSyncCommandInput): Promise<AXPExecuteCommandResult<JiraInstanceSyncResult>> {\n const instanceId = defaultTo(get(input, 'instanceId'), '').trim();\n if (!instanceId) {\n return {\n success: false,\n message: {\n text: await this.translation.translateAsync(`@${I18N}.actions.sync.messages.missing-instance`),\n },\n };\n }\n\n const [loadingTitle, loadingDescription] = await Promise.all([\n this.translation.translateAsync(`@${I18N}.actions.sync.loading.title`),\n this.translation.translateAsync(`@${I18N}.actions.sync.loading.description`),\n ]);\n\n const progressDialog = this.loadingDialog.show({\n title: loadingTitle,\n mode: 'indeterminate',\n progressColor: 'primary',\n text: loadingDescription,\n });\n\n try {\n const data = await this.syncService.sync({ instanceId });\n return {\n success: true,\n data,\n message: {\n text: await this.translation.translateAsync(`@${I18N}.actions.sync.messages.success`, {\n params: {\n projects: data.projects,\n issues: data.issues,\n },\n }),\n },\n };\n } catch (error) {\n const fallback = await this.translation.translateAsync(`@${I18N}.actions.sync.messages.failed`);\n let text = error instanceof Error ? error.message : fallback;\n if (error instanceof JiraApiError && error.status === 0) {\n text = await this.translation.translateAsync(`@${I18N}.actions.sync.messages.network-error`);\n }\n return {\n success: false,\n message: { text },\n };\n } finally {\n progressDialog.close();\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-connectivity-mock-jira-instance-sync.command-CaOd4PJa.mjs","sources":["../../../../libs/connectivity/mock/src/lib/jira-management/features/jira-instance-sync/jira-api.client.ts","../../../../libs/connectivity/mock/src/lib/jira-management/features/jira-instance-sync/jira-instance-sync.service.ts","../../../../libs/connectivity/mock/src/lib/jira-management/features/jira-instance-sync/jira-instance-sync.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { defaultTo, get, isEmpty, trim } from 'lodash-es';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface JiraApiClientOptions {\n baseUrl: string;\n token: string;\n apiVersion?: string | null;\n}\n\nexport class JiraApiError extends Error {\n constructor(\n message: string,\n readonly status?: number,\n readonly body?: string,\n ) {\n super(message);\n this.name = 'JiraApiError';\n }\n}\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst JIRA_DEV_PROXY_PREFIX = '/connectivity/mock/jira-proxy';\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction shouldUseDevJiraProxy(): boolean {\n if (typeof window === 'undefined') {\n return false;\n }\n return /^https?:\\/\\/(localhost|127\\.0\\.0\\.1)(:\\d+)?$/i.test(window.location.origin);\n}\n\nfunction buildApiRoot(baseUrl: string, apiVersion: string): string {\n const base = trim(baseUrl).replace(/\\/+$/, '');\n const directRoot = `${base}/rest/api/${apiVersion}`;\n\n if (!shouldUseDevJiraProxy()) {\n return directRoot;\n }\n\n try {\n const { host } = new URL(base);\n return `${JIRA_DEV_PROXY_PREFIX}/${host}/rest/api/${apiVersion}`;\n } catch {\n return directRoot;\n }\n}\n\n//#endregion\n\n//#region ---- Client ----\n\nexport class JiraApiClient {\n private readonly apiRoot: string;\n private readonly token: string;\n\n constructor(options: JiraApiClientOptions) {\n const version = defaultTo(trim(defaultTo(options.apiVersion, '')), '2');\n this.apiRoot = buildApiRoot(options.baseUrl, version);\n this.token = trim(options.token);\n }\n\n async get<T>(path: string, query?: Record<string, string | number | boolean | undefined>): Promise<T> {\n const url = new URL(\n `${this.apiRoot}${path.startsWith('/') ? path : `/${path}`}`,\n typeof window !== 'undefined' ? window.location.origin : 'http://localhost',\n );\n if (query) {\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined && value !== null && value !== '') {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n const response = await fetch(url.toString(), {\n method: 'GET',\n headers: {\n Accept: 'application/json',\n Authorization: `Bearer ${this.token}`,\n },\n });\n\n const bodyText = await response.text();\n if (!response.ok) {\n throw new JiraApiError(\n `Jira API request failed (${response.status} ${response.statusText})`,\n response.status,\n bodyText,\n );\n }\n\n if (isEmpty(bodyText)) {\n return {} as T;\n }\n\n try {\n return JSON.parse(bodyText) as T;\n } catch {\n throw new JiraApiError('Jira API returned invalid JSON', response.status, bodyText);\n }\n }\n}\n\n//#endregion\n\n//#region ---- Response Shapes ----\n\nexport type JiraProjectDto = {\n id: string;\n key: string;\n name: string;\n projectTypeKey?: string;\n style?: string;\n simplified?: boolean;\n lead?: { accountId?: string; displayName?: string };\n avatarUrls?: Record<string, string>;\n description?: string;\n};\n\nexport type JiraIssueTypeDto = {\n id: string;\n name: string;\n description?: string;\n subtask?: boolean;\n hierarchyLevel?: number;\n iconUrl?: string;\n};\n\nexport type JiraFieldDto = {\n id: string;\n name: string;\n custom: boolean;\n schema?: { type?: string; custom?: string };\n};\n\nexport type JiraProjectStatusDto = {\n id: string;\n name: string;\n statuses: Array<{\n id: string;\n name: string;\n statusCategory?: { key?: string };\n }>;\n};\n\nexport type JiraSearchResultDto = {\n issues?: Array<{\n id: string;\n key: string;\n fields?: Record<string, unknown>;\n }>;\n};\n\nexport type JiraWorklogListDto = {\n worklogs?: Array<{\n id: string;\n author?: { accountId?: string; displayName?: string };\n started: string;\n timeSpentSeconds: number;\n timeSpent?: string;\n comment?: string;\n created?: string;\n updated?: string;\n }>;\n};\n\nexport type JiraCreateMetaDto = {\n projects?: Array<{\n issuetypes?: Array<{\n id: string;\n fields?: Record<\n string,\n {\n required?: boolean;\n hasDefaultValue?: boolean;\n defaultValue?: unknown;\n allowedValues?: unknown[];\n schema?: { type?: string };\n }\n >;\n }>;\n }>;\n};\n\nexport function readIssueField<T>(issue: { fields?: Record<string, unknown> }, path: string): T | undefined {\n return get(issue.fields, path) as T | undefined;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n RootConfig,\n type AXMJiraManagementJiraInstanceEntityModel,\n} from '@acorex/modules/jira-management';\nimport { createMultiLanguageString } from '@acorex/platform/contracts';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport { AXPIntegrationRuntimeService } from '@acorex/platform/common';\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get, isString, trim } from 'lodash-es';\nimport {\n JiraApiClient,\n JiraApiError,\n readIssueField,\n type JiraCreateMetaDto,\n type JiraFieldDto,\n type JiraIssueTypeDto,\n type JiraProjectDto,\n type JiraProjectStatusDto,\n type JiraSearchResultDto,\n type JiraWorklogListDto,\n} from './jira-api.client';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface JiraInstanceSyncInput {\n instanceId: string;\n}\n\nexport interface JiraInstanceSyncResult {\n instanceId: string;\n projects: number;\n issueTypes: number;\n fields: number;\n workflowStatuses: number;\n projectIssueTypes: number;\n projectIssueTypeFields: number;\n issues: number;\n worklogs: number;\n}\n\ntype StoredRow = { id: string } & Record<string, unknown>;\n\n//#endregion\n\n//#region ---- Service ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXCJiraInstanceSyncService {\n //#region ---- Services & Dependencies ----\n\n private readonly storage = inject(AXPEntityStorageService);\n private readonly integrationRuntime = inject(AXPIntegrationRuntimeService, { optional: true });\n\n private readonly instanceEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraInstance.name}`;\n private readonly projectEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraProject.name}`;\n private readonly issueTypeEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraIssueType.name}`;\n private readonly fieldEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraField.name}`;\n private readonly projectIssueTypeEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraProjectIssueType.name}`;\n private readonly projectIssueTypeFieldEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraProjectIssueTypeField.name}`;\n private readonly workflowStatusEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraWorkflowStatus.name}`;\n private readonly issueEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraIssue.name}`;\n private readonly worklogEntity = `${RootConfig.module.name}.${RootConfig.entities.jiraWorklog.name}`;\n\n //#endregion\n\n //#region ---- Public API ----\n\n async sync(input: JiraInstanceSyncInput): Promise<JiraInstanceSyncResult> {\n const instance = (await this.storage.getOne(this.instanceEntity, input.instanceId)) as\n | AXMJiraManagementJiraInstanceEntityModel\n | null;\n\n if (!instance) {\n throw new Error('Jira instance not found.');\n }\n\n const token = await this.resolveToken(instance);\n const baseUrl = defaultTo(trim(defaultTo(instance.baseUrl, '')), trim(defaultTo(instance.siteUrl, '')));\n if (!baseUrl) {\n throw new Error('Configure base URL before syncing.');\n }\n\n const client = new JiraApiClient({\n baseUrl,\n token,\n apiVersion: instance.apiVersion,\n });\n\n const [\n jiraProjects,\n jiraIssueTypes,\n jiraFields,\n existingProjects,\n existingIssueTypes,\n existingFields,\n existingProjectIssueTypes,\n existingProjectIssueTypeFields,\n existingWorkflowStatuses,\n existingIssues,\n existingWorklogs,\n ] = await Promise.all([\n client.get<JiraProjectDto[]>('/project'),\n client.get<JiraIssueTypeDto[]>('/issuetype'),\n client.get<JiraFieldDto[]>('/field'),\n this.loadAll(this.projectEntity),\n this.loadAll(this.issueTypeEntity),\n this.loadAll(this.fieldEntity),\n this.loadAll(this.projectIssueTypeEntity),\n this.loadAll(this.projectIssueTypeFieldEntity),\n this.loadAll(this.workflowStatusEntity),\n this.loadAll(this.issueEntity),\n this.loadAll(this.worklogEntity),\n ]);\n\n const instanceTitle = instance.title;\n const instanceName = instance.name;\n let projectIssueTypes = 0;\n let projectIssueTypeFields = 0;\n let workflowStatuses = 0;\n let issues = 0;\n let worklogs = 0;\n\n const issueTypeIdByJiraId = new Map<string, string>();\n\n for (const jiraIssueType of jiraIssueTypes) {\n const id = await this.upsertRow(\n this.issueTypeEntity,\n existingIssueTypes,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraIssueTypeId'] === jiraIssueType.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, title: instanceTitle },\n jiraIssueTypeId: jiraIssueType.id,\n name: jiraIssueType.name,\n description: jiraIssueType.description ? createMultiLanguageString(jiraIssueType.description) : null,\n subtask: jiraIssueType.subtask === true,\n hierarchyLevel: defaultTo(jiraIssueType.hierarchyLevel, 0),\n iconUrl: jiraIssueType.iconUrl ?? null,\n },\n );\n issueTypeIdByJiraId.set(jiraIssueType.id, id);\n }\n\n const fieldIdByJiraFieldId = new Map<string, string>();\n for (const jiraField of jiraFields) {\n const fieldId = await this.upsertRow(\n this.fieldEntity,\n existingFields,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraFieldId'] === jiraField.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, name: instanceName },\n jiraFieldId: jiraField.id,\n name: jiraField.name,\n custom: jiraField.custom === true,\n fieldType: get(jiraField, 'schema.type') ?? null,\n schema: get(jiraField, 'schema.custom') ?? null,\n },\n );\n fieldIdByJiraFieldId.set(jiraField.id, fieldId);\n }\n\n const projectIdByJiraId = new Map<string, string>();\n for (const jiraProject of jiraProjects) {\n const projectId = await this.upsertRow(\n this.projectEntity,\n existingProjects,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraProjectId'] === jiraProject.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, title: instanceTitle, name: instanceName },\n jiraProjectId: jiraProject.id,\n key: jiraProject.key,\n name: jiraProject.name,\n projectTypeKey: jiraProject.projectTypeKey ?? null,\n style: jiraProject.style ?? null,\n simplified: jiraProject.simplified ?? null,\n leadAccountId: jiraProject.lead?.accountId ?? null,\n leadDisplayName: jiraProject.lead?.displayName ?? null,\n avatarUrl: jiraProject.avatarUrls?.['48x48'] ?? null,\n description: jiraProject.description ? createMultiLanguageString(jiraProject.description) : null,\n projectStatusId: 'Active',\n },\n );\n projectIdByJiraId.set(jiraProject.id, projectId);\n\n const statusesByIssueType = await client.get<JiraProjectStatusDto[]>(`/project/${jiraProject.key}/statuses`);\n const linkedIssueTypeIds = new Set<string>();\n\n for (const issueTypeBlock of statusesByIssueType) {\n const localIssueTypeId = issueTypeIdByJiraId.get(issueTypeBlock.id);\n if (!localIssueTypeId) {\n continue;\n }\n\n linkedIssueTypeIds.add(localIssueTypeId);\n await this.upsertRow(\n this.projectIssueTypeEntity,\n existingProjectIssueTypes,\n (row) => row['projectId'] === projectId && row['issueTypeId'] === localIssueTypeId,\n {\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId,\n issueType: { id: localIssueTypeId, name: issueTypeBlock.name },\n },\n );\n projectIssueTypes += 1;\n\n let order = 0;\n for (const status of issueTypeBlock.statuses) {\n order += 1;\n await this.upsertRow(\n this.workflowStatusEntity,\n existingWorkflowStatuses,\n (row) =>\n row['projectId'] === projectId &&\n row['issueTypeId'] === localIssueTypeId &&\n row['jiraStatusId'] === status.id,\n {\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId,\n issueType: { id: localIssueTypeId, name: issueTypeBlock.name },\n jiraStatusId: status.id,\n name: status.name,\n statusCategoryKey: this.mapStatusCategory(status.statusCategory?.key),\n order,\n },\n );\n workflowStatuses += 1;\n }\n }\n\n const createMeta = await client.get<JiraCreateMetaDto>('/issue/createmeta', {\n projectKeys: jiraProject.key,\n expand: 'projects.issuetypes.fields',\n });\n\n for (const projectMeta of createMeta.projects ?? []) {\n for (const issueTypeMeta of projectMeta.issuetypes ?? []) {\n const localIssueTypeId = issueTypeIdByJiraId.get(issueTypeMeta.id);\n if (!localIssueTypeId || !linkedIssueTypeIds.has(localIssueTypeId)) {\n continue;\n }\n\n let fieldOrder = 0;\n for (const [jiraFieldKey, fieldMeta] of Object.entries(issueTypeMeta.fields ?? {})) {\n const localFieldId = fieldIdByJiraFieldId.get(jiraFieldKey);\n if (!localFieldId) {\n continue;\n }\n\n fieldOrder += 1;\n await this.upsertRow(\n this.projectIssueTypeFieldEntity,\n existingProjectIssueTypeFields,\n (row) =>\n row['projectId'] === projectId &&\n row['issueTypeId'] === localIssueTypeId &&\n row['fieldId'] === localFieldId,\n {\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId,\n issueType: { id: localIssueTypeId, name: issueTypeBlockName(issueTypeMeta.id, statusesByIssueType) },\n fieldId: localFieldId,\n field: { id: localFieldId, jiraFieldId: jiraFieldKey, name: jiraFieldKey },\n required: fieldMeta.required === true,\n hasDefaultValue: fieldMeta.hasDefaultValue === true,\n defaultValue: fieldMeta.defaultValue != null ? JSON.stringify(fieldMeta.defaultValue) : null,\n allowedValues:\n fieldMeta.allowedValues && fieldMeta.allowedValues.length > 0\n ? JSON.stringify(fieldMeta.allowedValues)\n : null,\n order: fieldOrder,\n },\n );\n projectIssueTypeFields += 1;\n }\n }\n }\n\n const search = await client.get<JiraSearchResultDto>('/search', {\n jql: `project = ${jiraProject.key} ORDER BY updated DESC`,\n maxResults: 50,\n fields: 'summary,description,issuetype,status,assignee,reporter,priority,parent,resolution,labels,created,updated',\n });\n\n for (const jiraIssue of search.issues ?? []) {\n const jiraIssueTypeId = readIssueField<{ id?: string }>(jiraIssue, 'issuetype.id')?.id;\n const jiraStatusId = readIssueField<{ id?: string }>(jiraIssue, 'status.id')?.id;\n const localIssueTypeId = jiraIssueTypeId ? issueTypeIdByJiraId.get(jiraIssueTypeId) : undefined;\n\n const workflowStatus = existingWorkflowStatuses.find(\n (row) =>\n row['projectId'] === projectId &&\n row['issueTypeId'] === localIssueTypeId &&\n row['jiraStatusId'] === jiraStatusId,\n );\n\n const parentJiraId = readIssueField<{ id?: string }>(jiraIssue, 'parent.id')?.id;\n const parentIssue = parentJiraId\n ? existingIssues.find((row) => row['jiraIssueId'] === parentJiraId)\n : undefined;\n\n const issueId = await this.upsertRow(\n this.issueEntity,\n existingIssues,\n (row) => row['jiraInstanceId'] === instance.id && row['jiraIssueId'] === jiraIssue.id,\n {\n jiraInstanceId: instance.id,\n jiraInstance: { id: instance.id, name: instanceName },\n projectId,\n project: { id: projectId, key: jiraProject.key, name: jiraProject.name },\n issueTypeId: localIssueTypeId ?? '',\n issueType: localIssueTypeId\n ? { id: localIssueTypeId, name: readIssueField<{ name?: string }>(jiraIssue, 'issuetype.name')?.name }\n : undefined,\n workflowStatusId: workflowStatus?.id ?? '',\n workflowStatus: workflowStatus\n ? {\n id: workflowStatus.id,\n name: workflowStatus['name'] as string,\n statusCategoryKey: workflowStatus['statusCategoryKey'] as string,\n }\n : undefined,\n jiraIssueId: jiraIssue.id,\n jiraIssueKey: jiraIssue.key,\n summary: defaultTo(readIssueField<string>(jiraIssue, 'summary'), jiraIssue.key),\n description: readIssueField<string>(jiraIssue, 'description') ?? null,\n assigneeAccountId: readIssueField<{ accountId?: string }>(jiraIssue, 'assignee.accountId')?.accountId ?? null,\n assigneeDisplayName:\n readIssueField<{ displayName?: string }>(jiraIssue, 'assignee.displayName')?.displayName ?? null,\n reporterAccountId: readIssueField<{ accountId?: string }>(jiraIssue, 'reporter.accountId')?.accountId ?? null,\n reporterDisplayName:\n readIssueField<{ displayName?: string }>(jiraIssue, 'reporter.displayName')?.displayName ?? null,\n priorityName: readIssueField<{ name?: string }>(jiraIssue, 'priority.name')?.name ?? null,\n parentIssueId: parentIssue?.id ?? null,\n parentIssue: parentIssue\n ? { id: parentIssue.id, jiraIssueKey: parentIssue['jiraIssueKey'] as string }\n : undefined,\n resolutionName: readIssueField<{ name?: string }>(jiraIssue, 'resolution.name')?.name ?? null,\n labels: JSON.stringify(readIssueField<string[]>(jiraIssue, 'labels') ?? []),\n jiraCreated: readIssueField<string>(jiraIssue, 'created') ?? null,\n jiraUpdated: readIssueField<string>(jiraIssue, 'updated') ?? null,\n },\n );\n issues += 1;\n\n const worklogList = await client.get<JiraWorklogListDto>(`/issue/${jiraIssue.key}/worklog`);\n for (const worklog of worklogList.worklogs ?? []) {\n await this.upsertRow(\n this.worklogEntity,\n existingWorklogs,\n (row) => row['issueId'] === issueId && row['jiraWorklogId'] === worklog.id,\n {\n issueId,\n issue: { id: issueId, jiraIssueKey: jiraIssue.key, summary: readIssueField<string>(jiraIssue, 'summary') },\n jiraWorklogId: worklog.id,\n authorAccountId: worklog.author?.accountId ?? null,\n authorDisplayName: worklog.author?.displayName ?? null,\n started: worklog.started,\n timeSpentSeconds: worklog.timeSpentSeconds,\n timeSpentDisplay: worklog.timeSpent ?? null,\n comment: isString(worklog.comment) ? worklog.comment : null,\n jiraCreated: worklog.created ?? null,\n jiraUpdated: worklog.updated ?? null,\n },\n );\n worklogs += 1;\n }\n }\n }\n\n await this.storage.updateOne(this.instanceEntity, instance.id, {\n lastSyncAt: new Date().toISOString(),\n });\n\n return {\n instanceId: instance.id,\n projects: jiraProjects.length,\n issueTypes: jiraIssueTypes.length,\n fields: jiraFields.length,\n workflowStatuses,\n projectIssueTypes,\n projectIssueTypeFields,\n issues,\n worklogs,\n };\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n private async resolveToken(instance: AXMJiraManagementJiraInstanceEntityModel): Promise<string> {\n if (instance.integrationConnectionId && this.integrationRuntime) {\n const client = await this.integrationRuntime.withClient(\n { providerId: 'jira', connectionScope: 'tenant', connectionKey: instance.name },\n async (resolved) => resolved as { token: string },\n );\n const token = trim(defaultTo(client.token, ''));\n if (token) {\n return token;\n }\n }\n\n const adminToken = trim(defaultTo(instance.adminToken, ''));\n if (adminToken) {\n return adminToken;\n }\n\n const pat = trim(defaultTo(instance.personalAccessToken, ''));\n if (pat) {\n return pat;\n }\n\n throw new Error('Configure an integration connection or personal access token before syncing.');\n }\n\n private async loadAll(entityName: string): Promise<StoredRow[]> {\n const result = await this.storage.query(entityName, { skip: 0, take: 50_000 });\n return (result.items ?? []) as StoredRow[];\n }\n\n private async upsertRow(\n entityName: string,\n cache: StoredRow[],\n match: (row: StoredRow) => boolean,\n payload: Record<string, unknown>,\n ): Promise<string> {\n const existing = cache.find(match);\n if (existing) {\n await this.storage.updateOne(entityName, existing.id, payload);\n Object.assign(existing, payload);\n return existing.id;\n }\n\n const id = crypto.randomUUID();\n await this.storage.insertOne(entityName, { id, ...payload });\n const created = { id, ...payload };\n cache.push(created);\n return id;\n }\n\n private mapStatusCategory(key?: string): 'new' | 'indeterminate' | 'done' {\n if (key === 'done') {\n return 'done';\n }\n if (key === 'indeterminate') {\n return 'indeterminate';\n }\n return 'new';\n }\n\n //#endregion\n}\n\nfunction issueTypeBlockName(issueTypeId: string, blocks: JiraProjectStatusDto[]): string {\n return blocks.find((block) => block.id === issueTypeId)?.name ?? issueTypeId;\n}\n\nexport { JiraApiError };\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCommand } from '@acorex/platform/runtime-contracts';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { RootConfig } from '@acorex/modules/jira-management';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\nimport { inject, Injectable } from '@angular/core';\nimport { defaultTo, get } from 'lodash-es';\nimport { AXCJiraInstanceSyncService, JiraApiError, type JiraInstanceSyncResult } from './jira-instance-sync.service';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface JiraInstanceSyncCommandInput {\n instanceId?: string;\n}\n\nconst I18N = `${RootConfig.config.i18n}:instances.entities.instance`;\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXCJiraInstanceSyncCommand implements AXPCommand<JiraInstanceSyncCommandInput, JiraInstanceSyncResult> {\n //#region ---- Services & Dependencies ----\n\n private readonly syncService = inject(AXCJiraInstanceSyncService);\n private readonly loadingDialog = inject(AXLoadingDialogService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Command Execution ----\n\n async execute(input?: JiraInstanceSyncCommandInput): Promise<AXPExecuteCommandResult<JiraInstanceSyncResult>> {\n const instanceId = defaultTo(get(input, 'instanceId'), '').trim();\n if (!instanceId) {\n return {\n success: false,\n message: {\n text: await this.translation.translateAsync(`@${I18N}.actions.sync.messages.missing-instance`),\n },\n };\n }\n\n const [loadingTitle, loadingDescription] = await Promise.all([\n this.translation.translateAsync(`@${I18N}.actions.sync.loading.title`),\n this.translation.translateAsync(`@${I18N}.actions.sync.loading.description`),\n ]);\n\n const progressDialog = this.loadingDialog.show({\n title: loadingTitle,\n mode: 'indeterminate',\n progressColor: 'primary',\n text: loadingDescription,\n });\n\n try {\n const data = await this.syncService.sync({ instanceId });\n return {\n success: true,\n data,\n message: {\n text: await this.translation.translateAsync(`@${I18N}.actions.sync.messages.success`, {\n params: {\n projects: data.projects,\n issues: data.issues,\n },\n }),\n },\n };\n } catch (error) {\n const fallback = await this.translation.translateAsync(`@${I18N}.actions.sync.messages.failed`);\n let text = error instanceof Error ? error.message : fallback;\n if (error instanceof JiraApiError && error.status === 0) {\n text = await this.translation.translateAsync(`@${I18N}.actions.sync.messages.network-error`);\n }\n return {\n success: false,\n message: { text },\n };\n } finally {\n progressDialog.close();\n }\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;;;;;;;AAAA;AAcM,MAAO,YAAa,SAAQ,KAAK,CAAA;AACrC,IAAA,WAAA,CACE,OAAe,EACN,MAAe,EACf,IAAa,EAAA;QAEtB,KAAK,CAAC,OAAO,CAAC;QAHL,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,IAAI,GAAJ,IAAI;AAGb,QAAA,IAAI,CAAC,IAAI,GAAG,cAAc;IAC5B;AACD;AAED;AAEA;AAEA,MAAM,qBAAqB,GAAG,+BAA+B;AAE7D;AAEA;AAEA,SAAS,qBAAqB,GAAA;AAC5B,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,KAAK;IACd;IACA,OAAO,+CAA+C,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrF;AAEA,SAAS,YAAY,CAAC,OAAe,EAAE,UAAkB,EAAA;AACvD,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AAC9C,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,IAAI,CAAA,UAAA,EAAa,UAAU,EAAE;AAEnD,IAAA,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC5B,QAAA,OAAO,UAAU;IACnB;AAEA,IAAA,IAAI;QACF,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,OAAO,GAAG,qBAAqB,CAAA,CAAA,EAAI,IAAI,CAAA,UAAA,EAAa,UAAU,EAAE;IAClE;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,UAAU;IACnB;AACF;AAEA;AAEA;MAEa,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAY,OAA6B,EAAA;AACvC,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;QACvE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;QACrD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC;AAEA,IAAA,MAAM,GAAG,CAAI,IAAY,EAAE,KAA6D,EAAA;QACtF,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,EAAE,CAAA,CAAE,EAC5D,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,kBAAkB,CAC5E;QACD,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChD,gBAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACzD,oBAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C;YACF;QACF;QAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;AAC3C,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,kBAAkB;AAC1B,gBAAA,aAAa,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,KAAK,CAAA,CAAE;AACtC,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACtC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,YAAY,CACpB,4BAA4B,QAAQ,CAAC,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAC,UAAU,CAAA,CAAA,CAAG,EACrE,QAAQ,CAAC,MAAM,EACf,QAAQ,CACT;QACH;AAEA,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACrB,YAAA,OAAO,EAAO;QAChB;AAEA,QAAA,IAAI;AACF,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM;QAClC;AAAE,QAAA,MAAM;YACN,MAAM,IAAI,YAAY,CAAC,gCAAgC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACrF;IACF;AACD;AAmFK,SAAU,cAAc,CAAI,KAA2C,EAAE,IAAY,EAAA;IACzF,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAkB;AACjD;AAEA;;ACvMA;AA8CA;AAEA;MAGa,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC;QACzC,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE7E,QAAA,IAAA,CAAA,cAAc,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE;AACrF,QAAA,IAAA,CAAA,aAAa,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;AACnF,QAAA,IAAA,CAAA,eAAe,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE;AACvF,QAAA,IAAA,CAAA,WAAW,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/E,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE;AACrG,QAAA,IAAA,CAAA,2BAA2B,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE;AAC/G,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE;AACjG,QAAA,IAAA,CAAA,WAAW,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE;AAC/E,QAAA,IAAA,CAAA,aAAa,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;AA4YrG,IAAA;;;IAtYC,MAAM,IAAI,CAAC,KAA4B,EAAA;AACrC,QAAA,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,CAE1E;QAER,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;QAC7C;QAEA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC/C,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;QACvD;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;YAC/B,OAAO;YACP,KAAK;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU;AAChC,SAAA,CAAC;AAEF,QAAA,MAAM,CACJ,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EACjB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACpB,YAAA,MAAM,CAAC,GAAG,CAAmB,UAAU,CAAC;AACxC,YAAA,MAAM,CAAC,GAAG,CAAqB,YAAY,CAAC;AAC5C,YAAA,MAAM,CAAC,GAAG,CAAiB,QAAQ,CAAC;AACpC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AAChC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;AAClC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACzC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC;AAC9C,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACvC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AACjC,SAAA,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK;AACpC,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI;QAClC,IAAI,iBAAiB,GAAG,CAAC;QACzB,IAAI,sBAAsB,GAAG,CAAC;QAC9B,IAAI,gBAAgB,GAAG,CAAC;QACxB,IAAI,MAAM,GAAG,CAAC;QACd,IAAI,QAAQ,GAAG,CAAC;AAEhB,QAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB;AAErD,QAAA,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;AAC1C,YAAA,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAC7B,IAAI,CAAC,eAAe,EACpB,kBAAkB,EAClB,CAAC,GAAG,KAAK,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC,EAAE,IAAI,GAAG,CAAC,iBAAiB,CAAC,KAAK,aAAa,CAAC,EAAE,EAC7F;gBACE,cAAc,EAAE,QAAQ,CAAC,EAAE;gBAC3B,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gBACvD,eAAe,EAAE,aAAa,CAAC,EAAE;gBACjC,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,gBAAA,WAAW,EAAE,aAAa,CAAC,WAAW,GAAG,yBAAyB,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI;AACpG,gBAAA,OAAO,EAAE,aAAa,CAAC,OAAO,KAAK,IAAI;gBACvC,cAAc,EAAE,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;AAC1D,gBAAA,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,IAAI;AACvC,aAAA,CACF;YACD,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;QAC/C;AAEA,QAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB;AACtD,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAClC,IAAI,CAAC,WAAW,EAChB,cAAc,EACd,CAAC,GAAG,KAAK,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,EAAE,EACrF;gBACE,cAAc,EAAE,QAAQ,CAAC,EAAE;gBAC3B,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;gBACrD,WAAW,EAAE,SAAS,CAAC,EAAE;gBACzB,IAAI,EAAE,SAAS,CAAC,IAAI;AACpB,gBAAA,MAAM,EAAE,SAAS,CAAC,MAAM,KAAK,IAAI;gBACjC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,IAAI;gBAChD,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,IAAI;AAChD,aAAA,CACF;YACD,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;QACjD;AAEA,QAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB;AACnD,QAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;AACtC,YAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CACpC,IAAI,CAAC,aAAa,EAClB,gBAAgB,EAChB,CAAC,GAAG,KAAK,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,WAAW,CAAC,EAAE,EACzF;gBACE,cAAc,EAAE,QAAQ,CAAC,EAAE;AAC3B,gBAAA,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE;gBAC3E,aAAa,EAAE,WAAW,CAAC,EAAE;gBAC7B,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,gBAAA,cAAc,EAAE,WAAW,CAAC,cAAc,IAAI,IAAI;AAClD,gBAAA,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,IAAI;AAChC,gBAAA,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,IAAI;AAC1C,gBAAA,aAAa,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI;AAClD,gBAAA,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI;gBACtD,SAAS,EAAE,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI;AACpD,gBAAA,WAAW,EAAE,WAAW,CAAC,WAAW,GAAG,yBAAyB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,IAAI;AAChG,gBAAA,eAAe,EAAE,QAAQ;AAC1B,aAAA,CACF;YACD,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC;AAEhD,YAAA,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,GAAG,CAAyB,CAAA,SAAA,EAAY,WAAW,CAAC,GAAG,CAAA,SAAA,CAAW,CAAC;AAC5G,YAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU;AAE5C,YAAA,KAAK,MAAM,cAAc,IAAI,mBAAmB,EAAE;gBAChD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,gBAAgB,EAAE;oBACrB;gBACF;AAEA,gBAAA,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACxC,gBAAA,MAAM,IAAI,CAAC,SAAS,CAClB,IAAI,CAAC,sBAAsB,EAC3B,yBAAyB,EACzB,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,gBAAgB,EAClF;oBACE,SAAS;AACT,oBAAA,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;AACxE,oBAAA,WAAW,EAAE,gBAAgB;oBAC7B,SAAS,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE;AAC/D,iBAAA,CACF;gBACD,iBAAiB,IAAI,CAAC;gBAEtB,IAAI,KAAK,GAAG,CAAC;AACb,gBAAA,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE;oBAC5C,KAAK,IAAI,CAAC;oBACV,MAAM,IAAI,CAAC,SAAS,CAClB,IAAI,CAAC,oBAAoB,EACzB,wBAAwB,EACxB,CAAC,GAAG,KACF,GAAG,CAAC,WAAW,CAAC,KAAK,SAAS;AAC9B,wBAAA,GAAG,CAAC,aAAa,CAAC,KAAK,gBAAgB;AACvC,wBAAA,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,EAAE,EACnC;wBACE,SAAS;AACT,wBAAA,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;AACxE,wBAAA,WAAW,EAAE,gBAAgB;wBAC7B,SAAS,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE;wBAC9D,YAAY,EAAE,MAAM,CAAC,EAAE;wBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC;wBACrE,KAAK;AACN,qBAAA,CACF;oBACD,gBAAgB,IAAI,CAAC;gBACvB;YACF;YAEA,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAoB,mBAAmB,EAAE;gBAC1E,WAAW,EAAE,WAAW,CAAC,GAAG;AAC5B,gBAAA,MAAM,EAAE,4BAA4B;AACrC,aAAA,CAAC;YAEF,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACnD,KAAK,MAAM,aAAa,IAAI,WAAW,CAAC,UAAU,IAAI,EAAE,EAAE;oBACxD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBAClE,IAAI,CAAC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;wBAClE;oBACF;oBAEA,IAAI,UAAU,GAAG,CAAC;AAClB,oBAAA,KAAK,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;wBAClF,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC;wBAC3D,IAAI,CAAC,YAAY,EAAE;4BACjB;wBACF;wBAEA,UAAU,IAAI,CAAC;wBACf,MAAM,IAAI,CAAC,SAAS,CAClB,IAAI,CAAC,2BAA2B,EAChC,8BAA8B,EAC9B,CAAC,GAAG,KACF,GAAG,CAAC,WAAW,CAAC,KAAK,SAAS;AAC9B,4BAAA,GAAG,CAAC,aAAa,CAAC,KAAK,gBAAgB;AACvC,4BAAA,GAAG,CAAC,SAAS,CAAC,KAAK,YAAY,EACjC;4BACE,SAAS;AACT,4BAAA,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;AACxE,4BAAA,WAAW,EAAE,gBAAgB;AAC7B,4BAAA,SAAS,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE;AACpG,4BAAA,OAAO,EAAE,YAAY;AACrB,4BAAA,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE;AAC1E,4BAAA,QAAQ,EAAE,SAAS,CAAC,QAAQ,KAAK,IAAI;AACrC,4BAAA,eAAe,EAAE,SAAS,CAAC,eAAe,KAAK,IAAI;4BACnD,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI;4BAC5F,aAAa,EACX,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG;kCACxD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa;AACxC,kCAAE,IAAI;AACV,4BAAA,KAAK,EAAE,UAAU;AAClB,yBAAA,CACF;wBACD,sBAAsB,IAAI,CAAC;oBAC7B;gBACF;YACF;YAEA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAsB,SAAS,EAAE;AAC9D,gBAAA,GAAG,EAAE,CAAA,UAAA,EAAa,WAAW,CAAC,GAAG,CAAA,sBAAA,CAAwB;AACzD,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,MAAM,EAAE,0GAA0G;AACnH,aAAA,CAAC;YAEF,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE;gBAC3C,MAAM,eAAe,GAAG,cAAc,CAAkB,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE;gBACtF,MAAM,YAAY,GAAG,cAAc,CAAkB,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;AAChF,gBAAA,MAAM,gBAAgB,GAAG,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,SAAS;AAE/F,gBAAA,MAAM,cAAc,GAAG,wBAAwB,CAAC,IAAI,CAClD,CAAC,GAAG,KACF,GAAG,CAAC,WAAW,CAAC,KAAK,SAAS;AAC9B,oBAAA,GAAG,CAAC,aAAa,CAAC,KAAK,gBAAgB;AACvC,oBAAA,GAAG,CAAC,cAAc,CAAC,KAAK,YAAY,CACvC;gBAED,MAAM,YAAY,GAAG,cAAc,CAAkB,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;gBAChF,MAAM,WAAW,GAAG;AAClB,sBAAE,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,aAAa,CAAC,KAAK,YAAY;sBAChE,SAAS;AAEb,gBAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAClC,IAAI,CAAC,WAAW,EAChB,cAAc,EACd,CAAC,GAAG,KAAK,GAAG,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,EAAE,EACrF;oBACE,cAAc,EAAE,QAAQ,CAAC,EAAE;oBAC3B,YAAY,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;oBACrD,SAAS;AACT,oBAAA,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;oBACxE,WAAW,EAAE,gBAAgB,IAAI,EAAE;AACnC,oBAAA,SAAS,EAAE;AACT,0BAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,CAAoB,SAAS,EAAE,gBAAgB,CAAC,EAAE,IAAI;AACpG,0BAAE,SAAS;AACb,oBAAA,gBAAgB,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE;AAC1C,oBAAA,cAAc,EAAE;AACd,0BAAE;4BACE,EAAE,EAAE,cAAc,CAAC,EAAE;AACrB,4BAAA,IAAI,EAAE,cAAc,CAAC,MAAM,CAAW;AACtC,4BAAA,iBAAiB,EAAE,cAAc,CAAC,mBAAmB,CAAW;AACjE;AACH,0BAAE,SAAS;oBACb,WAAW,EAAE,SAAS,CAAC,EAAE;oBACzB,YAAY,EAAE,SAAS,CAAC,GAAG;AAC3B,oBAAA,OAAO,EAAE,SAAS,CAAC,cAAc,CAAS,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;oBAC/E,WAAW,EAAE,cAAc,CAAS,SAAS,EAAE,aAAa,CAAC,IAAI,IAAI;oBACrE,iBAAiB,EAAE,cAAc,CAAyB,SAAS,EAAE,oBAAoB,CAAC,EAAE,SAAS,IAAI,IAAI;oBAC7G,mBAAmB,EACjB,cAAc,CAA2B,SAAS,EAAE,sBAAsB,CAAC,EAAE,WAAW,IAAI,IAAI;oBAClG,iBAAiB,EAAE,cAAc,CAAyB,SAAS,EAAE,oBAAoB,CAAC,EAAE,SAAS,IAAI,IAAI;oBAC7G,mBAAmB,EACjB,cAAc,CAA2B,SAAS,EAAE,sBAAsB,CAAC,EAAE,WAAW,IAAI,IAAI;oBAClG,YAAY,EAAE,cAAc,CAAoB,SAAS,EAAE,eAAe,CAAC,EAAE,IAAI,IAAI,IAAI;AACzF,oBAAA,aAAa,EAAE,WAAW,EAAE,EAAE,IAAI,IAAI;AACtC,oBAAA,WAAW,EAAE;AACX,0BAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,cAAc,CAAW;AAC3E,0BAAE,SAAS;oBACb,cAAc,EAAE,cAAc,CAAoB,SAAS,EAAE,iBAAiB,CAAC,EAAE,IAAI,IAAI,IAAI;AAC7F,oBAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAW,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC3E,WAAW,EAAE,cAAc,CAAS,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI;oBACjE,WAAW,EAAE,cAAc,CAAS,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI;AAClE,iBAAA,CACF;gBACD,MAAM,IAAI,CAAC;AAEX,gBAAA,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,CAAqB,CAAA,OAAA,EAAU,SAAS,CAAC,GAAG,CAAA,QAAA,CAAU,CAAC;gBAC3F,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE;AAChD,oBAAA,MAAM,IAAI,CAAC,SAAS,CAClB,IAAI,CAAC,aAAa,EAClB,gBAAgB,EAChB,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,EAAE,EAC1E;wBACE,OAAO;wBACP,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAS,SAAS,EAAE,SAAS,CAAC,EAAE;wBAC1G,aAAa,EAAE,OAAO,CAAC,EAAE;AACzB,wBAAA,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI;AAClD,wBAAA,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI;wBACtD,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;AAC1C,wBAAA,gBAAgB,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;AAC3C,wBAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI;AAC3D,wBAAA,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AACpC,wBAAA,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AACrC,qBAAA,CACF;oBACD,QAAQ,IAAI,CAAC;gBACf;YACF;QACF;AAEA,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,EAAE;AAC7D,YAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACrC,SAAA,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,YAAY,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,MAAM;YACjC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,gBAAgB;YAChB,iBAAiB;YACjB,sBAAsB;YACtB,MAAM;YACN,QAAQ;SACT;IACH;;;IAMQ,MAAM,YAAY,CAAC,QAAkD,EAAA;QAC3E,IAAI,QAAQ,CAAC,uBAAuB,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC/D,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACrD,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,EAC/E,OAAO,QAAQ,KAAK,QAA6B,CAClD;AACD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE;AACT,gBAAA,OAAO,KAAK;YACd;QACF;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,UAAU;QACnB;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,GAAG,EAAE;AACP,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC;IACjG;IAEQ,MAAM,OAAO,CAAC,UAAkB,EAAA;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9E,QAAA,QAAQ,MAAM,CAAC,KAAK,IAAI,EAAE;IAC5B;IAEQ,MAAM,SAAS,CACrB,UAAkB,EAClB,KAAkB,EAClB,KAAkC,EAClC,OAAgC,EAAA;QAEhC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;AAC9D,YAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;YAChC,OAAO,QAAQ,CAAC,EAAE;QACpB;AAEA,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE;AAC9B,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE;AAClC,QAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;AACnB,QAAA,OAAO,EAAE;IACX;AAEQ,IAAA,iBAAiB,CAAC,GAAY,EAAA;AACpC,QAAA,IAAI,GAAG,KAAK,MAAM,EAAE;AAClB,YAAA,OAAO,MAAM;QACf;AACA,QAAA,IAAI,GAAG,KAAK,eAAe,EAAE;AAC3B,YAAA,OAAO,eAAe;QACxB;AACA,QAAA,OAAO,KAAK;IACd;8GAvZW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,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,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AA6ZlC,SAAS,kBAAkB,CAAC,WAAmB,EAAE,MAA8B,EAAA;AAC7E,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,IAAI,WAAW;AAC9E;;AC7bA,MAAM,IAAI,GAAG,CAAA,EAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,4BAAA,CAA8B;AAEpE;AAEA;MAGa,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAChD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;AA2D5D,IAAA;;;IArDC,MAAM,OAAO,CAAC,KAAoC,EAAA;AAChD,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjE,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,uCAAA,CAAyC,CAAC;AAC/F,iBAAA;aACF;QACH;QAEA,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA,CAAA,EAAI,IAAI,6BAA6B,CAAC;YACtE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA,CAAA,EAAI,IAAI,mCAAmC,CAAC;AAC7E,SAAA,CAAC;AAEF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC7C,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,aAAa,EAAE,SAAS;AACxB,YAAA,IAAI,EAAE,kBAAkB;AACzB,SAAA,CAAC;AAEF,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;YACxD,OAAO;AACL,gBAAA,OAAO,EAAE,IAAI;gBACb,IAAI;AACJ,gBAAA,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,8BAAA,CAAgC,EAAE;AACpF,wBAAA,MAAM,EAAE;4BACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,yBAAA;qBACF,CAAC;AACH,iBAAA;aACF;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,6BAAA,CAA+B,CAAC;AAC/F,YAAA,IAAI,IAAI,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,QAAQ;YAC5D,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACvD,gBAAA,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,oCAAA,CAAsC,CAAC;YAC9F;YACA,OAAO;AACL,gBAAA,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,EAAE,IAAI,EAAE;aAClB;QACH;gBAAU;YACR,cAAc,CAAC,KAAK,EAAE;QACxB;IACF;8GA7DW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,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,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
@@ -3,7 +3,6 @@ import { AXToastService } from '@acorex/components/toast';
3
3
  import * as i0 from '@angular/core';
4
4
  import { inject, Injectable } from '@angular/core';
5
5
 
6
- //#region ---- Imports ----
7
6
  //#endregion
8
7
  //#region ---- Input parsing ----
9
8
  function parseSendInput(raw) {
@@ -70,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
70
69
  }] });
71
70
 
72
71
  export { NotificationManagementEmailSendMockCommand };
73
- //# sourceMappingURL=acorex-connectivity-mock-notification-management-email-send.command-Df6E-9-c.mjs.map
72
+ //# sourceMappingURL=acorex-connectivity-mock-notification-management-email-send.command-BuH_Lm6V.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-notification-management-email-send.command-BuH_Lm6V.mjs","sources":["../../../../libs/connectivity/mock/src/lib/notification-management/commands/notification-management-email-send.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand } from '@acorex/platform/runtime-contracts';\nimport { AXPDataGenerator, AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\nimport type {\n NotificationManagementEmailSendInput,\n NotificationManagementEmailSendResult,\n} from '@acorex/modules/notification-management';\nimport { AXToastService } from '@acorex/components/toast';\nimport { inject, Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Input parsing ----\n\nfunction parseSendInput(\n raw: unknown,\n): { ok: true; value: NotificationManagementEmailSendInput } | { ok: false; error: string } {\n const obj =\n raw != null && typeof raw === 'object' && !Array.isArray(raw) ? (raw as Record<string, unknown>) : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const to = typeof obj['to'] === 'string' ? obj['to'].trim() : '';\n const subject = typeof obj['subject'] === 'string' ? obj['subject'].trim() : '';\n const body = typeof obj['body'] === 'string' ? obj['body'].trim() : '';\n if (!to) {\n return { ok: false, error: 'Invalid arguments: \"to\" is required.' };\n }\n if (!subject) {\n return { ok: false, error: 'Invalid arguments: \"subject\" is required.' };\n }\n if (!body) {\n return { ok: false, error: 'Invalid arguments: \"body\" is required.' };\n }\n const cc = typeof obj['cc'] === 'string' ? obj['cc'].trim() : '';\n const bcc = typeof obj['bcc'] === 'string' ? obj['bcc'].trim() : '';\n const tid = typeof obj['textTemplateId'] === 'string' ? obj['textTemplateId'].trim() : '';\n return {\n ok: true,\n value: {\n to,\n subject,\n body,\n ...(cc ? { cc } : {}),\n ...(bcc ? { bcc } : {}),\n ...(tid ? { textTemplateId: tid } : {}),\n },\n };\n}\n\n//#endregion\n\n//#region ---- Mock send command ----\n\nconst MOCK_SEND_LATENCY_MS = 120;\n\n@Injectable()\nexport class NotificationManagementEmailSendMockCommand\n implements AXPCommand<NotificationManagementEmailSendInput, NotificationManagementEmailSendResult> {\n private readonly toastService = inject(AXToastService);\n\n async execute(\n input: NotificationManagementEmailSendInput,\n ): Promise<AXPExecuteCommandResult<NotificationManagementEmailSendResult>> {\n await new Promise<void>((resolve) => setTimeout(resolve, MOCK_SEND_LATENCY_MS));\n const parsed = parseSendInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n // Mock transport: surface as UI toast only; replace with HTTP when backend exists.\n this.toastService.show({\n color: 'warning',\n title: 'Email send (simulation)',\n content: `No email was delivered — mock only.\\n To: ${parsed.value.to}.\\n Subject: ${parsed.value.subject}.`,\n });\n return {\n success: true,\n data: { messageId: AXPDataGenerator.uuid() },\n };\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-connectivity-mock-sample.command-CJmDL4pL.mjs","sources":["../../../../libs/connectivity/mock/src/lib/report-management/sample.command.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\nimport { AXPCommand } from '@acorex/platform/runtime';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMReportSampleActionExecuteCommand implements AXPCommand<any, void> {\n\n //#region ---- Command Implementation ----\n\n async execute(context: any): Promise<AXPExecuteCommandResult<void>> {\n console.log('ReportManagement.Report:SampleAction', context);\n return {\n success: true,\n };\n }\n\n //#endregion\n} "],"names":[],"mappings":";;;MAQa,mCAAmC,CAAA;;IAI9C,MAAM,OAAO,CAAC,OAAY,EAAA;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,OAAO,CAAC;QAC5D,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;SACd;IACH;8GATW,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnC,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,mCAAmC,cAFlC,MAAM,EAAA,CAAA,CAAA;;2FAEP,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAH/C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;;;"}
1
+ {"version":3,"file":"acorex-connectivity-mock-sample.command-CJmDL4pL.mjs","sources":["../../../../libs/connectivity/mock/src/lib/report-management/sample.command.ts"],"sourcesContent":["import { AXPCommand } from '@acorex/platform/runtime-contracts';\nimport { Injectable } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMReportSampleActionExecuteCommand implements AXPCommand<any, void> {\n\n //#region ---- Command Implementation ----\n\n async execute(context: any): Promise<AXPExecuteCommandResult<void>> {\n console.log('ReportManagement.Report:SampleAction', context);\n return {\n success: true,\n };\n }\n\n //#endregion\n} "],"names":[],"mappings":";;;MAOa,mCAAmC,CAAA;;IAI9C,MAAM,OAAO,CAAC,OAAY,EAAA;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,OAAO,CAAC;QAC5D,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;SACd;IACH;8GATW,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnC,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,mCAAmC,cAFlC,MAAM,EAAA,CAAA,CAAA;;2FAEP,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAH/C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-connectivity-mock-structured-text-completion.command-l31pjl9-.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/structured-text-completion.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport type { AXPAiChatMessage } from '@acorex/modules/ai-management';\nimport type { AXPAiStructuredTextCompletionOptions } from '../ai-engine.mock-types';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPAiEngine } from '@acorex/modules/ai-management';\n\nimport type { AXCAiEngine } from '../ai-agent-engine';\n\n//#endregion\n\n//#region ---- Command ----\n\nexport interface AiManagementStructuredTextCompletionInput {\n assistId?: string;\n modelEntityId?: string;\n modelId?: string;\n messages: AXPAiChatMessage[];\n maxTokens?: number;\n temperature?: number;\n}\n\n@Injectable()\nexport class AiManagementStructuredTextCompletionCommand\n implements AXPCommand<AiManagementStructuredTextCompletionInput, { text: string }>\n{\n private readonly engine = inject(AXPAiEngine) as AXCAiEngine;\n\n async execute(\n input: AiManagementStructuredTextCompletionInput,\n ): Promise<AXPExecuteCommandResult<{ text: string }>> {\n if (!Array.isArray(input.messages) || input.messages.length === 0) {\n return { success: false, message: { text: 'Invalid arguments: \"messages\" is required.' } };\n }\n const options: AXPAiStructuredTextCompletionOptions = {\n assistId: input.assistId,\n modelEntityId: input.modelEntityId,\n modelId: input.modelId,\n messages: input.messages,\n maxTokens: input.maxTokens,\n temperature: input.temperature,\n };\n try {\n const { text } = await this.engine.completeStructuredText(options);\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":";;;;MAyBa,2CAA2C,CAAA;AADxD,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,WAAW,CAAgB;AAwB7D,IAAA;IAtBC,MAAM,OAAO,CACX,KAAgD,EAAA;AAEhD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACjE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,4CAA4C,EAAE,EAAE;QAC5F;AACA,QAAA,MAAM,OAAO,GAAyC;YACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B;AACD,QAAA,IAAI;AACF,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;QAC1C;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AACtD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACnD;IACF;8GA1BW,2CAA2C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3C,2CAA2C,EAAA,CAAA,CAAA;;2FAA3C,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBADvD;;;;;"}
1
+ {"version":3,"file":"acorex-connectivity-mock-structured-text-completion.command-l31pjl9-.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/structured-text-completion.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand } from '@acorex/platform/runtime-contracts';\nimport type { AXPAiChatMessage } from '@acorex/modules/ai-management';\nimport type { AXPAiStructuredTextCompletionOptions } from '../ai-engine.mock-types';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/contracts';\n\nimport { AXPAiEngine } from '@acorex/modules/ai-management';\n\nimport type { AXCAiEngine } from '../ai-agent-engine';\n\n//#endregion\n\n//#region ---- Command ----\n\nexport interface AiManagementStructuredTextCompletionInput {\n assistId?: string;\n modelEntityId?: string;\n modelId?: string;\n messages: AXPAiChatMessage[];\n maxTokens?: number;\n temperature?: number;\n}\n\n@Injectable()\nexport class AiManagementStructuredTextCompletionCommand\n implements AXPCommand<AiManagementStructuredTextCompletionInput, { text: string }>\n{\n private readonly engine = inject(AXPAiEngine) as AXCAiEngine;\n\n async execute(\n input: AiManagementStructuredTextCompletionInput,\n ): Promise<AXPExecuteCommandResult<{ text: string }>> {\n if (!Array.isArray(input.messages) || input.messages.length === 0) {\n return { success: false, message: { text: 'Invalid arguments: \"messages\" is required.' } };\n }\n const options: AXPAiStructuredTextCompletionOptions = {\n assistId: input.assistId,\n modelEntityId: input.modelEntityId,\n modelId: input.modelId,\n messages: input.messages,\n maxTokens: input.maxTokens,\n temperature: input.temperature,\n };\n try {\n const { text } = await this.engine.completeStructuredText(options);\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":";;;;MA0Ba,2CAA2C,CAAA;AADxD,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,WAAW,CAAgB;AAwB7D,IAAA;IAtBC,MAAM,OAAO,CACX,KAAgD,EAAA;AAEhD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACjE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,4CAA4C,EAAE,EAAE;QAC5F;AACA,QAAA,MAAM,OAAO,GAAyC;YACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B;AACD,QAAA,IAAI;AACF,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;QAC1C;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AACtD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACnD;IACF;8GA1BW,2CAA2C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA3C,2CAA2C,EAAA,CAAA,CAAA;;2FAA3C,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBADvD;;;;;"}
@@ -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-B5bnzTKN.mjs';
3
+ import { m as mockUsers } from './acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs';
4
4
 
5
5
  //#endregion
6
6
  /**
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
27
27
  }] });
28
28
 
29
29
  export { UserRolesForListColumnQuery };
30
- //# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-DVuh_6NC.mjs.map
30
+ //# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-user-roles-for-list-column.query-wRFHOp-X.mjs","sources":["../../../../libs/connectivity/mock/src/lib/security-management/user/user-roles-for-list-column.query.ts"],"sourcesContent":["\nimport { AXPQuery } from '@acorex/platform/runtime-contracts';\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 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":";;;;AAeA;AAEA;;AAEG;MAEU,2BAA2B,CAAA;IACtC,MAAM,KAAK,CAAC,KAAuC,EAAA;QACjD,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;8GAXW,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,3 +1,3 @@
1
- export { f as ACTIVITY_CATEGORIES, g as ACTIVITY_CATEGORY_ID_BY_KEY, h as ACTIVITY_DEFINITIONS, i as AI_ASSIST_MOCK, j as AI_MODEL_MOCK, k as APPLICATIONS, l as APPLICATION_CATEGORY_IDS, n as APPLICATION_CATEGORY_MOCKS, o as AXCActivityCategorySeeder, p as AXCActivityDefinitionSeeder, q as AXCAiAssistSeeder, s as AXCAiManagementMockModule, t as AXCAiModelSeeder, u as AXCAppTermDataSeeder, v as AXCAppVersionDataSeeder, w as AXCApplicationCategoryDataSeeder, x as AXCApplicationDataSeeder, y as AXCApplicationManagementMockModule, z as AXCAssessmentManagementMockModule, B as AXCAssetManagementMockModule, C as AXCAuthMockModule, D as AXCCalendarDataSeeder, E as AXCCalendarManagementMockModule, F as AXCCalendarOccasionDataSeeder, G as AXCCommandRegistryDataSeeder, H as AXCCommonMockModule, I as AXCContactCoreMockModule, J as AXCContentManagementMockModule, K as AXCConversationMockModule, L as AXCConversationMockUploaderService, M as AXCCustomerManagementMockModule, N as AXCDashboardManagementMockModule, P as AXCDataManagementMockModule, Q as AXCDexieEntityStorageService, R as AXCDocumentManagementMockModule, S as AXCEditionDataSeeder, T as AXCEntityDefinitionSeederService, U as AXCEntityDefinitionsModule, V as AXCEntityStorageInsertCommand, W as AXCEntityStorageModule, X as AXCEntityStorageQueryQuery, Y as AXCFileStorageServiceDexie, Z as AXCFileStorageServiceFirestore, _ as AXCFinancialCoreMockModule, $ as AXCFirestoreEntityStorageService, a0 as AXCFormTemplateManagementMockModule, a1 as AXCGoogleStrategyMock, a2 as AXCHealthCoreMockModule, a3 as AXCHelpDeskMockModule, a4 as AXCHumanCapitalManagementMockModule, a5 as AXCIdentifierManagementMockModule, a6 as AXCImageCaptchaChallengeProviderMock, a7 as AXCIntegrationLifecycleEventsService, a8 as AXCIntegrationManagementMockModule, a9 as AXCIntegrationOAuthMockService, aa as AXCIntegrationSecretStoreMock, ab as AXCIntegrationTokenRefreshService, ac as AXCJiraManagementMockModule, ad as AXCLearningManagementMockModule, ae as AXCLocaleManagementMockModule, af as AXCLocationManagementMockModule, ag as AXCLockService, ah as AXCMeasurementCoreMockModule, ai as AXCMeetingManagementMockModule, aj as AXCMetaDataDefinitionDataSeeder, ak as AXCMetadataCategorySeeder, al as AXCMiddlewaresModule, am as AXCMockCaptchaChallengeComponent, an as AXCMockEntityLogListener, ao as AXCMockModule, ap as AXCMockShowMetaDataFormPopupCommand, aq as AXCNotificationManagementMockModule, ar as AXCOrderManagementMockModule, as as AXCOrganizationManagementMockModule, at as AXCPersonCoreMockModule, au as AXCPlatformManagementMockModule, av as AXCProcurementManagementMockModule, aw as AXCProductCatalogMockModule, ax as AXCProjectManagementMockModule, ay as AXCQueryRegistryDataSeeder, az as AXCReportManagementMockModule, aA as AXCSecurityManagementMockModule, aB as AXCStoredEntityDefinitionLoader, aC as AXCSubscriptionManagementMockModule, aD as AXCSupplierManagementMockModule, aE as AXCTaskManagementMockModule, aF as AXCTenantManagementMockModule, aG as AXCTenantSeeder, aH as AXCTextTemplateRenderBackend, aI as AXCTokensDataSeeder, aJ as AXCUserPassStrategyMock, aK as AXCVersionDB, aL as AXCVersioningService, aM as AXCWidgetCatalogDataSeeder, aN as AXCWorkflowCategorySeeder, aO as AXCWorkflowDefinitionDataSeeder, aP as AXCWorkflowEngine, aQ as AXCWorkflowExecutionDB, aR as AXCWorkflowExecutionStoreDexie, aS as AXCWorkflowExecutionStoreFirestore, aT as AXCWorkflowInstanceCartableDemoSeeder, aU as AXCWorkflowManagementMockModule, aV as AXC_ENTITY_STORAGE_BACKEND_TYPE, aW as AXC_FIRESTORE_CONFIG, aX as AXC_FIRESTORE_DB, aY as AXC_WORKFLOW_EXECUTION_STORE, aZ as AXMAiDemisAssistAgentUuid, a_ as AXMAiDemisAssistId, a$ as AXMAiDemisGeneralAssistId, a as AXMAiModelStableIds, b0 as AXMAiPlatformAssistantAssistId, b1 as AXMAutomationDataSeeder, b2 as AXMBusinessUnitDataSeeder, b3 as AXMCalendarOccasionTypeSeeder, b4 as AXMDashboardChartDataSourceDefinition, b5 as AXMEmployeeDataSeeder, b6 as AXMEmploymentTypeDataSeeder, b7 as AXMFormDataSourcesProvider, b8 as AXMJiraManagementMockIds, b9 as AXMJobDefinitionDataSeeder, ba as AXMJobLevelDataSeeder, bb as AXMLeaveRequestDataSeeder, bc as AXMMeetingDataSeeder, bd as AXMMeetingFilesDataSeeder, be as AXMMeetingParticipantDataSeeder, bf as AXMMeetingRoleTypeDataSeeder, bg as AXMMeetingSessionDataSeeder, bh as AXMMeetingTypeDataSeeder, bi as AXMMeetingTypeFileTemplateDataSeeder, bj as AXMPositionAssignmentDataSeeder, bk as AXMPositionDataSeeder, bl as AXMQuestionBankItemCategoryDataSeeder, bm as AXMQuestionBankItemDataSeeder, bn as AXMQuestionnaireCategoryDataSeeder, bo as AXMQuestionnaireDataSeeder, bp as AXMResponsibilityDataSeeder, bq as AXMTagDataSeeder, br as AXMTeamBusinessUnitDataSeeder, bs as AXMTeamDataSeeder, bt as AXMTeamMemberDataSeeder, bu as AXMTeamMemberRoleDataSeeder, bv as AXMWorkflowDashboardChartDataSourceDefinition, bw as AXM_AI_REGISTRY_COMMAND_NAME, bx as AXM_AI_REGISTRY_QUERY_NAME, by as AXM_CORPORATE_BUSINESS_UNIT_ID, bz as AXPDashboardDataSeeder, bA as AXPIdentifierDB, bB as AXPMessageDataSeeder, bC as AXPMockChecksumProvider, bD as AXPMockClockProvider, bE as AXPMockIdentifierService, bF as AXPMockLookupProvider, bG as AXPMockPolicyProvider, bH as AXPMockSequenceProvider, bI as AXPRoomDataSeeder, bJ as AXPSecurityManagementRoleDataSeeder, bK as AXPSecurityManagementUserDataSeeder, bL as AXPTaskBoardPlatformManagementTaskProvider, bM as AXVChangeType, bN as BCC, bO as BOC, bP as BUSINESS_UNITS_MOCK, bQ as COLLABORATION_STANDARD, bR as CP, bS as DASHBOARDS, bT as EDITIONS, bU as EMPLOYEES_MOCK, bV as EMPLOYMENT_TYPES_MOCK, bW as ENTITY_DEFINITION_MAP, bX as ENTITY_REGISTRY, bY as G, bZ as HR_ENTERPRISE, b_ as HW, b$ as JOB_DEFINITIONS_CATEGORY_MOCK, c0 as JOB_DEFINITIONS_MOCK, c1 as JOB_DEFINITION_CATEGORY_KEY_TO_ID, c2 as JOB_LEVELS_MOCK, c3 as LASER_PLUMBING_TENANT_ID, c4 as LEAVE_REQUESTS_MOCK, c5 as MAGFA_COMMERCE_STANDARD, c6 as MAGFA_CONVERSATION_DASHBOARD, c7 as MAGFA_TENANT_ID, c8 as METADATA_CATEGORY_IDS, c9 as METADATA_GENERAL_CATEGORY_REFS, ca as METADATA_SYSTEM_CATEGORY_REFS, cb as MLC, cc as MOCK_CALENDAR_AUSTRALIA_ID, cd as MOCK_CALENDAR_INTERNATIONAL_GREGORIAN_ID, ce as MOCK_CALENDAR_IRAN_PERSIAN_ID, cf as MOCK_CALENDAR_NEW_ZEALAND_ID, cg as MOCK_DATA_SEED_VERSION, ch as MOCK_ENTITY_SEED_META_KEY, ci as OHR, cj as OWNERSHIP_FILTER_BYPASS, ck as PLATFORM_CONSOLE, cl as PLATFORM_TENANT_ID, cm as PM, cn as POSITIONS_CATEGORY_MOCK, co as POSITIONS_MOCK, cp as POSITION_ASSIGNMENTS_MOCK, cq as QCP, cr as QGEN, cs as QHW, ct as QOHR, cu as QPM, cv as QTLE, cw as QUESTIONNAIRE_CATEGORY_MOCK, cx as QUESTION_BANK_ITEM_CATEGORY_MOCK, cy as QWS, cz as RESPONSIBILITIES_CATEGORY_MOCK, cA as RESPONSIBILITIES_MOCK, cB as RESPONSIBILITY_CATEGORY_KEY_TO_ID, cC as SAFETYMINDER_BASIC, cD as SAFETYMINDER_ENTERPRISE, cE as SAFETYMINDER_PROFESSIONAL, cF as TAGS_MOCK, cG as TASKS, cH as TASK_STATUSES, cI as TASK_TEMPLATES, cJ as TASK_TYPES, cK as TEAMS_CATEGORY_MOCK, cL as TEAMS_MOCK, cM as TEAM_BUSINESS_UNITS_MOCK, cN as TEAM_CATEGORY_KEY_TO_ID, cO as TEAM_MEMBERS_MOCK, cP as TEAM_MEMBER_ROLES_MOCK, cQ as TIMEPLICITY_TENANT_ID, cR as TLA, cS as TOKENS, cT as TPC, cU as VISIBILITY_FILTER_BYPASS, cV as WORKFLOW_CATEGORIES, cW as WS, cX as activityCategoryMocks, cY as activityDefinitionEntityMock, cZ as applyEntityDefinitionFirestoreSnapshot, c_ as attachmentsInterface, c$ as automationCommandMiddleware, d0 as automationMock, d1 as avatarInterface, d2 as axVersionDB, d3 as axWorkflowExecutionDB, d4 as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, d5 as axcPatchEmployeeActivePrimaryPositionRefsFromRows, d6 as axcPatchEmployeeManagerRefsFromRows, d7 as axcResolveCommandRegistrySeedId, d8 as axcResolveQueryRegistrySeedId, d9 as axcResolveWidgetCatalogSeedId, da as bankCategory, db as buildEntityStorageQuickSearchFilter, dc as buildWorkflowInstanceCartableDemoRows, dd as bypassAllFilters, de as bypassOwnershipFilter, df as bypassVisibilityFilter, dg as calendarMock, dh as calendarOccasionMock, di as calendarOccasionSeedData, dj as calendarOccasionTypeMockData, dk as checkboxInterface, dl as childCountMiddleware, dm as clearEntityDefinitionFirestoreCollections, dn as colorInterface, dp as computeDiff, dq as contactInterface, dr as createFileCastMiddleware, ds as createWidgetLayoutConfig, dt as createWorkflowDefinitionEntityMock, du as dateInterface, dv as dateTimeInterface, dw as descriptionInterface, dx as documentFolderSyncMiddleware, dy as emailInterface, dz as enrichCalendarOccasionForStorage, dA as enrichWorkflowGraph, dB as entityDefDb, dC as entityValidationMiddleware, dD as finalizeActivityCategoryItemCounts, dE as findEmployeeById, dF as folderStorageMiddleware, dG as groupOrderItemCalculatorMiddleware, dH as historyMiddleware, dI as identifierCommitMiddleware, dJ as imageInterface, dK as inspectionOkXNaInterface, dL as loadMockPropertyDefinitions, dM as lockGuardMiddleware, dN as longTextAnswerInterface, dO as lookupInterface, dP as lookupResolverMiddleware, dQ as mapInterface, dR as meetingFilesMock, dS as meetingIds, dT as meetingMock, dU as meetingParticipantMock, dV as meetingRoleTypeMock, dW as meetingSessionMock, dX as meetingTimeSlotMock, dY as meetingTypeFileTemplateMock, dZ as meetingTypeMock, d_ as mergeDetailRelationMiddleware, d$ as mergeQuickSearchIntoRequest, e0 as metadataCategoryMocks, e1 as mockQuestionBankItemByName, e2 as mockRoleDefinitions, m as mockUsers, e3 as multipleChoiceInterface, e4 as multipleSelectInterface, e5 as normalizeAnyFileArrayForView, e6 as normalizeSnapshotFileFieldsForView, e7 as numberInterface, e8 as parseEntityStorageInsertData, e9 as parseEntityStorageQueryRequest, ea as participantIds, eb as passwordInterface, ec as personIdentifierTypeMock, ed as personIds, ee as personLegalIds, ef as personMock, eg as personNaturalIds, eh as phoneInterface, ei as primaryMiddleware, ej as provideMockPropertySetups, ek as qrcodeInterface, el as questionBankItemMock, em as questionnaireMock, en as ratingInterface, eo as richTextInterface, ep as scaleInterface, eq as selectInterface, er as selectionListInterface, es as sexAtBirthInterface, et as signatureInterface, eu as statusDefaultMiddleware, ev as tagInterface, ew as tenantMocks, ex as textAreaInterface, ey as textInterface, ez as timeDurationInterface, eA as titleInterface, eB as toUiRows, eC as toggleInterface, eD as tokenCategoryIds, eE as tokenCategoryMocks, eF as urlInterface, eG as versionInterface, eH as visibilityFilterMiddleware, eI as workflowDefinitionEntityMock, eJ as workflowDefinitionIds, eK as workflowDefinitionMock, eL as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-B5bnzTKN.mjs';
1
+ export { f as ACTIVITY_CATEGORIES, g as ACTIVITY_CATEGORY_ID_BY_KEY, h as ACTIVITY_DEFINITIONS, i as AI_ASSIST_MOCK, j as AI_MODEL_MOCK, k as APPLICATIONS, l as APPLICATION_CATEGORY_IDS, n as APPLICATION_CATEGORY_MOCKS, o as AXCActivityCategorySeeder, p as AXCActivityDefinitionSeeder, q as AXCAiAssistSeeder, s as AXCAiManagementMockModule, t as AXCAiModelSeeder, u as AXCAppTermDataSeeder, v as AXCAppVersionDataSeeder, w as AXCApplicationCategoryDataSeeder, x as AXCApplicationDataSeeder, y as AXCApplicationManagementMockModule, z as AXCAssessmentManagementMockModule, B as AXCAssetManagementMockModule, C as AXCAuthMockModule, D as AXCCalendarDataSeeder, E as AXCCalendarManagementMockModule, F as AXCCalendarOccasionDataSeeder, G as AXCCommandRegistryDataSeeder, H as AXCCommonMockModule, I as AXCContactCoreMockModule, J as AXCContentManagementMockModule, K as AXCConversationMockModule, L as AXCConversationMockUploaderService, M as AXCCustomerManagementMockModule, N as AXCDashboardManagementMockModule, P as AXCDataManagementMockModule, Q as AXCDexieEntityStorageService, R as AXCDocumentManagementMockModule, S as AXCEditionDataSeeder, T as AXCEntityDefinitionSeederService, U as AXCEntityDefinitionsModule, V as AXCEntityStorageInsertCommand, W as AXCEntityStorageModule, X as AXCEntityStorageQueryQuery, Y as AXCFileStorageServiceDexie, Z as AXCFileStorageServiceFirestore, _ as AXCFinancialCoreMockModule, $ as AXCFirestoreEntityStorageService, a0 as AXCFormTemplateManagementMockModule, a1 as AXCGoogleStrategyMock, a2 as AXCHealthCoreMockModule, a3 as AXCHelpDeskMockModule, a4 as AXCHumanCapitalManagementMockModule, a5 as AXCIdentifierManagementMockModule, a6 as AXCImageCaptchaChallengeProviderMock, a7 as AXCIntegrationLifecycleEventsService, a8 as AXCIntegrationManagementMockModule, a9 as AXCIntegrationOAuthMockService, aa as AXCIntegrationSecretStoreMock, ab as AXCIntegrationTokenRefreshService, ac as AXCJiraManagementMockModule, ad as AXCLearningManagementMockModule, ae as AXCLocaleManagementMockModule, af as AXCLocationManagementMockModule, ag as AXCLockService, ah as AXCMeasurementCoreMockModule, ai as AXCMeetingManagementMockModule, aj as AXCMetaDataDefinitionDataSeeder, ak as AXCMetadataCategorySeeder, al as AXCMiddlewaresModule, am as AXCMockCaptchaChallengeComponent, an as AXCMockEntityLogListener, ao as AXCMockModule, ap as AXCMockShowMetaDataFormPopupCommand, aq as AXCNotificationManagementMockModule, ar as AXCOrderManagementMockModule, as as AXCOrganizationManagementMockModule, at as AXCPersonCoreMockModule, au as AXCPlatformManagementMockModule, av as AXCProcurementManagementMockModule, aw as AXCProductCatalogMockModule, ax as AXCProjectManagementMockModule, ay as AXCQueryRegistryDataSeeder, az as AXCReportManagementMockModule, aA as AXCSecurityManagementMockModule, aB as AXCStoredEntityDefinitionLoader, aC as AXCSubscriptionManagementMockModule, aD as AXCSupplierManagementMockModule, aE as AXCTaskManagementMockModule, aF as AXCTenantManagementMockModule, aG as AXCTenantSeeder, aH as AXCTextTemplateRenderBackend, aI as AXCTokensDataSeeder, aJ as AXCUserPassStrategyMock, aK as AXCVersionDB, aL as AXCVersioningService, aM as AXCWidgetCatalogDataSeeder, aN as AXCWorkflowCategorySeeder, aO as AXCWorkflowDefinitionDataSeeder, aP as AXCWorkflowEngine, aQ as AXCWorkflowExecutionDB, aR as AXCWorkflowExecutionStoreDexie, aS as AXCWorkflowExecutionStoreFirestore, aT as AXCWorkflowInstanceCartableDemoSeeder, aU as AXCWorkflowManagementMockModule, aV as AXC_ENTITY_STORAGE_BACKEND_TYPE, aW as AXC_FIRESTORE_CONFIG, aX as AXC_FIRESTORE_DB, aY as AXC_WORKFLOW_EXECUTION_STORE, aZ as AXMAiDemisAssistAgentUuid, a_ as AXMAiDemisAssistId, a$ as AXMAiDemisGeneralAssistId, a as AXMAiModelStableIds, b0 as AXMAiPlatformAssistantAssistId, b1 as AXMAutomationDataSeeder, b2 as AXMBusinessUnitDataSeeder, b3 as AXMCalendarOccasionTypeSeeder, b4 as AXMDashboardChartDataSourceDefinition, b5 as AXMEmployeeDataSeeder, b6 as AXMEmploymentTypeDataSeeder, b7 as AXMFormDataSourcesProvider, b8 as AXMJiraManagementMockIds, b9 as AXMJobDefinitionDataSeeder, ba as AXMJobLevelDataSeeder, bb as AXMLeaveRequestDataSeeder, bc as AXMMeetingDataSeeder, bd as AXMMeetingFilesDataSeeder, be as AXMMeetingParticipantDataSeeder, bf as AXMMeetingRoleTypeDataSeeder, bg as AXMMeetingSessionDataSeeder, bh as AXMMeetingTypeDataSeeder, bi as AXMMeetingTypeFileTemplateDataSeeder, bj as AXMPositionAssignmentDataSeeder, bk as AXMPositionDataSeeder, bl as AXMQuestionBankItemCategoryDataSeeder, bm as AXMQuestionBankItemDataSeeder, bn as AXMQuestionnaireCategoryDataSeeder, bo as AXMQuestionnaireDataSeeder, bp as AXMResponsibilityDataSeeder, bq as AXMTagDataSeeder, br as AXMTeamBusinessUnitDataSeeder, bs as AXMTeamDataSeeder, bt as AXMTeamMemberDataSeeder, bu as AXMTeamMemberRoleDataSeeder, bv as AXMWorkflowDashboardChartDataSourceDefinition, bw as AXM_AI_REGISTRY_COMMAND_NAME, bx as AXM_AI_REGISTRY_QUERY_NAME, by as AXM_CORPORATE_BUSINESS_UNIT_ID, bz as AXPDashboardDataSeeder, bA as AXPIdentifierDB, bB as AXPMessageDataSeeder, bC as AXPMockChecksumProvider, bD as AXPMockClockProvider, bE as AXPMockIdentifierService, bF as AXPMockLookupProvider, bG as AXPMockPolicyProvider, bH as AXPMockSequenceProvider, bI as AXPRoomDataSeeder, bJ as AXPSecurityManagementRoleDataSeeder, bK as AXPSecurityManagementUserDataSeeder, bL as AXPTaskBoardPlatformManagementTaskProvider, bM as AXVChangeType, bN as BCC, bO as BOC, bP as BUSINESS_UNITS_MOCK, bQ as COLLABORATION_STANDARD, bR as CP, bS as DASHBOARDS, bT as EDITIONS, bU as EMPLOYEES_MOCK, bV as EMPLOYMENT_TYPES_MOCK, bW as ENTITY_DEFINITION_MAP, bX as ENTITY_REGISTRY, bY as G, bZ as HR_ENTERPRISE, b_ as HW, b$ as JOB_DEFINITIONS_CATEGORY_MOCK, c0 as JOB_DEFINITIONS_MOCK, c1 as JOB_DEFINITION_CATEGORY_KEY_TO_ID, c2 as JOB_LEVELS_MOCK, c3 as LASER_PLUMBING_TENANT_ID, c4 as LEAVE_REQUESTS_MOCK, c5 as MAGFA_COMMERCE_STANDARD, c6 as MAGFA_CONVERSATION_DASHBOARD, c7 as MAGFA_TENANT_ID, c8 as METADATA_CATEGORY_IDS, c9 as METADATA_GENERAL_CATEGORY_REFS, ca as METADATA_SYSTEM_CATEGORY_REFS, cb as MLC, cc as MOCK_CALENDAR_AUSTRALIA_ID, cd as MOCK_CALENDAR_INTERNATIONAL_GREGORIAN_ID, ce as MOCK_CALENDAR_IRAN_PERSIAN_ID, cf as MOCK_CALENDAR_NEW_ZEALAND_ID, cg as MOCK_DATA_SEED_VERSION, ch as MOCK_ENTITY_SEED_META_KEY, ci as OHR, cj as OWNERSHIP_FILTER_BYPASS, ck as PLATFORM_CONSOLE, cl as PLATFORM_TENANT_ID, cm as PM, cn as POSITIONS_CATEGORY_MOCK, co as POSITIONS_MOCK, cp as POSITION_ASSIGNMENTS_MOCK, cq as QCP, cr as QGEN, cs as QHW, ct as QOHR, cu as QPM, cv as QTLE, cw as QUESTIONNAIRE_CATEGORY_MOCK, cx as QUESTION_BANK_ITEM_CATEGORY_MOCK, cy as QWS, cz as RESPONSIBILITIES_CATEGORY_MOCK, cA as RESPONSIBILITIES_MOCK, cB as RESPONSIBILITY_CATEGORY_KEY_TO_ID, cC as SAFETYMINDER_BASIC, cD as SAFETYMINDER_ENTERPRISE, cE as SAFETYMINDER_PROFESSIONAL, cF as TAGS_MOCK, cG as TASKS, cH as TASK_STATUSES, cI as TASK_TEMPLATES, cJ as TASK_TYPES, cK as TEAMS_CATEGORY_MOCK, cL as TEAMS_MOCK, cM as TEAM_BUSINESS_UNITS_MOCK, cN as TEAM_CATEGORY_KEY_TO_ID, cO as TEAM_MEMBERS_MOCK, cP as TEAM_MEMBER_ROLES_MOCK, cQ as TIMEPLICITY_TENANT_ID, cR as TLA, cS as TOKENS, cT as TPC, cU as VISIBILITY_FILTER_BYPASS, cV as WORKFLOW_CATEGORIES, cW as WS, cX as activityCategoryMocks, cY as activityDefinitionEntityMock, cZ as applyEntityDefinitionFirestoreSnapshot, c_ as attachmentsInterface, c$ as automationCommandMiddleware, d0 as automationMock, d1 as avatarInterface, d2 as axVersionDB, d3 as axWorkflowExecutionDB, d4 as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, d5 as axcPatchEmployeeActivePrimaryPositionRefsFromRows, d6 as axcPatchEmployeeManagerRefsFromRows, d7 as axcResolveCommandRegistrySeedId, d8 as axcResolveQueryRegistrySeedId, d9 as axcResolveWidgetCatalogSeedId, da as bankCategory, db as buildEntityStorageQuickSearchFilter, dc as buildWorkflowInstanceCartableDemoRows, dd as bypassAllFilters, de as bypassOwnershipFilter, df as bypassVisibilityFilter, dg as calendarMock, dh as calendarOccasionMock, di as calendarOccasionSeedData, dj as calendarOccasionTypeMockData, dk as checkboxInterface, dl as childCountMiddleware, dm as clearEntityDefinitionFirestoreCollections, dn as colorInterface, dp as computeDiff, dq as contactInterface, dr as createFileCastMiddleware, ds as createWidgetLayoutConfig, dt as createWorkflowDefinitionEntityMock, du as dateInterface, dv as dateTimeInterface, dw as descriptionInterface, dx as documentFolderSyncMiddleware, dy as emailInterface, dz as enrichCalendarOccasionForStorage, dA as enrichWorkflowGraph, dB as entityDefDb, dC as entityValidationMiddleware, dD as finalizeActivityCategoryItemCounts, dE as findEmployeeById, dF as folderStorageMiddleware, dG as groupOrderItemCalculatorMiddleware, dH as historyMiddleware, dI as identifierCommitMiddleware, dJ as imageInterface, dK as inspectionOkXNaInterface, dL as loadMockPropertyDefinitions, dM as lockGuardMiddleware, dN as longTextAnswerInterface, dO as lookupInterface, dP as lookupResolverMiddleware, dQ as mapInterface, dR as meetingFilesMock, dS as meetingIds, dT as meetingMock, dU as meetingParticipantMock, dV as meetingRoleTypeMock, dW as meetingSessionMock, dX as meetingTimeSlotMock, dY as meetingTypeFileTemplateMock, dZ as meetingTypeMock, d_ as mergeDetailRelationMiddleware, d$ as mergeQuickSearchIntoRequest, e0 as metadataCategoryMocks, e1 as mockQuestionBankItemByName, e2 as mockRoleDefinitions, m as mockUsers, e3 as multipleChoiceInterface, e4 as multipleSelectInterface, e5 as normalizeAnyFileArrayForView, e6 as normalizeSnapshotFileFieldsForView, e7 as numberInterface, e8 as parseEntityStorageInsertData, e9 as parseEntityStorageQueryRequest, ea as participantIds, eb as passwordInterface, ec as personIdentifierTypeMock, ed as personIds, ee as personLegalIds, ef as personMock, eg as personNaturalIds, eh as phoneInterface, ei as primaryMiddleware, ej as provideMockPropertySetups, ek as qrcodeInterface, el as questionBankItemMock, em as questionnaireMock, en as ratingInterface, eo as richTextInterface, ep as scaleInterface, eq as selectInterface, er as selectionListInterface, es as sexAtBirthInterface, et as signatureInterface, eu as statusDefaultMiddleware, ev as tagInterface, ew as tenantMocks, ex as textAreaInterface, ey as textInterface, ez as timeDurationInterface, eA as titleInterface, eB as toUiRows, eC as toggleInterface, eD as tokenCategoryIds, eE as tokenCategoryMocks, eF as urlInterface, eG as versionInterface, eH as visibilityFilterMiddleware, eI as workflowDefinitionEntityMock, eJ as workflowDefinitionIds, eK as workflowDefinitionMock, eL as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-g0RVU1Og.mjs';
2
2
  export { AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY } from '@acorex/modules/content-management';
3
3
  //# 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.91",
3
+ "version": "21.0.0-next.93",
4
4
  "peerDependencies": {
5
- "@acorex/modules": "21.0.0-next.91"
5
+ "@acorex/modules": "21.0.0-next.93"
6
6
  },
7
7
  "sideEffects": false,
8
8
  "module": "fesm2022/acorex-connectivity.mjs",
@@ -1,6 +1,5 @@
1
1
  import { AXPEntityQueryAllOptions, AXPEntityQueryAllResult, AXPEntityAggregateRequest, AXPEntityAggregateOptions, AXPEntityAggregateResult } from '@acorex/platform/layout/entity-contracts';
2
- import { AXPPagedListResult } from '@acorex/platform/contracts';
3
- import { AXPQueryRequest } from '@acorex/platform/core';
2
+ import { AXPQueryRequest, AXPPagedListResult } from '@acorex/platform/contracts';
4
3
  import { AXPEntityStorageService } from '@acorex/platform/layout/entity';
5
4
  import { HttpClient } from '@angular/common/http';
6
5
  import * as i0 from '@angular/core';