@microsoft/power-apps 1.0.0 → 1.0.3

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 (225) hide show
  1. package/README.md +6 -32
  2. package/lib/__tests__/DefaultPowerAppsBridge.test.d.ts +5 -0
  3. package/lib/__tests__/DefaultPowerAppsBridge.test.d.ts.map +1 -0
  4. package/lib/__tests__/DefaultPowerAppsBridge.test.js +173 -0
  5. package/lib/__tests__/DefaultPowerAppsBridge.test.js.map +1 -0
  6. package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts +5 -0
  7. package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts.map +1 -0
  8. package/lib/__tests__/{connectorDataOperation.spec.js → connectorDataOperationExecutor.spec.js} +99 -15
  9. package/lib/__tests__/connectorDataOperationExecutor.spec.js.map +1 -0
  10. package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts +5 -0
  11. package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts.map +1 -0
  12. package/lib/__tests__/{dataverseDataOperation.spec.js → dataverseDataOperationExecutor.spec.js} +28 -70
  13. package/lib/__tests__/dataverseDataOperationExecutor.spec.js.map +1 -0
  14. package/lib/__tests__/{dataverseDataOperation.spec.d.ts → mockDataOperationExecutor.spec.d.ts} +1 -1
  15. package/lib/__tests__/mockDataOperationExecutor.spec.d.ts.map +1 -0
  16. package/lib/__tests__/mockDataOperationExecutor.spec.js +51 -0
  17. package/lib/__tests__/mockDataOperationExecutor.spec.js.map +1 -0
  18. package/lib/__tests__/powerDataRuntimeInstance.test.js +2 -17
  19. package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -1
  20. package/lib/__tests__/runtimeDataClient.spec.js +20 -0
  21. package/lib/__tests__/runtimeDataClient.spec.js.map +1 -1
  22. package/lib/__tests__/runtimeDataOperation.test.js +42 -41
  23. package/lib/__tests__/runtimeDataOperation.test.js.map +1 -1
  24. package/lib/app/App.Types.d.ts +28 -0
  25. package/lib/app/App.Types.d.ts.map +1 -0
  26. package/lib/{__tests__/connectorDataOperation.spec.d.ts → app/App.Types.js} +1 -1
  27. package/lib/app/App.Types.js.map +1 -0
  28. package/lib/app/Config.d.ts +6 -0
  29. package/lib/app/Config.d.ts.map +1 -0
  30. package/lib/app/Config.js +10 -0
  31. package/lib/app/Config.js.map +1 -0
  32. package/lib/app/ContextProvider.d.ts +6 -0
  33. package/lib/app/ContextProvider.d.ts.map +1 -0
  34. package/lib/app/ContextProvider.js +13 -0
  35. package/lib/app/ContextProvider.js.map +1 -0
  36. package/lib/app/index.d.ts +3 -1
  37. package/lib/app/index.d.ts.map +1 -1
  38. package/lib/app/index.js +2 -1
  39. package/lib/app/index.js.map +1 -1
  40. package/lib/data/executors/index.d.ts +6 -0
  41. package/lib/data/executors/index.d.ts.map +1 -0
  42. package/lib/data/executors/index.js +5 -0
  43. package/lib/data/executors/index.js.map +1 -0
  44. package/lib/data/metadata/dataverse/index.d.ts +6 -0
  45. package/lib/data/metadata/dataverse/index.d.ts.map +1 -0
  46. package/lib/data/metadata/dataverse/index.js +5 -0
  47. package/lib/data/metadata/dataverse/index.js.map +1 -0
  48. package/lib/data/powerAppsData.d.ts +3 -1
  49. package/lib/data/powerAppsData.d.ts.map +1 -1
  50. package/lib/data/powerAppsData.js +6 -5
  51. package/lib/data/powerAppsData.js.map +1 -1
  52. package/lib/internal/data/ConnectionUtils.js +1 -1
  53. package/lib/internal/data/ConnectionUtils.js.map +1 -1
  54. package/lib/internal/data/OperationExecutor.js +1 -1
  55. package/lib/internal/data/OperationExecutor.js.map +1 -1
  56. package/lib/internal/data/core/api/createRecord.d.ts.map +1 -1
  57. package/lib/internal/data/core/api/createRecord.js +1 -1
  58. package/lib/internal/data/core/api/createRecord.js.map +1 -1
  59. package/lib/internal/data/core/api/deleteRecord.js +1 -1
  60. package/lib/internal/data/core/api/deleteRecord.js.map +1 -1
  61. package/lib/internal/data/core/api/execute.js +1 -1
  62. package/lib/internal/data/core/api/execute.js.map +1 -1
  63. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -1
  64. package/lib/internal/data/core/api/retrieveMultipleRecords.js +1 -1
  65. package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -1
  66. package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -1
  67. package/lib/internal/data/core/api/retrieveRecord.js +1 -1
  68. package/lib/internal/data/core/api/retrieveRecord.js.map +1 -1
  69. package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -1
  70. package/lib/internal/data/core/api/updateRecord.js +1 -1
  71. package/lib/internal/data/core/api/updateRecord.js.map +1 -1
  72. package/lib/internal/data/core/common/types.d.ts +3 -10
  73. package/lib/internal/data/core/common/types.d.ts.map +1 -1
  74. package/lib/internal/data/core/common/types.js.map +1 -1
  75. package/lib/internal/data/core/data/{runtimeDataOperations.d.ts → defaultOperationOrchestrator.d.ts} +6 -12
  76. package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts.map +1 -0
  77. package/lib/internal/data/core/data/{runtimeDataOperations.js → defaultOperationOrchestrator.js} +14 -43
  78. package/lib/internal/data/core/data/defaultOperationOrchestrator.js.map +1 -0
  79. package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.d.ts +5 -0
  80. package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.d.ts.map +1 -0
  81. package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.js +116 -0
  82. package/lib/internal/data/core/data/executors/__tests__/dataverseDataOperationExecutor.test.js.map +1 -0
  83. package/lib/internal/data/core/data/{connectorDataOperation.d.ts → executors/connectorDataOperationExecutor.d.ts} +22 -7
  84. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts.map +1 -0
  85. package/lib/internal/data/core/data/{connectorDataOperation.js → executors/connectorDataOperationExecutor.js} +66 -30
  86. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js.map +1 -0
  87. package/lib/internal/data/core/data/{dataverseDataOperation.d.ts → executors/dataverseDataOperationExecutor.d.ts} +19 -27
  88. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts.map +1 -0
  89. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js +458 -0
  90. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js.map +1 -0
  91. package/lib/internal/data/core/data/executors/index.d.ts +5 -0
  92. package/lib/internal/data/core/data/executors/index.d.ts.map +1 -0
  93. package/lib/internal/data/core/data/executors/index.js +5 -0
  94. package/lib/internal/data/core/data/executors/index.js.map +1 -0
  95. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts +21 -0
  96. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts.map +1 -0
  97. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js +75 -0
  98. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js.map +1 -0
  99. package/lib/internal/data/core/data/executors/shared/stringQueryOptions.d.ts +11 -0
  100. package/lib/internal/data/core/data/executors/shared/stringQueryOptions.d.ts.map +1 -0
  101. package/lib/internal/data/core/data/executors/shared/stringQueryOptions.js +38 -0
  102. package/lib/internal/data/core/data/executors/shared/stringQueryOptions.js.map +1 -0
  103. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -1
  104. package/lib/internal/data/core/metadata/runtimeDataSourceService.js +2 -1
  105. package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -1
  106. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +3 -2
  107. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -1
  108. package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -3
  109. package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -1
  110. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +3 -11
  111. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -1
  112. package/lib/internal/data/core/runtime/powerDataRuntime.js +6 -19
  113. package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -1
  114. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +2 -3
  115. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -1
  116. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +1 -3
  117. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -1
  118. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -1
  119. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +1 -0
  120. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -1
  121. package/lib/internal/data/core/telemetry/log.d.ts +7 -0
  122. package/lib/internal/data/core/telemetry/log.d.ts.map +1 -1
  123. package/lib/internal/data/core/telemetry/log.js +38 -1
  124. package/lib/internal/data/core/telemetry/log.js.map +1 -1
  125. package/lib/internal/data/core/types/dataverseMetadata.d.ts +408 -0
  126. package/lib/internal/data/core/types/dataverseMetadata.d.ts.map +1 -0
  127. package/lib/internal/data/core/types/dataverseMetadata.js +118 -0
  128. package/lib/internal/data/core/types/dataverseMetadata.js.map +1 -0
  129. package/lib/internal/data/core/types/index.d.ts +33 -2
  130. package/lib/internal/data/core/types/index.d.ts.map +1 -1
  131. package/lib/internal/data/core/types/index.js.map +1 -1
  132. package/lib/internal/data/index.d.ts +5 -0
  133. package/lib/internal/data/index.d.ts.map +1 -0
  134. package/lib/internal/data/index.js +5 -0
  135. package/lib/internal/data/index.js.map +1 -0
  136. package/lib/internal/plugins/DefaultPowerAppsBridge.d.ts +19 -0
  137. package/lib/internal/plugins/DefaultPowerAppsBridge.d.ts.map +1 -0
  138. package/lib/internal/plugins/DefaultPowerAppsBridge.js +97 -0
  139. package/lib/internal/plugins/DefaultPowerAppsBridge.js.map +1 -0
  140. package/lib/internal/plugins/PluginBridge.d.ts +14 -0
  141. package/lib/internal/plugins/PluginBridge.d.ts.map +1 -0
  142. package/lib/internal/plugins/PluginBridge.js +25 -0
  143. package/lib/internal/plugins/PluginBridge.js.map +1 -0
  144. package/lib/internal/plugins/SendMessage/CompatibleMessageReceiver.d.ts.map +1 -0
  145. package/lib/internal/{communication → plugins/SendMessage}/CompatibleMessageReceiver.js +4 -3
  146. package/lib/internal/plugins/SendMessage/CompatibleMessageReceiver.js.map +1 -0
  147. package/lib/internal/plugins/SendMessage/IncompatibleMessageReceiver.d.ts.map +1 -0
  148. package/lib/internal/plugins/SendMessage/IncompatibleMessageReceiver.js.map +1 -0
  149. package/lib/internal/plugins/SendMessage/MessageReceiver.Types.d.ts.map +1 -0
  150. package/lib/internal/plugins/SendMessage/MessageReceiver.Types.js.map +1 -0
  151. package/lib/internal/{communication → plugins/SendMessage}/SendMessage.d.ts +0 -1
  152. package/lib/internal/plugins/SendMessage/SendMessage.d.ts.map +1 -0
  153. package/lib/internal/{communication → plugins/SendMessage}/SendMessage.js +1 -2
  154. package/lib/internal/plugins/SendMessage/SendMessage.js.map +1 -0
  155. package/lib/internal/plugins/SendMessage/SendMessageOperation.d.ts.map +1 -0
  156. package/lib/internal/plugins/SendMessage/SendMessageOperation.js.map +1 -0
  157. package/lib/internal/plugins/SendMessage/index.d.ts +6 -0
  158. package/lib/internal/plugins/SendMessage/index.d.ts.map +1 -0
  159. package/lib/internal/plugins/SendMessage/index.js +5 -0
  160. package/lib/internal/plugins/SendMessage/index.js.map +1 -0
  161. package/lib/internal/plugins/index.d.ts +5 -0
  162. package/lib/internal/plugins/index.d.ts.map +1 -0
  163. package/lib/internal/plugins/index.js +5 -0
  164. package/lib/internal/plugins/index.js.map +1 -0
  165. package/lib/telemetry/Logger.types.d.ts +1 -1
  166. package/lib/telemetry/Logger.types.d.ts.map +1 -1
  167. package/lib/telemetry/LoggerManager.d.ts +2 -2
  168. package/lib/telemetry/LoggerManager.d.ts.map +1 -1
  169. package/lib/telemetry/LoggerManager.js +2 -2
  170. package/lib/telemetry/LoggerManager.js.map +1 -1
  171. package/lib/telemetry/Metrics.types.d.ts +4 -18
  172. package/lib/telemetry/Metrics.types.d.ts.map +1 -1
  173. package/lib/telemetry/Performance.d.ts +1 -1
  174. package/lib/telemetry/Performance.d.ts.map +1 -1
  175. package/lib/telemetry/Performance.js +1 -1
  176. package/lib/telemetry/Performance.js.map +1 -1
  177. package/lib/telemetry/index.d.ts +3 -1
  178. package/lib/telemetry/index.d.ts.map +1 -1
  179. package/lib/telemetry/index.js +4 -1
  180. package/lib/telemetry/index.js.map +1 -1
  181. package/package.json +14 -1
  182. package/lib/__tests__/connectorDataOperation.spec.d.ts.map +0 -1
  183. package/lib/__tests__/connectorDataOperation.spec.js.map +0 -1
  184. package/lib/__tests__/dataverseDataOperation.spec.d.ts.map +0 -1
  185. package/lib/__tests__/dataverseDataOperation.spec.js.map +0 -1
  186. package/lib/app/Lifecycle.d.ts +0 -9
  187. package/lib/app/Lifecycle.d.ts.map +0 -1
  188. package/lib/app/Lifecycle.js +0 -36
  189. package/lib/app/Lifecycle.js.map +0 -1
  190. package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +0 -1
  191. package/lib/internal/communication/CompatibleMessageReceiver.js.map +0 -1
  192. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +0 -1
  193. package/lib/internal/communication/IncompatibleMessageReceiver.js.map +0 -1
  194. package/lib/internal/communication/MessageReceiver.Types.d.ts.map +0 -1
  195. package/lib/internal/communication/MessageReceiver.Types.js.map +0 -1
  196. package/lib/internal/communication/SendMessage.d.ts.map +0 -1
  197. package/lib/internal/communication/SendMessage.js.map +0 -1
  198. package/lib/internal/communication/SendMessageOperation.d.ts.map +0 -1
  199. package/lib/internal/communication/SendMessageOperation.js.map +0 -1
  200. package/lib/internal/data/core/data/connectorDataOperation.d.ts.map +0 -1
  201. package/lib/internal/data/core/data/connectorDataOperation.js.map +0 -1
  202. package/lib/internal/data/core/data/dataverseDataOperation.d.ts.map +0 -1
  203. package/lib/internal/data/core/data/dataverseDataOperation.js +0 -508
  204. package/lib/internal/data/core/data/dataverseDataOperation.js.map +0 -1
  205. package/lib/internal/data/core/data/runtimeDataOperations.d.ts.map +0 -1
  206. package/lib/internal/data/core/data/runtimeDataOperations.js.map +0 -1
  207. package/lib/internal/data/core/runtime/initializeRuntime.d.ts +0 -13
  208. package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +0 -1
  209. package/lib/internal/data/core/runtime/initializeRuntime.js +0 -38
  210. package/lib/internal/data/core/runtime/initializeRuntime.js.map +0 -1
  211. package/lib/internal/plugin/PluginCommon.d.ts +0 -16
  212. package/lib/internal/plugin/PluginCommon.d.ts.map +0 -1
  213. package/lib/internal/plugin/PluginCommon.js +0 -114
  214. package/lib/internal/plugin/PluginCommon.js.map +0 -1
  215. package/lib/internal/plugin/PluginMobile.d.ts +0 -13
  216. package/lib/internal/plugin/PluginMobile.d.ts.map +0 -1
  217. package/lib/internal/plugin/PluginMobile.js +0 -109
  218. package/lib/internal/plugin/PluginMobile.js.map +0 -1
  219. /package/lib/internal/{communication → plugins/SendMessage}/CompatibleMessageReceiver.d.ts +0 -0
  220. /package/lib/internal/{communication → plugins/SendMessage}/IncompatibleMessageReceiver.d.ts +0 -0
  221. /package/lib/internal/{communication → plugins/SendMessage}/IncompatibleMessageReceiver.js +0 -0
  222. /package/lib/internal/{communication → plugins/SendMessage}/MessageReceiver.Types.d.ts +0 -0
  223. /package/lib/internal/{communication → plugins/SendMessage}/MessageReceiver.Types.js +0 -0
  224. /package/lib/internal/{communication → plugins/SendMessage}/SendMessageOperation.d.ts +0 -0
  225. /package/lib/internal/{communication → plugins/SendMessage}/SendMessageOperation.js +0 -0
