@mcp-consultant-tools/powerplatform-core 26.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/auth/index.d.ts +64 -0
- package/build/auth/index.d.ts.map +1 -0
- package/build/auth/index.js +39 -0
- package/build/auth/index.js.map +1 -0
- package/build/auth/interactive-auth.d.ts +60 -0
- package/build/auth/interactive-auth.d.ts.map +1 -0
- package/build/auth/interactive-auth.js +429 -0
- package/build/auth/interactive-auth.js.map +1 -0
- package/build/auth/service-principal-auth.d.ts +26 -0
- package/build/auth/service-principal-auth.d.ts.map +1 -0
- package/build/auth/service-principal-auth.js +60 -0
- package/build/auth/service-principal-auth.js.map +1 -0
- package/build/auth/token-cache.d.ts +40 -0
- package/build/auth/token-cache.d.ts.map +1 -0
- package/build/auth/token-cache.js +108 -0
- package/build/auth/token-cache.js.map +1 -0
- package/build/client/PowerPlatformClient.d.ts +78 -0
- package/build/client/PowerPlatformClient.d.ts.map +1 -0
- package/build/client/PowerPlatformClient.js +198 -0
- package/build/client/PowerPlatformClient.js.map +1 -0
- package/build/client/index.d.ts +6 -0
- package/build/client/index.d.ts.map +1 -0
- package/build/client/index.js +6 -0
- package/build/client/index.js.map +1 -0
- package/build/client/types.d.ts +300 -0
- package/build/client/types.d.ts.map +1 -0
- package/build/client/types.js +5 -0
- package/build/client/types.js.map +1 -0
- package/build/index.d.ts +36 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +55 -0
- package/build/index.js.map +1 -0
- package/build/services/AppManagementService.d.ts +95 -0
- package/build/services/AppManagementService.d.ts.map +1 -0
- package/build/services/AppManagementService.js +322 -0
- package/build/services/AppManagementService.js.map +1 -0
- package/build/services/AppService.d.ts +39 -0
- package/build/services/AppService.d.ts.map +1 -0
- package/build/services/AppService.js +173 -0
- package/build/services/AppService.js.map +1 -0
- package/build/services/AttributeService.d.ts +28 -0
- package/build/services/AttributeService.d.ts.map +1 -0
- package/build/services/AttributeService.js +86 -0
- package/build/services/AttributeService.js.map +1 -0
- package/build/services/BusinessRuleService.d.ts +22 -0
- package/build/services/BusinessRuleService.d.ts.map +1 -0
- package/build/services/BusinessRuleService.js +85 -0
- package/build/services/BusinessRuleService.js.map +1 -0
- package/build/services/DataService.d.ts +53 -0
- package/build/services/DataService.d.ts.map +1 -0
- package/build/services/DataService.js +204 -0
- package/build/services/DataService.js.map +1 -0
- package/build/services/DependencyService.d.ts +27 -0
- package/build/services/DependencyService.d.ts.map +1 -0
- package/build/services/DependencyService.js +47 -0
- package/build/services/DependencyService.js.map +1 -0
- package/build/services/EntityService.d.ts +42 -0
- package/build/services/EntityService.d.ts.map +1 -0
- package/build/services/EntityService.js +132 -0
- package/build/services/EntityService.js.map +1 -0
- package/build/services/FlowService.d.ts +55 -0
- package/build/services/FlowService.d.ts.map +1 -0
- package/build/services/FlowService.js +608 -0
- package/build/services/FlowService.js.map +1 -0
- package/build/services/FormService.d.ts +36 -0
- package/build/services/FormService.d.ts.map +1 -0
- package/build/services/FormService.js +55 -0
- package/build/services/FormService.js.map +1 -0
- package/build/services/MetadataService.d.ts +63 -0
- package/build/services/MetadataService.d.ts.map +1 -0
- package/build/services/MetadataService.js +176 -0
- package/build/services/MetadataService.js.map +1 -0
- package/build/services/OptionSetService.d.ts +40 -0
- package/build/services/OptionSetService.d.ts.map +1 -0
- package/build/services/OptionSetService.js +91 -0
- package/build/services/OptionSetService.js.map +1 -0
- package/build/services/PluginDeploymentService.d.ts +102 -0
- package/build/services/PluginDeploymentService.d.ts.map +1 -0
- package/build/services/PluginDeploymentService.js +412 -0
- package/build/services/PluginDeploymentService.js.map +1 -0
- package/build/services/PluginService.d.ts +61 -0
- package/build/services/PluginService.d.ts.map +1 -0
- package/build/services/PluginService.js +289 -0
- package/build/services/PluginService.js.map +1 -0
- package/build/services/PublishingService.d.ts +37 -0
- package/build/services/PublishingService.d.ts.map +1 -0
- package/build/services/PublishingService.js +65 -0
- package/build/services/PublishingService.js.map +1 -0
- package/build/services/RelationshipService.d.ts +29 -0
- package/build/services/RelationshipService.d.ts.map +1 -0
- package/build/services/RelationshipService.js +46 -0
- package/build/services/RelationshipService.js.map +1 -0
- package/build/services/SolutionService.d.ts +60 -0
- package/build/services/SolutionService.d.ts.map +1 -0
- package/build/services/SolutionService.js +125 -0
- package/build/services/SolutionService.js.map +1 -0
- package/build/services/ValidationService.d.ts +31 -0
- package/build/services/ValidationService.d.ts.map +1 -0
- package/build/services/ValidationService.js +391 -0
- package/build/services/ValidationService.js.map +1 -0
- package/build/services/ViewService.d.ts +36 -0
- package/build/services/ViewService.d.ts.map +1 -0
- package/build/services/ViewService.js +55 -0
- package/build/services/ViewService.js.map +1 -0
- package/build/services/WebResourceService.d.ts +40 -0
- package/build/services/WebResourceService.d.ts.map +1 -0
- package/build/services/WebResourceService.js +64 -0
- package/build/services/WebResourceService.js.map +1 -0
- package/build/services/WorkflowManagementService.d.ts +157 -0
- package/build/services/WorkflowManagementService.d.ts.map +1 -0
- package/build/services/WorkflowManagementService.js +567 -0
- package/build/services/WorkflowManagementService.js.map +1 -0
- package/build/services/WorkflowService.d.ts +28 -0
- package/build/services/WorkflowService.d.ts.map +1 -0
- package/build/services/WorkflowService.js +285 -0
- package/build/services/WorkflowService.js.map +1 -0
- package/build/services/index.d.ts +29 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +31 -0
- package/build/services/index.js.map +1 -0
- package/build/utils/auditLogger.d.ts +76 -0
- package/build/utils/auditLogger.d.ts.map +1 -0
- package/build/utils/auditLogger.js +110 -0
- package/build/utils/auditLogger.js.map +1 -0
- package/build/utils/best-practices-formatters.d.ts +26 -0
- package/build/utils/best-practices-formatters.d.ts.map +1 -0
- package/build/utils/best-practices-formatters.js +238 -0
- package/build/utils/best-practices-formatters.js.map +1 -0
- package/build/utils/bestPractices.d.ts +150 -0
- package/build/utils/bestPractices.d.ts.map +1 -0
- package/build/utils/bestPractices.js +324 -0
- package/build/utils/bestPractices.js.map +1 -0
- package/build/utils/iconManager.d.ts +84 -0
- package/build/utils/iconManager.d.ts.map +1 -0
- package/build/utils/iconManager.js +338 -0
- package/build/utils/iconManager.js.map +1 -0
- package/build/utils/index.d.ts +11 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +18 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/prompt-templates.d.ts +9 -0
- package/build/utils/prompt-templates.d.ts.map +1 -0
- package/build/utils/prompt-templates.js +31 -0
- package/build/utils/prompt-templates.js.map +1 -0
- package/build/utils/publisherConfig.d.ts +33 -0
- package/build/utils/publisherConfig.d.ts.map +1 -0
- package/build/utils/publisherConfig.js +54 -0
- package/build/utils/publisherConfig.js.map +1 -0
- package/build/utils/rate-limiter.d.ts +108 -0
- package/build/utils/rate-limiter.d.ts.map +1 -0
- package/build/utils/rate-limiter.js +242 -0
- package/build/utils/rate-limiter.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PluginService
|
|
3
|
+
*
|
|
4
|
+
* Read-only service for plugin assemblies, types, steps, images, and trace logs.
|
|
5
|
+
*/
|
|
6
|
+
export class PluginService {
|
|
7
|
+
client;
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get all plugin assemblies in the environment
|
|
13
|
+
*/
|
|
14
|
+
async getPluginAssemblies(includeManaged = false, maxRecords = 100) {
|
|
15
|
+
const managedFilter = includeManaged ? '' : '$filter=ismanaged eq false&';
|
|
16
|
+
const assemblies = await this.client.makeRequest(`api/data/v9.2/pluginassemblies?${managedFilter}$select=pluginassemblyid,name,version,culture,publickeytoken,isolationmode,sourcetype,major,minor,createdon,modifiedon,ismanaged,ishidden&$expand=modifiedby($select=fullname)&$orderby=name&$top=${maxRecords}`);
|
|
17
|
+
// Filter out hidden assemblies and format results
|
|
18
|
+
const formattedAssemblies = assemblies.value
|
|
19
|
+
.filter((assembly) => {
|
|
20
|
+
const isHidden = assembly.ishidden?.Value !== undefined
|
|
21
|
+
? assembly.ishidden.Value
|
|
22
|
+
: assembly.ishidden;
|
|
23
|
+
return !isHidden;
|
|
24
|
+
})
|
|
25
|
+
.map((assembly) => ({
|
|
26
|
+
pluginassemblyid: assembly.pluginassemblyid,
|
|
27
|
+
name: assembly.name,
|
|
28
|
+
version: assembly.version,
|
|
29
|
+
isolationMode: assembly.isolationmode === 1
|
|
30
|
+
? 'None'
|
|
31
|
+
: assembly.isolationmode === 2
|
|
32
|
+
? 'Sandbox'
|
|
33
|
+
: 'External',
|
|
34
|
+
isManaged: assembly.ismanaged,
|
|
35
|
+
modifiedOn: assembly.modifiedon,
|
|
36
|
+
modifiedBy: assembly.modifiedby?.fullname,
|
|
37
|
+
major: assembly.major,
|
|
38
|
+
minor: assembly.minor,
|
|
39
|
+
}));
|
|
40
|
+
return {
|
|
41
|
+
totalCount: formattedAssemblies.length,
|
|
42
|
+
assemblies: formattedAssemblies,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get a plugin assembly by name with all related plugin types, steps, and images
|
|
47
|
+
*/
|
|
48
|
+
async getPluginAssemblyComplete(assemblyName, includeDisabled = false) {
|
|
49
|
+
// Get the plugin assembly
|
|
50
|
+
const assemblies = await this.client.makeRequest(`api/data/v9.2/pluginassemblies?$filter=name eq '${assemblyName}'&$select=pluginassemblyid,name,version,culture,publickeytoken,isolationmode,sourcetype,major,minor,createdon,modifiedon,ismanaged,ishidden,description&$expand=modifiedby($select=fullname)`);
|
|
51
|
+
if (!assemblies.value || assemblies.value.length === 0) {
|
|
52
|
+
throw new Error(`Plugin assembly '${assemblyName}' not found`);
|
|
53
|
+
}
|
|
54
|
+
const assembly = assemblies.value[0];
|
|
55
|
+
const assemblyId = assembly.pluginassemblyid;
|
|
56
|
+
// Get plugin types
|
|
57
|
+
const pluginTypes = await this.client.makeRequest(`api/data/v9.2/plugintypes?$filter=_pluginassemblyid_value eq ${assemblyId}&$select=plugintypeid,typename,friendlyname,name,assemblyname,description,workflowactivitygroupname`);
|
|
58
|
+
// Get all steps for each plugin type
|
|
59
|
+
const pluginTypeIds = pluginTypes.value.map((pt) => pt.plugintypeid);
|
|
60
|
+
let allSteps = [];
|
|
61
|
+
if (pluginTypeIds.length > 0) {
|
|
62
|
+
const statusFilter = includeDisabled ? '' : ' and statuscode eq 1';
|
|
63
|
+
const typeFilter = pluginTypeIds
|
|
64
|
+
.map((id) => `_plugintypeid_value eq ${id}`)
|
|
65
|
+
.join(' or ');
|
|
66
|
+
const steps = await this.client.makeRequest(`api/data/v9.2/sdkmessageprocessingsteps?$filter=(${typeFilter})${statusFilter}&$select=sdkmessageprocessingstepid,name,stage,mode,rank,statuscode,asyncautodelete,filteringattributes,supporteddeployment,configuration,description,invocationsource,_plugintypeid_value,_sdkmessagefilterid_value,_impersonatinguserid_value,_eventhandler_value&$expand=sdkmessageid($select=name),plugintypeid($select=typename),impersonatinguserid($select=fullname),modifiedby($select=fullname),sdkmessagefilterid($select=primaryobjecttypecode)&$orderby=stage,rank`);
|
|
67
|
+
allSteps = steps.value;
|
|
68
|
+
}
|
|
69
|
+
// Get all images for these steps
|
|
70
|
+
const stepIds = allSteps.map((s) => s.sdkmessageprocessingstepid);
|
|
71
|
+
let allImages = [];
|
|
72
|
+
if (stepIds.length > 0) {
|
|
73
|
+
const imageFilter = stepIds
|
|
74
|
+
.map((id) => `_sdkmessageprocessingstepid_value eq ${id}`)
|
|
75
|
+
.join(' or ');
|
|
76
|
+
const images = await this.client.makeRequest(`api/data/v9.2/sdkmessageprocessingstepimages?$filter=${imageFilter}&$select=sdkmessageprocessingstepimageid,name,imagetype,messagepropertyname,entityalias,attributes,_sdkmessageprocessingstepid_value`);
|
|
77
|
+
allImages = images.value;
|
|
78
|
+
}
|
|
79
|
+
// Attach images to their respective steps
|
|
80
|
+
const stepsWithImages = allSteps.map((step) => ({
|
|
81
|
+
...step,
|
|
82
|
+
images: allImages.filter((img) => img._sdkmessageprocessingstepid_value ===
|
|
83
|
+
step.sdkmessageprocessingstepid),
|
|
84
|
+
}));
|
|
85
|
+
// Validation checks
|
|
86
|
+
const validation = {
|
|
87
|
+
hasDisabledSteps: allSteps.some((s) => s.statuscode !== 1),
|
|
88
|
+
hasAsyncSteps: allSteps.some((s) => s.mode === 1),
|
|
89
|
+
hasSyncSteps: allSteps.some((s) => s.mode === 0),
|
|
90
|
+
stepsWithoutFilteringAttributes: stepsWithImages
|
|
91
|
+
.filter((s) => {
|
|
92
|
+
const sdkmsg = s.sdkmessageid;
|
|
93
|
+
const msgName = sdkmsg?.name;
|
|
94
|
+
return ((msgName === 'Update' || msgName === 'Delete') &&
|
|
95
|
+
!s.filteringattributes);
|
|
96
|
+
})
|
|
97
|
+
.map((s) => s.name),
|
|
98
|
+
stepsWithoutImages: stepsWithImages
|
|
99
|
+
.filter((s) => {
|
|
100
|
+
const sdkmsg = s.sdkmessageid;
|
|
101
|
+
const msgName = sdkmsg?.name;
|
|
102
|
+
return (s.images.length === 0 &&
|
|
103
|
+
(msgName === 'Update' || msgName === 'Delete'));
|
|
104
|
+
})
|
|
105
|
+
.map((s) => s.name),
|
|
106
|
+
potentialIssues: [],
|
|
107
|
+
};
|
|
108
|
+
if (validation.stepsWithoutFilteringAttributes.length > 0) {
|
|
109
|
+
validation.potentialIssues.push(`${validation.stepsWithoutFilteringAttributes.length} Update/Delete steps without filtering attributes (performance concern)`);
|
|
110
|
+
}
|
|
111
|
+
if (validation.stepsWithoutImages.length > 0) {
|
|
112
|
+
validation.potentialIssues.push(`${validation.stepsWithoutImages.length} Update/Delete steps without images (may need entity data)`);
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
assembly,
|
|
116
|
+
pluginTypes: pluginTypes.value,
|
|
117
|
+
steps: stepsWithImages,
|
|
118
|
+
validation,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get all plugins that execute on a specific entity
|
|
123
|
+
*/
|
|
124
|
+
async getEntityPluginPipeline(entityName, messageFilter, includeDisabled = false) {
|
|
125
|
+
const statusFilter = includeDisabled ? '' : ' and statuscode eq 1';
|
|
126
|
+
const msgFilter = messageFilter
|
|
127
|
+
? ` and sdkmessageid/name eq '${messageFilter}'`
|
|
128
|
+
: '';
|
|
129
|
+
const steps = await this.client.makeRequest(`api/data/v9.2/sdkmessageprocessingsteps?$filter=sdkmessagefilterid/primaryobjecttypecode eq '${entityName}'${statusFilter}${msgFilter}&$select=sdkmessageprocessingstepid,name,stage,mode,rank,statuscode,asyncautodelete,filteringattributes,supporteddeployment,configuration,description,_plugintypeid_value,_sdkmessagefilterid_value,_impersonatinguserid_value&$expand=sdkmessageid($select=name),plugintypeid($select=typename),impersonatinguserid($select=fullname),sdkmessagefilterid($select=primaryobjecttypecode)&$orderby=stage,rank`);
|
|
130
|
+
// Get assembly information for each plugin type
|
|
131
|
+
const pluginTypeIds = [
|
|
132
|
+
...new Set(steps.value
|
|
133
|
+
.map((s) => s._plugintypeid_value)
|
|
134
|
+
.filter((id) => id != null)),
|
|
135
|
+
];
|
|
136
|
+
const assemblyMap = new Map();
|
|
137
|
+
for (const typeId of pluginTypeIds) {
|
|
138
|
+
const pluginType = await this.client.makeRequest(`api/data/v9.2/plugintypes(${typeId})?$expand=pluginassemblyid($select=name,version)`);
|
|
139
|
+
assemblyMap.set(typeId, pluginType.pluginassemblyid);
|
|
140
|
+
}
|
|
141
|
+
// Get images for all steps
|
|
142
|
+
const stepIds = steps.value.map((s) => s.sdkmessageprocessingstepid);
|
|
143
|
+
let allImages = [];
|
|
144
|
+
if (stepIds.length > 0) {
|
|
145
|
+
const imageFilter = stepIds
|
|
146
|
+
.map((id) => `_sdkmessageprocessingstepid_value eq ${id}`)
|
|
147
|
+
.join(' or ');
|
|
148
|
+
const images = await this.client.makeRequest(`api/data/v9.2/sdkmessageprocessingstepimages?$filter=${imageFilter}&$select=sdkmessageprocessingstepimageid,name,imagetype,messagepropertyname,entityalias,attributes,_sdkmessageprocessingstepid_value`);
|
|
149
|
+
allImages = images.value;
|
|
150
|
+
}
|
|
151
|
+
// Format steps
|
|
152
|
+
const formattedSteps = steps.value.map((step) => {
|
|
153
|
+
const assembly = assemblyMap.get(step._plugintypeid_value);
|
|
154
|
+
const images = allImages.filter((img) => img._sdkmessageprocessingstepid_value ===
|
|
155
|
+
step.sdkmessageprocessingstepid);
|
|
156
|
+
return {
|
|
157
|
+
sdkmessageprocessingstepid: step.sdkmessageprocessingstepid,
|
|
158
|
+
name: step.name,
|
|
159
|
+
stage: step.stage,
|
|
160
|
+
stageName: step.stage === 10
|
|
161
|
+
? 'PreValidation'
|
|
162
|
+
: step.stage === 20
|
|
163
|
+
? 'PreOperation'
|
|
164
|
+
: 'PostOperation',
|
|
165
|
+
mode: step.mode,
|
|
166
|
+
modeName: step.mode === 0 ? 'Synchronous' : 'Asynchronous',
|
|
167
|
+
rank: step.rank,
|
|
168
|
+
message: step.sdkmessageid?.name,
|
|
169
|
+
pluginType: step.plugintypeid?.typename,
|
|
170
|
+
assemblyName: assembly?.name,
|
|
171
|
+
assemblyVersion: assembly?.version,
|
|
172
|
+
filteringAttributes: step.filteringattributes
|
|
173
|
+
? step.filteringattributes.split(',')
|
|
174
|
+
: [],
|
|
175
|
+
statuscode: step.statuscode,
|
|
176
|
+
enabled: step.statuscode === 1,
|
|
177
|
+
deployment: step.supporteddeployment === 0
|
|
178
|
+
? 'Server'
|
|
179
|
+
: step.supporteddeployment === 1
|
|
180
|
+
? 'Offline'
|
|
181
|
+
: 'Both',
|
|
182
|
+
impersonatingUser: step.impersonatinguserid
|
|
183
|
+
?.fullname,
|
|
184
|
+
hasPreImage: images.some((img) => img.imagetype === 0 || img.imagetype === 2),
|
|
185
|
+
hasPostImage: images.some((img) => img.imagetype === 1 || img.imagetype === 2),
|
|
186
|
+
images,
|
|
187
|
+
};
|
|
188
|
+
});
|
|
189
|
+
// Organize by message
|
|
190
|
+
const messageGroups = new Map();
|
|
191
|
+
formattedSteps.forEach((step) => {
|
|
192
|
+
if (!messageGroups.has(step.message)) {
|
|
193
|
+
messageGroups.set(step.message, {
|
|
194
|
+
messageName: step.message,
|
|
195
|
+
stages: {
|
|
196
|
+
preValidation: [],
|
|
197
|
+
preOperation: [],
|
|
198
|
+
postOperation: [],
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
const msg = messageGroups.get(step.message);
|
|
203
|
+
if (step.stage === 10)
|
|
204
|
+
msg.stages.preValidation.push(step);
|
|
205
|
+
else if (step.stage === 20)
|
|
206
|
+
msg.stages.preOperation.push(step);
|
|
207
|
+
else if (step.stage === 40)
|
|
208
|
+
msg.stages.postOperation.push(step);
|
|
209
|
+
});
|
|
210
|
+
return {
|
|
211
|
+
entity: entityName,
|
|
212
|
+
messages: Array.from(messageGroups.values()),
|
|
213
|
+
steps: formattedSteps,
|
|
214
|
+
executionOrder: formattedSteps.map((s) => s.name),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get plugin trace logs with filtering
|
|
219
|
+
*/
|
|
220
|
+
async getPluginTraceLogs(options) {
|
|
221
|
+
const { entityName, messageName, correlationId, pluginStepId, exceptionOnly = false, hoursBack = 24, maxRecords = 50, } = options;
|
|
222
|
+
// Build filter
|
|
223
|
+
const filters = [];
|
|
224
|
+
const dateThreshold = new Date();
|
|
225
|
+
dateThreshold.setHours(dateThreshold.getHours() - hoursBack);
|
|
226
|
+
filters.push(`createdon gt ${dateThreshold.toISOString()}`);
|
|
227
|
+
if (entityName)
|
|
228
|
+
filters.push(`primaryentity eq '${entityName}'`);
|
|
229
|
+
if (messageName)
|
|
230
|
+
filters.push(`messagename eq '${messageName}'`);
|
|
231
|
+
if (correlationId)
|
|
232
|
+
filters.push(`correlationid eq '${correlationId}'`);
|
|
233
|
+
if (pluginStepId)
|
|
234
|
+
filters.push(`_sdkmessageprocessingstepid_value eq ${pluginStepId}`);
|
|
235
|
+
if (exceptionOnly)
|
|
236
|
+
filters.push(`exceptiondetails ne null`);
|
|
237
|
+
const filterString = filters.join(' and ');
|
|
238
|
+
const logs = await this.client.makeRequest(`api/data/v9.2/plugintracelogs?$filter=${filterString}&$orderby=createdon desc&$top=${maxRecords}`);
|
|
239
|
+
// Parse logs for better readability
|
|
240
|
+
const parsedLogs = logs.value.map((log) => ({
|
|
241
|
+
...log,
|
|
242
|
+
modeName: log.mode === 0 ? 'Synchronous' : 'Asynchronous',
|
|
243
|
+
operationTypeName: this.getOperationTypeName(log.operationtype),
|
|
244
|
+
parsed: {
|
|
245
|
+
hasException: !!log.exceptiondetails,
|
|
246
|
+
exceptionType: log.exceptiondetails
|
|
247
|
+
? this.extractExceptionType(log.exceptiondetails)
|
|
248
|
+
: null,
|
|
249
|
+
exceptionMessage: log.exceptiondetails
|
|
250
|
+
? this.extractExceptionMessage(log.exceptiondetails)
|
|
251
|
+
: null,
|
|
252
|
+
stackTrace: log.exceptiondetails,
|
|
253
|
+
},
|
|
254
|
+
}));
|
|
255
|
+
return {
|
|
256
|
+
totalCount: parsedLogs.length,
|
|
257
|
+
logs: parsedLogs,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
getOperationTypeName(operationType) {
|
|
261
|
+
const types = {
|
|
262
|
+
0: 'None',
|
|
263
|
+
1: 'Create',
|
|
264
|
+
2: 'Update',
|
|
265
|
+
3: 'Delete',
|
|
266
|
+
4: 'Retrieve',
|
|
267
|
+
5: 'RetrieveMultiple',
|
|
268
|
+
6: 'Associate',
|
|
269
|
+
7: 'Disassociate',
|
|
270
|
+
};
|
|
271
|
+
return types[operationType] || 'Unknown';
|
|
272
|
+
}
|
|
273
|
+
extractExceptionType(exceptionDetails) {
|
|
274
|
+
const match = exceptionDetails.match(/^([^:]+):/);
|
|
275
|
+
return match ? match[1].trim() : null;
|
|
276
|
+
}
|
|
277
|
+
extractExceptionMessage(exceptionDetails) {
|
|
278
|
+
const lines = exceptionDetails.split('\n');
|
|
279
|
+
if (lines.length > 0) {
|
|
280
|
+
const firstLine = lines[0];
|
|
281
|
+
const colonIndex = firstLine.indexOf(':');
|
|
282
|
+
if (colonIndex > 0) {
|
|
283
|
+
return firstLine.substring(colonIndex + 1).trim();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return null;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=PluginService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginService.js","sourceRoot":"","sources":["../../src/services/PluginService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,iBAA0B,KAAK,EAC/B,aAAqB,GAAG;QAExB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAE1E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC9C,kCAAkC,aAAa,qMAAqM,UAAU,EAAE,CACjQ,CAAC;QAEF,kDAAkD;QAClD,MAAM,mBAAmB,GAAG,UAAU,CAAC,KAAK;aACzC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,QAAQ,GACX,QAAQ,CAAC,QAAgC,EAAE,KAAK,KAAK,SAAS;gBAC7D,CAAC,CAAE,QAAQ,CAAC,QAA+B,CAAC,KAAK;gBACjD,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxB,OAAO,CAAC,QAAQ,CAAC;QACnB,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YAC3C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,aAAa,EACX,QAAQ,CAAC,aAAa,KAAK,CAAC;gBAC1B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,QAAQ,CAAC,aAAa,KAAK,CAAC;oBAC5B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,UAAU;YAClB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,UAAU,EAAG,QAAQ,CAAC,UAAoC,EAAE,QAAQ;YACpE,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC,CAAC,CAAC;QAEN,OAAO;YACL,UAAU,EAAE,mBAAmB,CAAC,MAAM;YACtC,UAAU,EAAE,mBAAmB;SAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAC7B,YAAoB,EACpB,kBAA2B,KAAK;QAchC,0BAA0B;QAC1B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC9C,mDAAmD,YAAY,8LAA8L,CAC9P,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,oBAAoB,YAAY,aAAa,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAA0B,CAAC;QAEvD,mBAAmB;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC/C,gEAAgE,UAAU,qGAAqG,CAChL,CAAC;QAEF,qCAAqC;QACrC,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAsB,CAAC,CAAC;QAC/E,IAAI,QAAQ,GAA8B,EAAE,CAAC;QAE7C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;YACnE,MAAM,UAAU,GAAG,aAAa;iBAC7B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,0BAA0B,EAAE,EAAE,CAAC;iBAC3C,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CACzC,oDAAoD,UAAU,IAAI,YAAY,gdAAgd,CAC/hB,CAAC;YACF,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,CAAC;QAED,iCAAiC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,0BAAoC,CAAC,CAAC;QAC5E,IAAI,SAAS,GAA8B,EAAE,CAAC;QAE9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,OAAO;iBACxB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,wCAAwC,EAAE,EAAE,CAAC;iBACzD,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC1C,wDAAwD,WAAW,sIAAsI,CAC1M,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,0CAA0C;QAC1C,MAAM,eAAe,GAEjB,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,IAAI;YACP,MAAM,EAAE,SAAS,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,iCAAiC;gBACrC,IAAI,CAAC,0BAA0B,CAClC;SACF,CAAC,CAAC,CAAC;QAEJ,oBAAoB;QACpB,MAAM,UAAU,GAAG;YACjB,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC;YAC1D,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;YACjD,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;YAChD,+BAA+B,EAAE,eAAe;iBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACZ,MAAM,MAAM,GAAG,CAAC,CAAC,YAA6C,CAAC;gBAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC;gBAC7B,OAAO,CACL,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,CAAC;oBAC9C,CAAC,CAAC,CAAC,mBAAmB,CACvB,CAAC;YACJ,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC;YAC/B,kBAAkB,EAAE,eAAe;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACZ,MAAM,MAAM,GAAG,CAAC,CAAC,YAA6C,CAAC;gBAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC;gBAC7B,OAAO,CACL,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBACrB,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,CAAC,CAC/C,CAAC;YACJ,CAAC,CAAC;iBACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC;YAC/B,eAAe,EAAE,EAAc;SAChC,CAAC;QAEF,IAAI,UAAU,CAAC,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,UAAU,CAAC,eAAe,CAAC,IAAI,CAC7B,GAAG,UAAU,CAAC,+BAA+B,CAAC,MAAM,yEAAyE,CAC9H,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,UAAU,CAAC,eAAe,CAAC,IAAI,CAC7B,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM,4DAA4D,CACpG,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ;YACR,WAAW,EAAE,WAAW,CAAC,KAAK;YAC9B,KAAK,EAAE,eAAe;YACtB,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,UAAkB,EAClB,aAAsB,EACtB,kBAA2B,KAAK;QAOhC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACnE,MAAM,SAAS,GAAG,aAAa;YAC7B,CAAC,CAAC,8BAA8B,aAAa,GAAG;YAChD,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CACzC,gGAAgG,UAAU,IAAI,YAAY,GAAG,SAAS,8YAA8Y,CACrhB,CAAC;QAEF,gDAAgD;QAChD,MAAM,aAAa,GAAG;YACpB,GAAG,IAAI,GAAG,CACR,KAAK,CAAC,KAAK;iBACR,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAA6B,CAAC;iBAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAC9B;SACF,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE/C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC9C,6BAA6B,MAAM,kDAAkD,CACtF,CAAC;YACF,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACvD,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,0BAAoC,CAC9C,CAAC;QACF,IAAI,SAAS,GAA8B,EAAE,CAAC;QAE9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,OAAO;iBACxB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,wCAAwC,EAAE,EAAE,CAAC;iBACzD,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC1C,wDAAwD,WAAW,sIAAsI,CAC1M,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,eAAe;QACf,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,mBAA6B,CAGlE,CAAC;YACF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,iCAAiC;gBACrC,IAAI,CAAC,0BAA0B,CAClC,CAAC;YAEF,OAAO;gBACL,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;gBAC3D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EACP,IAAI,CAAC,KAAK,KAAK,EAAE;oBACf,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE;wBACjB,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,eAAe;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc;gBAC1D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAG,IAAI,CAAC,YAAkC,EAAE,IAAI;gBACvD,UAAU,EAAG,IAAI,CAAC,YAAsC,EAAE,QAAQ;gBAClE,YAAY,EAAE,QAAQ,EAAE,IAAI;gBAC5B,eAAe,EAAE,QAAQ,EAAE,OAAO;gBAClC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;oBAC3C,CAAC,CAAE,IAAI,CAAC,mBAA8B,CAAC,KAAK,CAAC,GAAG,CAAC;oBACjD,CAAC,CAAC,EAAE;gBACN,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,UAAU,KAAK,CAAC;gBAC9B,UAAU,EACR,IAAI,CAAC,mBAAmB,KAAK,CAAC;oBAC5B,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC;wBAC9B,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,MAAM;gBACd,iBAAiB,EAAG,IAAI,CAAC,mBAA6C;oBACpE,EAAE,QAAQ;gBACZ,WAAW,EAAE,MAAM,CAAC,IAAI,CACtB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC,CACpD;gBACD,YAAY,EAAE,MAAM,CAAC,IAAI,CACvB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC,CACpD;gBACD,MAAM;aACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,aAAa,GAAG,IAAI,GAAG,EAU1B,CAAC;QAEJ,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAiB,CAAC,EAAE,CAAC;gBAC/C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAiB,EAAE;oBACxC,WAAW,EAAE,IAAI,CAAC,OAAiB;oBACnC,MAAM,EAAE;wBACN,aAAa,EAAE,EAAE;wBACjB,YAAY,EAAE,EAAE;wBAChB,aAAa,EAAE,EAAE;qBAClB;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAiB,CAAE,CAAC;YACvD,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;gBAAE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtD,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;gBAAE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;gBAAE,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5C,KAAK,EAAE,cAAc;YACrB,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC;SAC5D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAQxB;QACC,MAAM,EACJ,UAAU,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,GAAG,KAAK,EACrB,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,EAAE,GAChB,GAAG,OAAO,CAAC;QAEZ,eAAe;QACf,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QACjC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,gBAAgB,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE5D,IAAI,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,UAAU,GAAG,CAAC,CAAC;QACjE,IAAI,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,WAAW,GAAG,CAAC,CAAC;QACjE,IAAI,aAAa;YAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,aAAa,GAAG,CAAC,CAAC;QACvE,IAAI,YAAY;YACd,OAAO,CAAC,IAAI,CAAC,wCAAwC,YAAY,EAAE,CAAC,CAAC;QACvE,IAAI,aAAa;YAAE,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CACxC,yCAAyC,YAAY,iCAAiC,UAAU,EAAE,CACnG,CAAC;QAEF,oCAAoC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,GAAG;YACN,QAAQ,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc;YACzD,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAuB,CAAC;YACzE,MAAM,EAAE;gBACN,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB;gBACpC,aAAa,EAAE,GAAG,CAAC,gBAAgB;oBACjC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,gBAA0B,CAAC;oBAC3D,CAAC,CAAC,IAAI;gBACR,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;oBACpC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,gBAA0B,CAAC;oBAC9D,CAAC,CAAC,IAAI;gBACR,UAAU,EAAE,GAAG,CAAC,gBAAgB;aACjC;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,UAAU,EAAE,UAAU,CAAC,MAAM;YAC7B,IAAI,EAAE,UAAU;SACjB,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,aAAqB;QAChD,MAAM,KAAK,GAA8B;YACvC,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,UAAU;YACb,CAAC,EAAE,kBAAkB;YACrB,CAAC,EAAE,WAAW;YACd,CAAC,EAAE,cAAc;SAClB,CAAC;QACF,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;IAC3C,CAAC;IAEO,oBAAoB,CAAC,gBAAwB;QACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAEO,uBAAuB,CAAC,gBAAwB;QACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,SAAS,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PublishingService
|
|
3
|
+
*
|
|
4
|
+
* Service for publishing customizations.
|
|
5
|
+
* Note: This service should only be used by powerplatform-customization package.
|
|
6
|
+
*/
|
|
7
|
+
import type { PowerPlatformClient } from '../client/PowerPlatformClient.js';
|
|
8
|
+
export declare class PublishingService {
|
|
9
|
+
private client;
|
|
10
|
+
constructor(client: PowerPlatformClient);
|
|
11
|
+
/**
|
|
12
|
+
* Publish all customizations
|
|
13
|
+
*/
|
|
14
|
+
publishAllCustomizations(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Publish specific customizations
|
|
17
|
+
*/
|
|
18
|
+
publishXml(parameterXml: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Publish specific entity
|
|
21
|
+
*/
|
|
22
|
+
publishEntity(entityLogicalName: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Publish specific component
|
|
25
|
+
*/
|
|
26
|
+
publishComponent(componentId: string, componentType: number): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Check for unpublished customizations
|
|
29
|
+
*/
|
|
30
|
+
checkUnpublishedChanges(): Promise<unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Preview unpublished changes
|
|
33
|
+
* Returns all components that have unpublished customizations
|
|
34
|
+
*/
|
|
35
|
+
previewUnpublishedChanges(): Promise<unknown>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=PublishingService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublishingService.d.ts","sourceRoot":"","sources":["../../src/services/PublishingService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,iBAAiB;IAChB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE/C;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD;;OAEG;IACG,aAAa,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAiBhB;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IAQjD;;;OAGG;IACG,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;CAOpD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PublishingService
|
|
3
|
+
*
|
|
4
|
+
* Service for publishing customizations.
|
|
5
|
+
* Note: This service should only be used by powerplatform-customization package.
|
|
6
|
+
*/
|
|
7
|
+
export class PublishingService {
|
|
8
|
+
client;
|
|
9
|
+
constructor(client) {
|
|
10
|
+
this.client = client;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Publish all customizations
|
|
14
|
+
*/
|
|
15
|
+
async publishAllCustomizations() {
|
|
16
|
+
await this.client.makeRequest('api/data/v9.2/PublishAllXml', 'POST', {});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Publish specific customizations
|
|
20
|
+
*/
|
|
21
|
+
async publishXml(parameterXml) {
|
|
22
|
+
await this.client.makeRequest('api/data/v9.2/PublishXml', 'POST', {
|
|
23
|
+
ParameterXml: parameterXml,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Publish specific entity
|
|
28
|
+
*/
|
|
29
|
+
async publishEntity(entityLogicalName) {
|
|
30
|
+
const parameterXml = `<importexportxml><entities><entity>${entityLogicalName}</entity></entities></importexportxml>`;
|
|
31
|
+
await this.publishXml(parameterXml);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Publish specific component
|
|
35
|
+
*/
|
|
36
|
+
async publishComponent(componentId, componentType) {
|
|
37
|
+
const typeMap = {
|
|
38
|
+
1: 'entity',
|
|
39
|
+
2: 'attribute',
|
|
40
|
+
9: 'optionset',
|
|
41
|
+
24: 'form',
|
|
42
|
+
26: 'savedquery',
|
|
43
|
+
29: 'workflow',
|
|
44
|
+
60: 'systemform',
|
|
45
|
+
61: 'webresource',
|
|
46
|
+
};
|
|
47
|
+
const componentTypeName = typeMap[componentType] || 'component';
|
|
48
|
+
const parameterXml = `<importexportxml><${componentTypeName}s><${componentTypeName}>${componentId}</${componentTypeName}></${componentTypeName}s></importexportxml>`;
|
|
49
|
+
await this.publishXml(parameterXml);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check for unpublished customizations
|
|
53
|
+
*/
|
|
54
|
+
async checkUnpublishedChanges() {
|
|
55
|
+
return this.client.makeRequest('api/data/v9.2/RetrieveUnpublished', 'POST', {});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Preview unpublished changes
|
|
59
|
+
* Returns all components that have unpublished customizations
|
|
60
|
+
*/
|
|
61
|
+
async previewUnpublishedChanges() {
|
|
62
|
+
return this.client.makeRequest('api/data/v9.2/RetrieveUnpublished', 'POST', {});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=PublishingService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublishingService.js","sourceRoot":"","sources":["../../src/services/PublishingService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,iBAAiB;IACR;IAApB,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,wBAAwB;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,6BAA6B,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,YAAoB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,0BAA0B,EAAE,MAAM,EAAE;YAChE,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,iBAAyB;QAC3C,MAAM,YAAY,GAAG,sCAAsC,iBAAiB,wCAAwC,CAAC;QACrH,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,aAAqB;QAErB,MAAM,OAAO,GAA2B;YACtC,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,WAAW;YACd,CAAC,EAAE,WAAW;YACd,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,aAAa;SAClB,CAAC;QAEF,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC;QAChE,MAAM,YAAY,GAAG,qBAAqB,iBAAiB,MAAM,iBAAiB,IAAI,WAAW,KAAK,iBAAiB,MAAM,iBAAiB,sBAAsB,CAAC;QACrK,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,mCAAmC,EACnC,MAAM,EACN,EAAE,CACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,mCAAmC,EACnC,MAAM,EACN,EAAE,CACH,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RelationshipService
|
|
3
|
+
*
|
|
4
|
+
* Service for relationship customization operations.
|
|
5
|
+
* Note: This service should only be used by powerplatform-customization package.
|
|
6
|
+
*/
|
|
7
|
+
import type { PowerPlatformClient } from '../client/PowerPlatformClient.js';
|
|
8
|
+
export declare class RelationshipService {
|
|
9
|
+
private client;
|
|
10
|
+
constructor(client: PowerPlatformClient);
|
|
11
|
+
/**
|
|
12
|
+
* Create a one-to-many relationship
|
|
13
|
+
*/
|
|
14
|
+
createOneToManyRelationship(relationshipDefinition: Record<string, unknown>, solutionUniqueName?: string): Promise<unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* Create a many-to-many relationship
|
|
17
|
+
*/
|
|
18
|
+
createManyToManyRelationship(relationshipDefinition: Record<string, unknown>, solutionUniqueName?: string): Promise<unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Delete a relationship
|
|
21
|
+
*/
|
|
22
|
+
deleteRelationship(metadataId: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Update a relationship
|
|
25
|
+
* Note: Most relationship properties are immutable, only labels can be updated
|
|
26
|
+
*/
|
|
27
|
+
updateRelationship(metadataId: string, updates: Record<string, unknown>): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=RelationshipService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationshipService.d.ts","sourceRoot":"","sources":["../../src/services/RelationshipService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,qBAAa,mBAAmB;IAClB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE/C;;OAEG;IACG,2BAA2B,CAC/B,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC;IAcnB;;OAEG;IACG,4BAA4B,CAChC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,OAAO,CAAC;IAcnB;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D;;;OAGG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC;CAQjB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RelationshipService
|
|
3
|
+
*
|
|
4
|
+
* Service for relationship customization operations.
|
|
5
|
+
* Note: This service should only be used by powerplatform-customization package.
|
|
6
|
+
*/
|
|
7
|
+
export class RelationshipService {
|
|
8
|
+
client;
|
|
9
|
+
constructor(client) {
|
|
10
|
+
this.client = client;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create a one-to-many relationship
|
|
14
|
+
*/
|
|
15
|
+
async createOneToManyRelationship(relationshipDefinition, solutionUniqueName) {
|
|
16
|
+
const headers = {};
|
|
17
|
+
if (solutionUniqueName) {
|
|
18
|
+
headers['MSCRM.SolutionUniqueName'] = solutionUniqueName;
|
|
19
|
+
}
|
|
20
|
+
return this.client.makeRequest('api/data/v9.2/RelationshipDefinitions', 'POST', relationshipDefinition, headers);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a many-to-many relationship
|
|
24
|
+
*/
|
|
25
|
+
async createManyToManyRelationship(relationshipDefinition, solutionUniqueName) {
|
|
26
|
+
const headers = {};
|
|
27
|
+
if (solutionUniqueName) {
|
|
28
|
+
headers['MSCRM.SolutionUniqueName'] = solutionUniqueName;
|
|
29
|
+
}
|
|
30
|
+
return this.client.makeRequest('api/data/v9.2/RelationshipDefinitions', 'POST', relationshipDefinition, headers);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Delete a relationship
|
|
34
|
+
*/
|
|
35
|
+
async deleteRelationship(metadataId) {
|
|
36
|
+
await this.client.makeRequest(`api/data/v9.2/RelationshipDefinitions(${metadataId})`, 'DELETE');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Update a relationship
|
|
40
|
+
* Note: Most relationship properties are immutable, only labels can be updated
|
|
41
|
+
*/
|
|
42
|
+
async updateRelationship(metadataId, updates) {
|
|
43
|
+
await this.client.makeRequest(`api/data/v9.2/RelationshipDefinitions(${metadataId})`, 'PUT', updates, { 'MSCRM.MergeLabels': 'true' });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=RelationshipService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationshipService.js","sourceRoot":"","sources":["../../src/services/RelationshipService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAEnD;;OAEG;IACH,KAAK,CAAC,2BAA2B,CAC/B,sBAA+C,EAC/C,kBAA2B;QAE3B,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,CAAC,0BAA0B,CAAC,GAAG,kBAAkB,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,uCAAuC,EACvC,MAAM,EACN,sBAAsB,EACtB,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAChC,sBAA+C,EAC/C,kBAA2B;QAE3B,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,CAAC,0BAA0B,CAAC,GAAG,kBAAkB,CAAC;QAC3D,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAC5B,uCAAuC,EACvC,MAAM,EACN,sBAAsB,EACtB,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B,yCAAyC,UAAU,GAAG,EACtD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,OAAgC;QAEhC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAC3B,yCAAyC,UAAU,GAAG,EACtD,KAAK,EACL,OAAO,EACP,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAChC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SolutionService
|
|
3
|
+
*
|
|
4
|
+
* Service for solution management operations.
|
|
5
|
+
* Note: This service should only be used by powerplatform-customization package.
|
|
6
|
+
*/
|
|
7
|
+
import type { PowerPlatformClient } from '../client/PowerPlatformClient.js';
|
|
8
|
+
export declare class SolutionService {
|
|
9
|
+
private client;
|
|
10
|
+
constructor(client: PowerPlatformClient);
|
|
11
|
+
/**
|
|
12
|
+
* Create a publisher
|
|
13
|
+
*/
|
|
14
|
+
createPublisher(publisher: Record<string, unknown>): Promise<unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* Get publishers
|
|
17
|
+
*/
|
|
18
|
+
getPublishers(): Promise<unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Create a solution
|
|
21
|
+
*/
|
|
22
|
+
createSolution(solution: Record<string, unknown>): Promise<unknown>;
|
|
23
|
+
/**
|
|
24
|
+
* Get solutions
|
|
25
|
+
*/
|
|
26
|
+
getSolutions(): Promise<unknown>;
|
|
27
|
+
/**
|
|
28
|
+
* Get solution by unique name
|
|
29
|
+
*/
|
|
30
|
+
getSolution(uniqueName: string): Promise<Record<string, unknown> | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Add component to solution
|
|
33
|
+
*/
|
|
34
|
+
addComponentToSolution(solutionUniqueName: string, componentId: string, componentType: number, addRequiredComponents?: boolean, includedComponentSettingsValues?: string): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Remove component from solution
|
|
37
|
+
*/
|
|
38
|
+
removeComponentFromSolution(solutionUniqueName: string, componentId: string, componentType: number): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Get solution components
|
|
41
|
+
*/
|
|
42
|
+
getSolutionComponents(solutionUniqueName: string): Promise<unknown>;
|
|
43
|
+
/**
|
|
44
|
+
* Export solution
|
|
45
|
+
*/
|
|
46
|
+
exportSolution(solutionName: string, managed?: boolean): Promise<unknown>;
|
|
47
|
+
/**
|
|
48
|
+
* Import solution
|
|
49
|
+
*/
|
|
50
|
+
importSolution(customizationFile: string, publishWorkflows?: boolean, overwriteUnmanagedCustomizations?: boolean): Promise<unknown>;
|
|
51
|
+
/**
|
|
52
|
+
* Delete a solution
|
|
53
|
+
*/
|
|
54
|
+
deleteSolution(solutionId: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Generate a GUID
|
|
57
|
+
*/
|
|
58
|
+
private generateGuid;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=SolutionService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolutionService.d.ts","sourceRoot":"","sources":["../../src/services/SolutionService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG5E,qBAAa,eAAe;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAE/C;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ3E;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAMvC;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQzE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAMtC;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAO9E;;OAEG;IACG,sBAAsB,CAC1B,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,qBAAqB,GAAE,OAAc,EACrC,+BAA+B,CAAC,EAAE,MAAM,GACvC,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACG,2BAA2B,CAC/B,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,qBAAqB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWzE;;OAEG;IACG,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,OAAO,CAAC;IAkBnB;;OAEG;IACG,cAAc,CAClB,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,GAAE,OAAc,EAChC,gCAAgC,GAAE,OAAe,GAChD,OAAO,CAAC,OAAO,CAAC;IAWnB;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD;;OAEG;IACH,OAAO,CAAC,YAAY;CAOrB"}
|