package/README.md CHANGED
@@ -1,13 +1,10 @@
1
- # Power Apps client library
1
+ # Power Apps client library for code apps
2
2
 
3
- This project contains the APIs needed to:
3
+ The Power Apps client library for code apps allows users to bring Power Apps capabilities into their custom web apps built in a code-first IDE. You can develop your apps locally and run them in Power Platform. Build with popular frameworks (React, Vue, and others) while keeping full control over your UI and logic. This client library provides the following key features:
4
4
 
5
- - Initialize apps that can be hosted in the Power Platform.
6
- - Enable developers to interact with data sources including multiple connectors and Dataverse.
7
-
8
- ## Getting Started
9
-
10
- Go to the [instructions](https://github.com/microsoft/PowerAppsCodeApps) to get samples, tutorials and more information about code apps.
5
+ - Access to Power Platform data sources and 1,500+ connectors, callable directly from JavaScript.
6
+ - Access to the app, user and host context.
7
+ - Access to more granular logs and custom events for app performance.
11
8
 
12
9
  ## Installation
13
10
 
@@ -17,27 +14,4 @@ npm install @microsoft/power-apps
17
14
 
18
15
  ## Usage
19
16
 
20
- Install the package using npm.
21
-
22
- The following APIs and types are available:
23
-
24
- ```typescript
25
- import { initialize } from '@microsoft/power-apps/app';
26
- ```
27
-
28
- Make sure the initialize API is the first thing your app calls. Failing to do so will result in the app failing to load. If data calls are made before initialize is completed this will cause the data retrieval to be unsuccessful.
29
-
30
- ```typescript
31
- import {
32
- createRecordAsync,
33
- retrieveRecordAsync,
34
- retrieveMultipleRecordsAsync,
35
- updateRecordAsync,
36
- deleteRecordAsync,
37
- executeAsync,
38
- type IOperationOptions,
39
- type IOperationResult,
40
- } from '@microsoft/power-apps/data';
41
- ```
42
-
43
- This package works seamlessly with the Power Apps code generation tools to create strongly typed models and services. The code generator automatically creates TypeScript interfaces and service classes based on your data sources.
17
+ Power Apps code apps [official documentation](https://learn.microsoft.com/en-us/power-apps/developer/code-apps/).
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=DefaultPowerAppsBridge.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultPowerAppsBridge.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/DefaultPowerAppsBridge.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * @jest-environment jsdom
3
+ */
4
+ /*!
5
+ * Copyright (C) Microsoft Corporation. All rights reserved.
6
+ */
7
+ import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals';
8
+ import { DefaultPowerAppsBridge } from '../internal/plugins/DefaultPowerAppsBridge';
9
+ function createMockMessagePort() {
10
+ return {
11
+ onmessage: null,
12
+ postMessage: jest.fn(),
13
+ };
14
+ }
15
+ function createMockMessageChannel() {
16
+ return {
17
+ port1: createMockMessagePort(),
18
+ port2: createMockMessagePort(),
19
+ };
20
+ }
21
+ function MockMessageChannelConstructor() {
22
+ const channel = createMockMessageChannel();
23
+ this.port1 = channel.port1;
24
+ this.port2 = channel.port2;
25
+ }
26
+ describe('DefaultPowerAppsBridge', () => {
27
+ let originalMessageChannel;
28
+ let dateNowSpy;
29
+ let parentPostMessage;
30
+ beforeEach(() => {
31
+ // Stable instance id
32
+ dateNowSpy = jest.spyOn(Date, 'now').mockReturnValue(12345);
33
+ // Capture and override MessageChannel for deterministic ports
34
+ originalMessageChannel = window.MessageChannel;
35
+ Object.defineProperty(window, 'MessageChannel', {
36
+ value: MockMessageChannelConstructor,
37
+ configurable: true,
38
+ writable: true,
39
+ });
40
+ // Provide a controllable window.parent.postMessage
41
+ parentPostMessage = jest.fn();
42
+ Object.defineProperty(window, 'parent', {
43
+ value: { postMessage: parentPostMessage },
44
+ configurable: true,
45
+ });
46
+ });
47
+ afterEach(() => {
48
+ dateNowSpy.mockRestore();
49
+ if (originalMessageChannel) {
50
+ Object.defineProperty(window, 'MessageChannel', {
51
+ value: originalMessageChannel,
52
+ configurable: true,
53
+ writable: true,
54
+ });
55
+ }
56
+ jest.clearAllMocks();
57
+ });
58
+ it('initialize should set port1.onmessage and post initCommunicationWithPort with port2 transferred', async () => {
59
+ const bridge = new DefaultPowerAppsBridge();
60
+ const messageChannel = bridge._messageChannel;
61
+ expect(messageChannel.port1.onmessage).toBeNull();
62
+ await bridge.initialize();
63
+ expect(typeof messageChannel.port1.onmessage).toBe('function');
64
+ expect(parentPostMessage).toHaveBeenCalledTimes(1);
65
+ expect(parentPostMessage).toHaveBeenCalledWith({
66
+ messageType: 'initCommunicationWithPort',
67
+ instanceId: '12345',
68
+ }, '*', [messageChannel.port2]);
69
+ });
70
+ it('executePluginAsync should queue messages until initCommunication is received, then backfill csrf token and flush', async () => {
71
+ const bridge = new DefaultPowerAppsBridge();
72
+ const messageChannel = bridge._messageChannel;
73
+ // Trigger a plugin call before communication is initialized
74
+ const promise = bridge.executePluginAsync('Foo', 'Bar', [1]);
75
+ const queue = bridge
76
+ ._postMessageQueue;
77
+ expect(queue).toHaveLength(1);
78
+ expect(queue[0]).toEqual(expect.objectContaining({
79
+ isPluginCall: true,
80
+ callbackId: 'instanceId=12345_Foo0',
81
+ service: 'Foo',
82
+ action: 'Bar',
83
+ actionArgs: [1],
84
+ antiCSRFToken: undefined,
85
+ }));
86
+ // Wire handler like real initialize does
87
+ await bridge.initialize();
88
+ const onmessage = messageChannel.port1.onmessage;
89
+ expect(onmessage).not.toBeNull();
90
+ // Init communication from host should cause the queue to flush, with token backfilled
91
+ onmessage({
92
+ data: { messageType: 'initCommunication', antiCSRFToken: 'token-1' },
93
+ });
94
+ expect(messageChannel.port1.postMessage).toHaveBeenCalledTimes(1);
95
+ expect(messageChannel.port1.postMessage).toHaveBeenCalledWith(expect.objectContaining({
96
+ callbackId: 'instanceId=12345_Foo0',
97
+ antiCSRFToken: 'token-1',
98
+ }));
99
+ // Now simulate the plugin response
100
+ onmessage({
101
+ data: {
102
+ isPluginCall: true,
103
+ callbackId: 'instanceId=12345_Foo0',
104
+ status: 1,
105
+ args: ['ok'],
106
+ keepCallback: false,
107
+ },
108
+ });
109
+ await expect(promise).resolves.toBe('ok');
110
+ const callbacks = bridge._callbacks;
111
+ expect(callbacks['instanceId=12345_Foo0']).toBeUndefined();
112
+ });
113
+ it('executePluginAsync should call onUpdate when keepCallback=true and resolve later when keepCallback=false', async () => {
114
+ const bridge = new DefaultPowerAppsBridge();
115
+ const messageChannel = bridge._messageChannel;
116
+ await bridge.initialize();
117
+ const onUpdate = jest.fn();
118
+ const promise = bridge.executePluginAsync('Foo', 'Stream', [], onUpdate);
119
+ const onmessage = messageChannel.port1.onmessage;
120
+ // Establish communication (also sets _postMessageSource)
121
+ onmessage({
122
+ data: { messageType: 'initCommunication', antiCSRFToken: 'token-2' },
123
+ });
124
+ // First update
125
+ onmessage({
126
+ data: {
127
+ isPluginCall: true,
128
+ callbackId: 'instanceId=12345_Foo0',
129
+ status: 1,
130
+ args: ['progress-1'],
131
+ keepCallback: true,
132
+ },
133
+ });
134
+ expect(onUpdate).toHaveBeenCalledTimes(1);
135
+ expect(onUpdate).toHaveBeenCalledWith('progress-1');
136
+ // Final completion
137
+ onmessage({
138
+ data: {
139
+ isPluginCall: true,
140
+ callbackId: 'instanceId=12345_Foo0',
141
+ status: 1,
142
+ args: ['final'],
143
+ keepCallback: false,
144
+ },
145
+ });
146
+ await expect(promise).resolves.toBe('final');
147
+ const callbacks = bridge._callbacks;
148
+ expect(callbacks['instanceId=12345_Foo0']).toBeUndefined();
149
+ });
150
+ it('executePluginAsync should reject when host returns non-zero non-success status', async () => {
151
+ const bridge = new DefaultPowerAppsBridge();
152
+ const messageChannel = bridge._messageChannel;
153
+ await bridge.initialize();
154
+ const promise = bridge.executePluginAsync('Foo', 'Fail');
155
+ const onmessage = messageChannel.port1.onmessage;
156
+ onmessage({
157
+ data: { messageType: 'initCommunication', antiCSRFToken: 'token-3' },
158
+ });
159
+ onmessage({
160
+ data: {
161
+ isPluginCall: true,
162
+ callbackId: 'instanceId=12345_Foo0',
163
+ status: 2,
164
+ args: ['err'],
165
+ keepCallback: false,
166
+ },
167
+ });
168
+ await expect(promise).rejects.toEqual(['err']);
169
+ const callbacks = bridge._callbacks;
170
+ expect(callbacks['instanceId=12345_Foo0']).toBeUndefined();
171
+ });
172
+ });
173
+ //# sourceMappingURL=DefaultPowerAppsBridge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultPowerAppsBridge.test.js","sourceRoot":"","sources":["../../src/__tests__/DefaultPowerAppsBridge.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=connectorDataOperationExecutor.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorDataOperationExecutor.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/connectorDataOperationExecutor.spec.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * Copyright (C) Microsoft Corporation. All rights reserved.
3
3
  */
4
- import { ConnectorDataOperation } from '../internal/data/core/data/connectorDataOperation';
4
+ import { ConnectorDataOperationExecutor } from '../internal/data/core/data/executors/connectorDataOperationExecutor';
5
5
  import { DataOperationErrorMessages, ErrorCodes, ErrorMessages } from '../internal/data/core/error/error';
6
6
  import { getMockClientProvider, getMockConnectionsService, getMockDataClient, getMockMetadataClient, suppressConsoleErrorTelemetryLogger, } from './helpers/testHelpers';
7
7
  import { expect } from '@jest/globals';
8
- describe('ConnectorDataOperation', () => {
8
+ describe('ConnectorDataOperationExecutor', () => {
9
9
  let clientProvider;
10
10
  let connectionsService;
11
11
  let dataClient;
@@ -79,7 +79,7 @@ describe('ConnectorDataOperation', () => {
79
79
  });
80
80
  it('should retrieve a record', async () => {
81
81
  const id = '1';
82
- const options = '?opt=1';
82
+ const options = {};
83
83
  const result = await instance.retrieveRecordAsync(tableName, id, options);
84
84
  expect(result.success).toBe(true);
85
85
  expect(dataClient.retrieveDataAsync).toHaveBeenCalledWith(expect.stringContaining('https://runtime'), connectionReference.apiId, tableName, 'GET', undefined, expect.objectContaining({ operationName: 'connectorDataOperation.retrieveRecordAsync' }));
@@ -133,10 +133,10 @@ describe('ConnectorDataOperation', () => {
133
133
  });
134
134
  describe('Error Handling', () => {
135
135
  it('should throw if constructed with missing clientProvider', () => {
136
- expect(() => new ConnectorDataOperation(undefined, connectionsService)).toThrow(ErrorMessages[ErrorCodes.ClientProviderNotAvailable]);
136
+ expect(() => new ConnectorDataOperationExecutor(undefined, connectionsService)).toThrow(ErrorMessages[ErrorCodes.ClientProviderNotAvailable]);
137
137
  });
138
138
  it('should throw if constructed with missing connectionsService', () => {
139
- expect(() => new ConnectorDataOperation(clientProvider, undefined)).toThrow(ErrorMessages[ErrorCodes.DataSourceServiceNotAvailable]);
139
+ expect(() => new ConnectorDataOperationExecutor(clientProvider, undefined)).toThrow(ErrorMessages[ErrorCodes.DataSourceServiceNotAvailable]);
140
140
  });
141
141
  it('should handle error from data client', async () => {
142
142
  dataClient.createDataAsync.mockRejectedValue(new Error('fail'));
@@ -149,7 +149,7 @@ describe('ConnectorDataOperation', () => {
149
149
  });
150
150
  });
151
151
  describe('_buildOperationBodyParam', () => {
152
- it('should map body parameters correctly, including normalized names and special "body" param', async () => {
152
+ it('should use the body parameter value directly without wrapping', async () => {
153
153
  // Arrange
154
154
  const testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
155
155
  const testOperationName = 'customOp';
@@ -157,8 +157,6 @@ describe('ConnectorDataOperation', () => {
157
157
  const apiParams = [
158
158
  { name: 'connectionId', in: 'path', required: true },
159
159
  { name: 'body', in: 'body', required: true },
160
- { name: 'foo-bar', in: 'body', required: false },
161
- { name: 'baz_param', in: 'body', required: false },
162
160
  ];
163
161
  const testDataSourceInfo = {
164
162
  tableId: 'tid',
@@ -168,12 +166,9 @@ describe('ConnectorDataOperation', () => {
168
166
  },
169
167
  };
170
168
  connectionsService.getDataSource.mockResolvedValue(testDataSourceInfo);
171
- // The rawParams object uses both hyphens and underscores
172
169
  const parameters = {
173
170
  connectionId: '123',
174
171
  body: { a: 1, b: 2 },
175
- foo_bar: 42,
176
- 'baz-param': 'hello',
177
172
  };
178
173
  const operation = {
179
174
  connectorOperation: {
@@ -184,12 +179,88 @@ describe('ConnectorDataOperation', () => {
184
179
  };
185
180
  // Act
186
181
  const result = await testInstance.buildOperationBodyParam(operation, testTableName);
187
- // Assert
182
+ // Assert - body value should be used directly, not wrapped
188
183
  expect(JSON.parse(result)).toEqual({
189
184
  a: 1,
190
185
  b: 2,
191
186
  });
192
187
  });
188
+ it('should use body parameter value directly regardless of parameter name', async () => {
189
+ // Arrange
190
+ const testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
191
+ const testOperationName = 'CreateWorkItem';
192
+ const testTableName = 'AzureDevOps';
193
+ const apiParams = [
194
+ { name: 'connectionId', in: 'path', required: true },
195
+ { name: 'account', in: 'query', required: true },
196
+ { name: 'workItem', in: 'body', required: true },
197
+ ];
198
+ const testDataSourceInfo = {
199
+ tableId: 'tid',
200
+ version: 'v1',
201
+ apis: {
202
+ [testOperationName]: { parameters: apiParams },
203
+ },
204
+ };
205
+ connectionsService.getDataSource.mockResolvedValue(testDataSourceInfo);
206
+ const parameters = {
207
+ connectionId: '123',
208
+ account: 'myorg',
209
+ workItem: { title: 'My Task', description: 'Task description' },
210
+ };
211
+ const operation = {
212
+ connectorOperation: {
213
+ tableName: testTableName,
214
+ operationName: testOperationName,
215
+ parameters,
216
+ },
217
+ };
218
+ // Act
219
+ const result = await testInstance.buildOperationBodyParam(operation, testTableName);
220
+ // Assert - workItem value should be used directly, NOT wrapped as { workItem: {...} }
221
+ expect(JSON.parse(result)).toEqual({
222
+ title: 'My Task',
223
+ description: 'Task description',
224
+ });
225
+ });
226
+ it('should use body parameter named "parameters" directly for Azure DevOps HttpRequest', async () => {
227
+ // Arrange - simulates Azure DevOps HttpRequest endpoint
228
+ const testInstance = new TestableConnectorDataOperation(clientProvider, connectionsService);
229
+ const testOperationName = 'HttpRequest';
230
+ const testTableName = 'AzureDevOps';
231
+ const apiParams = [
232
+ { name: 'connectionId', in: 'path', required: true },
233
+ { name: 'account', in: 'query', required: true },
234
+ { name: 'parameters', in: 'body', required: true },
235
+ ];
236
+ const testDataSourceInfo = {
237
+ tableId: 'tid',
238
+ version: 'v1',
239
+ apis: {
240
+ [testOperationName]: { parameters: apiParams },
241
+ },
242
+ };
243
+ connectionsService.getDataSource.mockResolvedValue(testDataSourceInfo);
244
+ const parameters = {
245
+ connectionId: '123',
246
+ account: 'msazure',
247
+ parameters: { Method: 'GET', Uri: '/_apis/projects?api-version=7.0' },
248
+ };
249
+ const operation = {
250
+ connectorOperation: {
251
+ tableName: testTableName,
252
+ operationName: testOperationName,
253
+ parameters,
254
+ },
255
+ };
256
+ // Act
257
+ const result = await testInstance.buildOperationBodyParam(operation, testTableName);
258
+ // Assert - parameters value should be used directly, NOT wrapped as { parameters: {...} }
259
+ expect(JSON.parse(result)).toEqual({
260
+ Method: 'GET',
261
+ Uri: '/_apis/projects?api-version=7.0',
262
+ });
263
+ });
193
264
  });
194
265
  describe('_getNormalizedParamValue', () => {
195
266
  let testInstance;
@@ -243,7 +314,7 @@ describe('ConnectorDataOperation', () => {
243
314
  });
244
315
  });
245
316
  // Helper subclass to expose protected/private methods for testing
246
- class TestableConnectorDataOperation extends ConnectorDataOperation {
317
+ class TestableConnectorDataOperation extends ConnectorDataOperationExecutor {
247
318
  buildStandardOperationUrl(operation, config, operationName, path) {
248
319
  // @ts-expect-error: Accessing private method for testing
249
320
  return this._buildStandardOperationUrl(operation, config, operationName, path);
@@ -275,6 +346,8 @@ describe('ConnectorDataOperation', () => {
275
346
  [testOperationName]: {
276
347
  parameters: [
277
348
  { name: 'connectionId', in: 'path', required: true },
349
+ { name: 'dataset', in: 'path', required: true },
350
+ { name: 'tableName', in: 'path', required: true },
278
351
  { name: 'foo-bar', in: 'query', required: false },
279
352
  { name: 'baz_param', in: 'query', required: false },
280
353
  ],
@@ -286,7 +359,7 @@ describe('ConnectorDataOperation', () => {
286
359
  it('maps string operationParams', async () => {
287
360
  const operation = { connectorOperation: { parameters: 'abc', operationName: testOperationName } };
288
361
  const url = await testInstance.buildStandardOperationUrl(operation, testConfig, testOperationName, testPath);
289
- expect(url).toContain('abc');
362
+ expect(url).toMatchInlineSnapshot(`"https://runtime/op?foo-bar=abc"`);
290
363
  });
291
364
  it('maps object operationParams with normalization', async () => {
292
365
  const operation = {
@@ -299,6 +372,17 @@ describe('ConnectorDataOperation', () => {
299
372
  expect(url).toContain('foo-bar=1');
300
373
  expect(url).toContain('baz_param=2');
301
374
  });
375
+ it('always maps connectionId, dataset, and tableName', async () => {
376
+ const pathTemplate = '/connections/{connectionId}/datasets/{dataset}/tables/{tableName}/items';
377
+ const operation = {
378
+ connectorOperation: {
379
+ parameters: {},
380
+ operationName: testOperationName,
381
+ },
382
+ };
383
+ const url = await testInstance.buildStandardOperationUrl(operation, testConfig, testOperationName, pathTemplate);
384
+ expect(url).toMatchInlineSnapshot(`"https://runtime/connections/connName/datasets/ds/tables/TestTable/items"`);
385
+ });
302
386
  });
303
387
  describe('Connector header parameter handling', () => {
304
388
  const operationName = 'testOp';
@@ -506,4 +590,4 @@ describe('ConnectorDataOperation', () => {
506
590
  });
507
591
  });
508
592
  });
509
- //# sourceMappingURL=connectorDataOperation.spec.js.map
593
+ //# sourceMappingURL=connectorDataOperationExecutor.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorDataOperationExecutor.spec.js","sourceRoot":"","sources":["../../src/__tests__/connectorDataOperationExecutor.spec.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,qEAAqE,CAAC;AAQrH,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC1G,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,qBAAqB,EACrB,mCAAmC,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAI,cAAmD,CAAC;IACxD,IAAI,kBAAyD,CAAC;IAC9D,IAAI,UAA2C,CAAC;IAChD,IAAI,cAAmD,CAAC;IACxD,IAAI,QAAwC,CAAC;IAE7C,MAAM,SAAS,GAAG,WAAW,CAAC;IAC9B,MAAM,mBAAmB,GAAG;QAC1B,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,iBAAiB;QAC7B,cAAc,EAAE,UAAU;QAC1B,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,oBAAoB,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClE,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,EAAE,EAAE;gBACF,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,QAAQ;wBACZ,QAAQ,EAAE,IAAI;wBACd,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,gBAAgB;wBACtB,EAAE,EAAE,QAAQ;wBACZ,QAAQ,EAAE,KAAK;wBACf,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,IAAI,EAAE,KAAK;aACZ;SACF;KACF,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,mCAAmC,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,iBAAiB,EAAqC,CAAC;QACpE,cAAc,GAAG,qBAAqB,CAAC,oBAAoB,CAAwC,CAAC;QACpG,cAAc,GAAG,qBAAqB,CAAC,UAAU,EAAE,cAAc,CAAwC,CAAC;QAC1G,kBAAkB,GAAG,yBAAyB,CAAC,cAAc,CAA0C,CAAC;QACxG,QAAQ,GAAG,IAAI,8BAA8B,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClF,sBAAsB;QACrB,QAA0D,CAAC,qBAAqB,GAAG,SAAS,CAAC;QAC7F,QAAwD,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CACrD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAC1C,mBAAmB,CAAC,KAAK,EACzB,SAAS,EACT,IAAI,EACJ,MAAM,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,0CAA0C,EAAE,CAAC,CACvF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,GAAG,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CACrD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAC1C,mBAAmB,CAAC,KAAK,EACzB,SAAS,EACT,IAAI,EACJ,MAAM,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,0CAA0C,EAAE,CAAC,CACvF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,EAAE,GAAG,GAAG,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CACrD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAC1C,mBAAmB,CAAC,KAAK,EACzB,SAAS,EACT,MAAM,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,0CAA0C,EAAE,CAAC,CACvF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,EAAE,GAAG,GAAG,CAAC;YACf,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAC1C,mBAAmB,CAAC,KAAK,EACzB,SAAS,EACT,KAAK,EACL,SAAS,EACT,MAAM,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,4CAA4C,EAAE,CAAC,CACzF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,UAAU,GAAgD,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;YACvG,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAGxC;gBACA,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa,EAAE,IAAI;oBACnB,UAAU;iBACX;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,EACtC,SAAS,EACT,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,2BAA2B,EAAE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YAClG,MAAM,UAAU,GAAuB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAA6D;gBACrG,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa,EAAE,IAAI;oBACnB,UAAU;iBACX;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,SAAS,EACT,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,2BAA2B,EAAE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa,EAAE,IAAI;oBACnB,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;iBACzB;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,EACtC,SAAS,EACT,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,2BAA2B,EAAE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YACzD,QAA0D,CAAC,qBAAqB,GAAG,EAAE,CAAC;YACvF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC,CAAC;aAC/F;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,CACJ,GAAG,EAAE,CACH,IAAI,8BAA8B,CAChC,SAA8C,EAC9C,kBAAkB,CACnB,CACJ,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CACJ,GAAG,EAAE,CACH,IAAI,8BAA8B,CAAC,cAAc,EAAE,SAAgD,CAAC,CACvG,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;aACjF;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,UAAU;YACV,MAAM,YAAY,GAAG,IAAI,8BAA8B,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAC5F,MAAM,iBAAiB,GAAG,UAAU,CAAC;YACrC,MAAM,aAAa,GAAG,WAAW,CAAC;YAClC,MAAM,SAAS,GAAG;gBAChB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpD,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC7C,CAAC;YACF,MAAM,kBAAkB,GAAG;gBACzB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,CAAC,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;iBAC/C;aACF,CAAC;YACD,kBAAkB,CAAC,aAA2B,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YACtF,MAAM,UAAU,GAAG;gBACjB,YAAY,EAAE,KAAK;gBACnB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;aACrB,CAAC;YACF,MAAM,SAAS,GAGV;gBACH,kBAAkB,EAAE;oBAClB,SAAS,EAAE,aAAa;oBACxB,aAAa,EAAE,iBAAiB;oBAChC,UAAU;iBACX;aACF,CAAC;YACF,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpF,2DAA2D;YAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;aACL,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,UAAU;YACV,MAAM,YAAY,GAAG,IAAI,8BAA8B,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAC5F,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;YAC3C,MAAM,aAAa,GAAG,aAAa,CAAC;YACpC,MAAM,SAAS,GAAG;gBAChB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpD,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChD,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;aACjD,CAAC;YACF,MAAM,kBAAkB,GAAG;gBACzB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,CAAC,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;iBAC/C;aACF,CAAC;YACD,kBAAkB,CAAC,aAA2B,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YACtF,MAAM,UAAU,GAAG;gBACjB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE;aAChE,CAAC;YACF,MAAM,SAAS,GAIV;gBACH,kBAAkB,EAAE;oBAClB,SAAS,EAAE,aAAa;oBACxB,aAAa,EAAE,iBAAiB;oBAChC,UAAU;iBACX;aACF,CAAC;YACF,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpF,sFAAsF;YACtF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,kBAAkB;aAChC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;YAClG,wDAAwD;YACxD,MAAM,YAAY,GAAG,IAAI,8BAA8B,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAC5F,MAAM,iBAAiB,GAAG,aAAa,CAAC;YACxC,MAAM,aAAa,GAAG,aAAa,CAAC;YACpC,MAAM,SAAS,GAAG;gBAChB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpD,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChD,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;aACnD,CAAC;YACF,MAAM,kBAAkB,GAAG;gBACzB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,CAAC,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;iBAC/C;aACF,CAAC;YACD,kBAAkB,CAAC,aAA2B,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YACtF,MAAM,UAAU,GAAG;gBACjB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,SAAS;gBAClB,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,iCAAiC,EAAE;aACtE,CAAC;YACF,MAAM,SAAS,GAIV;gBACH,kBAAkB,EAAE;oBAClB,SAAS,EAAE,aAAa;oBACxB,aAAa,EAAE,iBAAiB;oBAChC,UAAU;iBACX;aACF,CAAC;YACF,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACpF,0FAA0F;YAC1F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjC,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,iCAAiC;aACvC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,IAAI,YAA4C,CAAC;QACjD,UAAU,CAAC,GAAG,EAAE;YACd,YAAY,GAAG,IAAI,8BAA8B,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,SAAS,2BAA2B,CAAC,GAA4B,EAAE,SAAiB;YAClF,yDAAyD;YACzD,OAAO,YAAY,CAAC,wBAAwB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC;QAED,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC7B,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;YAC/B,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACzB,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;YAC/E,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC7B,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC7B,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;YAC/B,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;YAC7F,MAAM,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;YAC/B,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kGAAkG,EAAE,GAAG,EAAE;YAC1G,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YAC7B,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,kEAAkE;IAClE,MAAM,8BAA+B,SAAQ,8BAA8B;QAClE,yBAAyB,CAC9B,SAAiF,EACjF,MAQC,EACD,aAAqB,EACrB,IAAY;YAEZ,yDAAyD;YACzD,OAAO,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACjF,CAAC;QACM,uBAAuB,CAC5B,SAAmC,EACnC,aAAqB;YAErB,yDAAyD;YACzD,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjE,CAAC;KACF;IAED,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC5D,IAAI,YAA4C,CAAC;QACjD,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,iBAAiB;YAC7B,cAAc,EAAE,UAAU;YAC1B,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE;YACd,YAAY,GAAG,IAAI,8BAA8B,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YACrF,kBAAkB,CAAC,aAA2B,CAAC,iBAAiB,CAAC;gBAChE,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,CAAC,iBAAiB,CAAC,EAAE;wBACnB,UAAU,EAAE;4BACV,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;4BACpD,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;4BAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;4BACjD,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;4BACjD,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;yBACpD;wBACD,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,SAAS,GAAG,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,CAAC;YAClG,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,yBAAyB,CACtD,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,QAAQ,CACT,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,kCAAkC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,SAAS,GAAG;gBAChB,kBAAkB,EAAE;oBAClB,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;oBAC1C,aAAa,EAAE,iBAAiB;iBACjC;aACF,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,yBAAyB,CACtD,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,QAAQ,CACT,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,YAAY,GAAG,yEAAyE,CAAC;YAC/F,MAAM,SAAS,GAAG;gBAChB,kBAAkB,EAAE;oBAClB,UAAU,EAAE,EAAE;oBACd,aAAa,EAAE,iBAAiB;iBACjC;aACF,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,yBAAyB,CACtD,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,YAAY,CACb,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAC/B,2EAA2E,CAC5E,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,MAAM,aAAa,GAAG,QAAQ,CAAC;QAC/B,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAChE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;aACjE;SACF,CAAC;QACF,UAAU,CAAC,GAAG,EAAE;YACd,oDAAoD;YACnD,cAAc,CAAC,IAAgC,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;iBACd;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,wBAAwB,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT;gBACE,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,0BAA0B,aAAa,EAAE;aACzD,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;oBACb,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;iBAC9B;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,wBAAwB,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,EACjB,SAAS,EACT;gBACE,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,0BAA0B,aAAa,EAAE;aACzD,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;YACxF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;oBACb,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBACxD;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,wBAAwB,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAC3C,SAAS,EACT;gBACE,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,0BAA0B,aAAa,EAAE;aACzD,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;oBACb,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;iBACxD;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,gCAAgC;YAChC,MAAM,QAAQ,GAAI,UAAU,CAAC,iBAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH;YACE;gBACE,QAAQ;gBACR,EAAE,MAAM,EAAE,KAAK,EAAE;gBACjB,CAAC,OAAgC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnF;YACD;gBACE,QAAQ;gBACR,EAAE,MAAM,EAAE,GAAG,EAAE;gBACf,CAAC,OAAgC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnF;YACD;gBACE,SAAS;gBACT,EAAE,MAAM,EAAE,IAAI,EAAE;gBAChB,CAAC,OAAgC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;aACpF;YACD;gBACE,QAAQ;gBACR,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,CAAC,OAAgC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnF;YACD;gBACE,OAAO;gBACP,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;gBACrB,CAAC,OAAgC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACvF;SACF,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE;YACtC,EAAE,CAAC,gDAAgD,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;gBACpE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;oBACzC,kBAAkB,EAAE;wBAClB,SAAS;wBACT,aAAa;wBACb,UAAU,EAAE,MAAM;qBACnB;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAI,UAAU,CAAC,iBAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAA4B,CAAC;gBACvD,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACzE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACF,SAAwD,CAAC,OAAO,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,MAAM,aAAa,GAAG,cAAc,CAAC;QACrC,uCAAuC;QACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAA+B,CAAC;QAC5D,MAAM,SAAS,GAAG;YAChB,IAAI,EAAE,eAAe;YACrB,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAChE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;aAClE;YACD,SAAS,EAAE;gBACT,GAAG,EAAE;oBACH,WAAW,EAAE,SAAS;oBACtB,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;qBACF;iBACF;aACF;SACF,CAAC;QAEF,UAAU,CAAC,GAAG,EAAE;YACd,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACtG,IAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;oBACb,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;iBAC1C;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAQ,MAAM,CAAC,IAAqD,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnG,MAAM,CAAC,OAAQ,MAAM,CAAC,IAAqD,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;oBACb,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;iBACxB;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CACvD,8BAA8B,EAC9B,OAAO,EACP,WAAW,EACX,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAC7B,SAAS,EACT;gBACE,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,0BAA0B,aAAa,EAAE;aACzD,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACnF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;oBACb,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;iBAC9B;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC;gBAC7C,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;aAClD,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;gBACzC,kBAAkB,EAAE;oBAClB,SAAS;oBACT,aAAa;oBACb,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;iBACzC;aACF,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,OAAQ,MAAM,CAAC,IAAsC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=dataverseDataOperationExecutor.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataverseDataOperationExecutor.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/dataverseDataOperationExecutor.spec.ts"],"names":[],"mappings":"AAAA;;GAEG"}