@microsoft/power-apps 0.3.1

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 (291) hide show
  1. package/LICENSE +153 -0
  2. package/README.md +63 -0
  3. package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts +5 -0
  4. package/lib/__tests__/connectorDataOperationExecutor.spec.d.ts.map +1 -0
  5. package/lib/__tests__/connectorDataOperationExecutor.spec.js +509 -0
  6. package/lib/__tests__/connectorDataOperationExecutor.spec.js.map +1 -0
  7. package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts +5 -0
  8. package/lib/__tests__/dataverseDataOperationExecutor.spec.d.ts.map +1 -0
  9. package/lib/__tests__/dataverseDataOperationExecutor.spec.js +349 -0
  10. package/lib/__tests__/dataverseDataOperationExecutor.spec.js.map +1 -0
  11. package/lib/__tests__/helpers/testHelpers.d.ts +27 -0
  12. package/lib/__tests__/helpers/testHelpers.d.ts.map +1 -0
  13. package/lib/__tests__/helpers/testHelpers.js +67 -0
  14. package/lib/__tests__/helpers/testHelpers.js.map +1 -0
  15. package/lib/__tests__/index.spec.d.ts +5 -0
  16. package/lib/__tests__/index.spec.d.ts.map +1 -0
  17. package/lib/__tests__/index.spec.js +10 -0
  18. package/lib/__tests__/index.spec.js.map +1 -0
  19. package/lib/__tests__/mockDataOperationExecutor.spec.d.ts +5 -0
  20. package/lib/__tests__/mockDataOperationExecutor.spec.d.ts.map +1 -0
  21. package/lib/__tests__/mockDataOperationExecutor.spec.js +51 -0
  22. package/lib/__tests__/mockDataOperationExecutor.spec.js.map +1 -0
  23. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts +17 -0
  24. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts.map +1 -0
  25. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js +35 -0
  26. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js.map +1 -0
  27. package/lib/__tests__/mocks/mockLog.d.ts +31 -0
  28. package/lib/__tests__/mocks/mockLog.d.ts.map +1 -0
  29. package/lib/__tests__/mocks/mockLog.js +53 -0
  30. package/lib/__tests__/mocks/mockLog.js.map +1 -0
  31. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts +76 -0
  32. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts.map +1 -0
  33. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js +81 -0
  34. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js.map +1 -0
  35. package/lib/__tests__/mocks/silenceConsole.d.ts +37 -0
  36. package/lib/__tests__/mocks/silenceConsole.d.ts.map +1 -0
  37. package/lib/__tests__/mocks/silenceConsole.js +58 -0
  38. package/lib/__tests__/mocks/silenceConsole.js.map +1 -0
  39. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts +5 -0
  40. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts.map +1 -0
  41. package/lib/__tests__/powerDataRuntimeInstance.test.js +179 -0
  42. package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -0
  43. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts +5 -0
  44. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts.map +1 -0
  45. package/lib/__tests__/powerDataSourcesInfoProvider.test.js +153 -0
  46. package/lib/__tests__/powerDataSourcesInfoProvider.test.js.map +1 -0
  47. package/lib/__tests__/runtimeClientProvider.test.d.ts +5 -0
  48. package/lib/__tests__/runtimeClientProvider.test.d.ts.map +1 -0
  49. package/lib/__tests__/runtimeClientProvider.test.js +248 -0
  50. package/lib/__tests__/runtimeClientProvider.test.js.map +1 -0
  51. package/lib/__tests__/runtimeDataClient.spec.d.ts +2 -0
  52. package/lib/__tests__/runtimeDataClient.spec.d.ts.map +1 -0
  53. package/lib/__tests__/runtimeDataClient.spec.js +351 -0
  54. package/lib/__tests__/runtimeDataClient.spec.js.map +1 -0
  55. package/lib/__tests__/runtimeDataClient.test.d.ts +2 -0
  56. package/lib/__tests__/runtimeDataClient.test.d.ts.map +1 -0
  57. package/lib/__tests__/runtimeDataClient.test.js +351 -0
  58. package/lib/__tests__/runtimeDataClient.test.js.map +1 -0
  59. package/lib/__tests__/runtimeDataOperation.test.d.ts +5 -0
  60. package/lib/__tests__/runtimeDataOperation.test.d.ts.map +1 -0
  61. package/lib/__tests__/runtimeDataOperation.test.js +234 -0
  62. package/lib/__tests__/runtimeDataOperation.test.js.map +1 -0
  63. package/lib/__tests__/runtimeMetadataClient.test.d.ts +5 -0
  64. package/lib/__tests__/runtimeMetadataClient.test.d.ts.map +1 -0
  65. package/lib/__tests__/runtimeMetadataClient.test.js +271 -0
  66. package/lib/__tests__/runtimeMetadataClient.test.js.map +1 -0
  67. package/lib/__tests__/runtimeMetadataOperations.test.d.ts +5 -0
  68. package/lib/__tests__/runtimeMetadataOperations.test.d.ts.map +1 -0
  69. package/lib/__tests__/runtimeMetadataOperations.test.js +286 -0
  70. package/lib/__tests__/runtimeMetadataOperations.test.js.map +1 -0
  71. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts +2 -0
  72. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts.map +1 -0
  73. package/lib/__tests__/serviceSchemaModelSnapshot.test.js +98 -0
  74. package/lib/__tests__/serviceSchemaModelSnapshot.test.js.map +1 -0
  75. package/lib/__tests__/types.spec.d.ts +5 -0
  76. package/lib/__tests__/types.spec.d.ts.map +1 -0
  77. package/lib/__tests__/types.spec.js +104 -0
  78. package/lib/__tests__/types.spec.js.map +1 -0
  79. package/lib/__tests__/utils.test.d.ts +5 -0
  80. package/lib/__tests__/utils.test.d.ts.map +1 -0
  81. package/lib/__tests__/utils.test.js +33 -0
  82. package/lib/__tests__/utils.test.js.map +1 -0
  83. package/lib/app/Lifecycle.d.ts +14 -0
  84. package/lib/app/Lifecycle.d.ts.map +1 -0
  85. package/lib/app/Lifecycle.js +37 -0
  86. package/lib/app/Lifecycle.js.map +1 -0
  87. package/lib/app/index.d.ts +5 -0
  88. package/lib/app/index.d.ts.map +1 -0
  89. package/lib/app/index.js +5 -0
  90. package/lib/app/index.js.map +1 -0
  91. package/lib/data/Data.types.d.ts +20 -0
  92. package/lib/data/Data.types.d.ts.map +1 -0
  93. package/lib/data/Data.types.js +5 -0
  94. package/lib/data/Data.types.js.map +1 -0
  95. package/lib/data/executors/index.d.ts +6 -0
  96. package/lib/data/executors/index.d.ts.map +1 -0
  97. package/lib/data/executors/index.js +5 -0
  98. package/lib/data/executors/index.js.map +1 -0
  99. package/lib/data/index.d.ts +7 -0
  100. package/lib/data/index.d.ts.map +1 -0
  101. package/lib/data/index.js +5 -0
  102. package/lib/data/index.js.map +1 -0
  103. package/lib/data/powerAppsData.d.ts +10 -0
  104. package/lib/data/powerAppsData.d.ts.map +1 -0
  105. package/lib/data/powerAppsData.js +43 -0
  106. package/lib/data/powerAppsData.js.map +1 -0
  107. package/lib/index.d.ts +8 -0
  108. package/lib/index.d.ts.map +1 -0
  109. package/lib/index.js +8 -0
  110. package/lib/index.js.map +1 -0
  111. package/lib/internal/communication/CompatibleMessageReceiver.d.ts +12 -0
  112. package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +1 -0
  113. package/lib/internal/communication/CompatibleMessageReceiver.js +92 -0
  114. package/lib/internal/communication/CompatibleMessageReceiver.js.map +1 -0
  115. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts +10 -0
  116. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +1 -0
  117. package/lib/internal/communication/IncompatibleMessageReceiver.js +13 -0
  118. package/lib/internal/communication/IncompatibleMessageReceiver.js.map +1 -0
  119. package/lib/internal/communication/MessageReceiver.Types.d.ts +18 -0
  120. package/lib/internal/communication/MessageReceiver.Types.d.ts.map +1 -0
  121. package/lib/internal/communication/MessageReceiver.Types.js +5 -0
  122. package/lib/internal/communication/MessageReceiver.Types.js.map +1 -0
  123. package/lib/internal/communication/SendMessage.d.ts +11 -0
  124. package/lib/internal/communication/SendMessage.d.ts.map +1 -0
  125. package/lib/internal/communication/SendMessage.js +32 -0
  126. package/lib/internal/communication/SendMessage.js.map +1 -0
  127. package/lib/internal/communication/SendMessageOperation.d.ts +15 -0
  128. package/lib/internal/communication/SendMessageOperation.d.ts.map +1 -0
  129. package/lib/internal/communication/SendMessageOperation.js +18 -0
  130. package/lib/internal/communication/SendMessageOperation.js.map +1 -0
  131. package/lib/internal/data/ConnectionUtils.d.ts +5 -0
  132. package/lib/internal/data/ConnectionUtils.d.ts.map +1 -0
  133. package/lib/internal/data/ConnectionUtils.js +20 -0
  134. package/lib/internal/data/ConnectionUtils.js.map +1 -0
  135. package/lib/internal/data/OperationExecutor.d.ts +18 -0
  136. package/lib/internal/data/OperationExecutor.d.ts.map +1 -0
  137. package/lib/internal/data/OperationExecutor.js +35 -0
  138. package/lib/internal/data/OperationExecutor.js.map +1 -0
  139. package/lib/internal/data/core/api/createRecord.d.ts +13 -0
  140. package/lib/internal/data/core/api/createRecord.d.ts.map +1 -0
  141. package/lib/internal/data/core/api/createRecord.js +15 -0
  142. package/lib/internal/data/core/api/createRecord.js.map +1 -0
  143. package/lib/internal/data/core/api/deleteRecord.d.ts +13 -0
  144. package/lib/internal/data/core/api/deleteRecord.d.ts.map +1 -0
  145. package/lib/internal/data/core/api/deleteRecord.js +15 -0
  146. package/lib/internal/data/core/api/deleteRecord.js.map +1 -0
  147. package/lib/internal/data/core/api/execute.d.ts +11 -0
  148. package/lib/internal/data/core/api/execute.d.ts.map +1 -0
  149. package/lib/internal/data/core/api/execute.js +13 -0
  150. package/lib/internal/data/core/api/execute.js.map +1 -0
  151. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts +13 -0
  152. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -0
  153. package/lib/internal/data/core/api/retrieveMultipleRecords.js +15 -0
  154. package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -0
  155. package/lib/internal/data/core/api/retrieveRecord.d.ts +13 -0
  156. package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -0
  157. package/lib/internal/data/core/api/retrieveRecord.js +15 -0
  158. package/lib/internal/data/core/api/retrieveRecord.js.map +1 -0
  159. package/lib/internal/data/core/api/updateRecord.d.ts +14 -0
  160. package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -0
  161. package/lib/internal/data/core/api/updateRecord.js +16 -0
  162. package/lib/internal/data/core/api/updateRecord.js.map +1 -0
  163. package/lib/internal/data/core/common/types.d.ts +230 -0
  164. package/lib/internal/data/core/common/types.d.ts.map +1 -0
  165. package/lib/internal/data/core/common/types.js +25 -0
  166. package/lib/internal/data/core/common/types.js.map +1 -0
  167. package/lib/internal/data/core/common/utils.d.ts +19 -0
  168. package/lib/internal/data/core/common/utils.d.ts.map +1 -0
  169. package/lib/internal/data/core/common/utils.js +47 -0
  170. package/lib/internal/data/core/common/utils.js.map +1 -0
  171. package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts +93 -0
  172. package/lib/internal/data/core/data/defaultOperationOrchestrator.d.ts.map +1 -0
  173. package/lib/internal/data/core/data/defaultOperationOrchestrator.js +249 -0
  174. package/lib/internal/data/core/data/defaultOperationOrchestrator.js.map +1 -0
  175. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts +160 -0
  176. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.d.ts.map +1 -0
  177. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js +500 -0
  178. package/lib/internal/data/core/data/executors/connectorDataOperationExecutor.js.map +1 -0
  179. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts +164 -0
  180. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.d.ts.map +1 -0
  181. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js +508 -0
  182. package/lib/internal/data/core/data/executors/dataverseDataOperationExecutor.js.map +1 -0
  183. package/lib/internal/data/core/data/executors/index.d.ts +5 -0
  184. package/lib/internal/data/core/data/executors/index.d.ts.map +1 -0
  185. package/lib/internal/data/core/data/executors/index.js +5 -0
  186. package/lib/internal/data/core/data/executors/index.js.map +1 -0
  187. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts +21 -0
  188. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.d.ts.map +1 -0
  189. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js +75 -0
  190. package/lib/internal/data/core/data/executors/mockDataOperationExecutor.js.map +1 -0
  191. package/lib/internal/data/core/error/codes.d.ts +31 -0
  192. package/lib/internal/data/core/error/codes.d.ts.map +1 -0
  193. package/lib/internal/data/core/error/codes.js +39 -0
  194. package/lib/internal/data/core/error/codes.js.map +1 -0
  195. package/lib/internal/data/core/error/constants.d.ts +30 -0
  196. package/lib/internal/data/core/error/constants.d.ts.map +1 -0
  197. package/lib/internal/data/core/error/constants.js +33 -0
  198. package/lib/internal/data/core/error/constants.js.map +1 -0
  199. package/lib/internal/data/core/error/error.d.ts +8 -0
  200. package/lib/internal/data/core/error/error.d.ts.map +1 -0
  201. package/lib/internal/data/core/error/error.js +8 -0
  202. package/lib/internal/data/core/error/error.js.map +1 -0
  203. package/lib/internal/data/core/error/messages.d.ts +24 -0
  204. package/lib/internal/data/core/error/messages.d.ts.map +1 -0
  205. package/lib/internal/data/core/error/messages.js +55 -0
  206. package/lib/internal/data/core/error/messages.js.map +1 -0
  207. package/lib/internal/data/core/error/types.d.ts +30 -0
  208. package/lib/internal/data/core/error/types.d.ts.map +1 -0
  209. package/lib/internal/data/core/error/types.js +28 -0
  210. package/lib/internal/data/core/error/types.js.map +1 -0
  211. package/lib/internal/data/core/error/util.d.ts +24 -0
  212. package/lib/internal/data/core/error/util.d.ts.map +1 -0
  213. package/lib/internal/data/core/error/util.js +71 -0
  214. package/lib/internal/data/core/error/util.js.map +1 -0
  215. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts +65 -0
  216. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -0
  217. package/lib/internal/data/core/metadata/runtimeDataSourceService.js +101 -0
  218. package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -0
  219. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts +17 -0
  220. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts.map +1 -0
  221. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js +34 -0
  222. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js.map +1 -0
  223. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +11 -0
  224. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -0
  225. package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -0
  226. package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -0
  227. package/lib/internal/data/core/runtime/initializeRuntime.d.ts +13 -0
  228. package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +1 -0
  229. package/lib/internal/data/core/runtime/initializeRuntime.js +38 -0
  230. package/lib/internal/data/core/runtime/initializeRuntime.js.map +1 -0
  231. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +68 -0
  232. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -0
  233. package/lib/internal/data/core/runtime/powerDataRuntime.js +116 -0
  234. package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -0
  235. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +20 -0
  236. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -0
  237. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +36 -0
  238. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -0
  239. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts +34 -0
  240. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts.map +1 -0
  241. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js +45 -0
  242. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js.map +1 -0
  243. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts +43 -0
  244. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts.map +1 -0
  245. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js +87 -0
  246. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js.map +1 -0
  247. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts +112 -0
  248. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -0
  249. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +457 -0
  250. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -0
  251. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts +40 -0
  252. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts.map +1 -0
  253. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js +94 -0
  254. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js.map +1 -0
  255. package/lib/internal/data/core/telemetry/log.d.ts +20 -0
  256. package/lib/internal/data/core/telemetry/log.d.ts.map +1 -0
  257. package/lib/internal/data/core/telemetry/log.js +85 -0
  258. package/lib/internal/data/core/telemetry/log.js.map +1 -0
  259. package/lib/internal/data/core/types/index.d.ts +164 -0
  260. package/lib/internal/data/core/types/index.d.ts.map +1 -0
  261. package/lib/internal/data/core/types/index.js +7 -0
  262. package/lib/internal/data/core/types/index.js.map +1 -0
  263. package/lib/internal/plugin/PluginCommon.d.ts +16 -0
  264. package/lib/internal/plugin/PluginCommon.d.ts.map +1 -0
  265. package/lib/internal/plugin/PluginCommon.js +116 -0
  266. package/lib/internal/plugin/PluginCommon.js.map +1 -0
  267. package/lib/internal/plugin/PluginMobile.d.ts +13 -0
  268. package/lib/internal/plugin/PluginMobile.d.ts.map +1 -0
  269. package/lib/internal/plugin/PluginMobile.js +109 -0
  270. package/lib/internal/plugin/PluginMobile.js.map +1 -0
  271. package/lib/telemetry/Logger.types.d.ts +8 -0
  272. package/lib/telemetry/Logger.types.d.ts.map +1 -0
  273. package/lib/telemetry/Logger.types.js +5 -0
  274. package/lib/telemetry/Logger.types.js.map +1 -0
  275. package/lib/telemetry/LoggerManager.d.ts +6 -0
  276. package/lib/telemetry/LoggerManager.d.ts.map +1 -0
  277. package/lib/telemetry/LoggerManager.js +28 -0
  278. package/lib/telemetry/LoggerManager.js.map +1 -0
  279. package/lib/telemetry/Metrics.types.d.ts +53 -0
  280. package/lib/telemetry/Metrics.types.d.ts.map +1 -0
  281. package/lib/telemetry/Metrics.types.js +5 -0
  282. package/lib/telemetry/Metrics.types.js.map +1 -0
  283. package/lib/telemetry/Performance.d.ts +5 -0
  284. package/lib/telemetry/Performance.d.ts.map +1 -0
  285. package/lib/telemetry/Performance.js +47 -0
  286. package/lib/telemetry/Performance.js.map +1 -0
  287. package/lib/telemetry/index.d.ts +5 -0
  288. package/lib/telemetry/index.d.ts.map +1 -0
  289. package/lib/telemetry/index.js +5 -0
  290. package/lib/telemetry/index.js.map +1 -0
  291. package/package.json +44 -0
@@ -0,0 +1,249 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { DataSources } from '../common/types';
5
+ import { createErrorResponse, DataOperationErrorMessages } from '../error/error';
6
+ import { getDataOperationExecutor } from '../../../../data/powerAppsData';
7
+ /**
8
+ * RuntimeDataOperations provides a unified interface for performing data operations
9
+ * across different data sources.
10
+ */
11
+ export class DefaultDataOperationOrchestrator {
12
+ _dataverseOperation;
13
+ _connectorOperation;
14
+ _connectionsService;
15
+ // Static identifiers for services and actions
16
+ // Used to identify specific services and actions within the PowerApps environment
17
+ constructor(_dataverseOperation, _connectorOperation, _connectionsService) {
18
+ this._dataverseOperation = _dataverseOperation;
19
+ this._connectorOperation = _connectorOperation;
20
+ this._connectionsService = _connectionsService;
21
+ }
22
+ /**
23
+ * Creates a new record in the specified data source.
24
+ * @param tableName - The name of the table.
25
+ * @param data - The record data to create.
26
+ * @returns A promise that resolves to the operation result.
27
+ * @throws DataOperationError if the operation fails.
28
+ */
29
+ async createRecordAsync(tableName, data) {
30
+ try {
31
+ this._validateParams({ tableName, data });
32
+ const executor = await this._getExecutor(tableName);
33
+ return await executor.createRecordAsync(tableName, data);
34
+ }
35
+ catch (error) {
36
+ return createErrorResponse(error, 'Create record operation failed');
37
+ }
38
+ }
39
+ /**
40
+ * Updates an existing record in the specified data source.
41
+ * @param tableName - The name of the table.
42
+ * @param id - The ID of the record to update.
43
+ * @param data - The updated record data.
44
+ * @returns A promise that resolves to the operation result.
45
+ * @throws DataOperationError if the operation fails.
46
+ */
47
+ async updateRecordAsync(tableName, id, data) {
48
+ try {
49
+ this._validateParams({ tableName, id, data });
50
+ const executor = await this._getExecutor(tableName);
51
+ return await executor.updateRecordAsync(tableName, id, data);
52
+ }
53
+ catch (error) {
54
+ return createErrorResponse(error, 'Update record operation failed');
55
+ }
56
+ }
57
+ /**
58
+ * Deletes a record from the specified data source.
59
+ * @param tableName - The name of the table.
60
+ * @param id - The ID of the record to delete.
61
+ * @returns A promise that resolves to the operation result.
62
+ * @throws DataOperationError if the operation fails.
63
+ */
64
+ async deleteRecordAsync(tableName, id) {
65
+ try {
66
+ this._validateParams({ tableName, id });
67
+ const executor = await this._getExecutor(tableName);
68
+ return await executor.deleteRecordAsync(tableName, id);
69
+ }
70
+ catch (error) {
71
+ return createErrorResponse(error, 'Delete record operation failed');
72
+ }
73
+ }
74
+ /**
75
+ * Retrieves a record from the specified data source.
76
+ * @param tableName - The name of the table.
77
+ * @param id - The ID of the record to retrieve.
78
+ * @param options - Optional operation options.
79
+ * @returns A promise that resolves to the operation result.
80
+ * @throws DataOperationError if the operation fails.
81
+ */
82
+ async retrieveRecordAsync(tableName, id, options) {
83
+ try {
84
+ this._validateParams({ tableName, id });
85
+ const executor = await this._getExecutor(tableName);
86
+ const optionsString = this._convertOptionsToString(options);
87
+ return await executor.retrieveRecordAsync(tableName, id, optionsString, options?.maxPageSize);
88
+ }
89
+ catch (error) {
90
+ return createErrorResponse(error, 'Retrieve record operation failed');
91
+ }
92
+ }
93
+ /**
94
+ * Retrieves multiple records from the specified data source.
95
+ * @param tableName - The name of the table.
96
+ * @param options - Optional operation options.
97
+ * @returns A promise that resolves to the operation result.
98
+ * @throws DataOperationError if the operation fails.
99
+ */
100
+ async retrieveMultipleRecordsAsync(tableName, options) {
101
+ try {
102
+ this._validateParams({ tableName });
103
+ const executor = await this._getExecutor(tableName);
104
+ const optionsString = this._convertOptionsToString(options);
105
+ return await executor.retrieveMultipleRecordsAsync(tableName, optionsString, options?.maxPageSize);
106
+ }
107
+ catch (error) {
108
+ return createErrorResponse(error, 'Retrieve multiple records operation failed');
109
+ }
110
+ }
111
+ /**
112
+ * Executes a data operation on the specified data source.
113
+ * @param operation - The operation to execute
114
+ * @returns A promise that resolves to the operation result.
115
+ * @throws DataOperationError if the operation fails.
116
+ */
117
+ async executeAsync(operation) {
118
+ try {
119
+ this._validateParams({ operation });
120
+ const executor = await this._getExecutor('', operation.connectorOperation ? DataSources.Connector : DataSources.Dataverse);
121
+ return await executor.executeAsync(operation);
122
+ }
123
+ catch (error) {
124
+ return createErrorResponse(error, 'Execute operation failed');
125
+ }
126
+ }
127
+ /**
128
+ * Retrieves the appropriate executor based on the data source.
129
+ * @param dataSource - The data source to retrieve the executor for.
130
+ * @returns The corresponding executor instance.
131
+ * @throws DataOperationError if the data source is invalid.
132
+ * // TODO: Add Dataverse support
133
+ */
134
+ async _getExecutor(tableName, dataSource) {
135
+ const dataOperationExecutorOverride = getDataOperationExecutor();
136
+ if (dataOperationExecutorOverride) {
137
+ return dataOperationExecutorOverride;
138
+ }
139
+ const dataSourceType = dataSource || (await this._connectionsService.getDataSource(tableName)).dataSourceType;
140
+ switch (dataSourceType) {
141
+ case DataSources.Dataverse:
142
+ return this._dataverseOperation;
143
+ case DataSources.Connector:
144
+ return this._connectorOperation;
145
+ default:
146
+ return this._connectorOperation;
147
+ }
148
+ }
149
+ /**
150
+ * Validates the input parameters for data operations.
151
+ * @param params - The parameters to validate.
152
+ * @throws DataOperationError if validation fails.
153
+ */
154
+ _validateParams(params) {
155
+ for (const [key, value] of Object.entries(params)) {
156
+ if (!value) {
157
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: ${key} is required`);
158
+ }
159
+ }
160
+ }
161
+ /**
162
+ * Converts operation options to a query string format.
163
+ * @param options - The operation options to convert.
164
+ * @returns The formatted query string.
165
+ */
166
+ _convertOptionsToString(options) {
167
+ if (!options) {
168
+ return '';
169
+ }
170
+ this._validateOptions(options);
171
+ const parts = [];
172
+ if (options.select && options.select.length > 0) {
173
+ parts.push(`$select=${encodeURIComponent(options.select.map((s) => s.trim().replace(/%20/g, '+').replace(/'/g, '%27')).join(','))}`);
174
+ }
175
+ if (options.filter) {
176
+ const encodedFilter = encodeURIComponent(options.filter.trim())
177
+ .replace(/%20/g, '+')
178
+ .replace(/'/g, '%27');
179
+ parts.push(`$filter=${encodedFilter}`);
180
+ }
181
+ if (options.orderBy && options.orderBy.length > 0) {
182
+ parts.push(`$orderby=${encodeURIComponent(options.orderBy.map((s) => s.trim().replace(/%20/g, '+').replace(/'/g, '%27')).join(','))}`);
183
+ }
184
+ if (options.top !== undefined && options.top !== null) {
185
+ parts.push(`$top=${options.top}`);
186
+ }
187
+ if (options.skip !== undefined && options.skip !== null) {
188
+ parts.push(`$skip=${options.skip}`);
189
+ }
190
+ if (options.count !== undefined && options.count !== null) {
191
+ parts.push(`$count=${options.count}`);
192
+ }
193
+ if (options.skipToken && options.skipToken.trim() !== '') {
194
+ parts.push(`$skiptoken=${encodeURIComponent(options.skipToken.trim())}`);
195
+ }
196
+ return parts.length ? `?${parts.join('&')}` : '';
197
+ }
198
+ /**
199
+ * Validates the operation options.
200
+ * @param options - The operation options to validate.
201
+ * @throws Error if validation fails.
202
+ */
203
+ _validateOptions(options) {
204
+ // maxPageSize must be a number
205
+ if (options.maxPageSize && typeof options.maxPageSize !== 'number') {
206
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: maxPageSize must be a number`);
207
+ }
208
+ /*
209
+ select
210
+ - must be an array of string
211
+ - no empty strings allowed
212
+ - no null or undefined values allowed
213
+ */
214
+ if (options.select) {
215
+ if (!Array.isArray(options.select)) {
216
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: select must be an array of strings`);
217
+ }
218
+ if (options.select.some((s) => typeof s !== 'string' || s.trim() === '')) {
219
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: select must contain only non-empty strings`);
220
+ }
221
+ }
222
+ // filter must be a string
223
+ if (options.filter && typeof options.filter !== 'string') {
224
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: filter must be a string`);
225
+ }
226
+ // orderBy must be an array of strings
227
+ if (options.orderBy) {
228
+ if (!Array.isArray(options.orderBy)) {
229
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: orderBy must be an array of strings`);
230
+ }
231
+ if (options.orderBy.some((s) => typeof s !== 'string' || s.trim() === '')) {
232
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: orderBy must contain only non-empty strings`);
233
+ }
234
+ }
235
+ // top must be a number
236
+ if (options.top && typeof options.top !== 'number') {
237
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: top must be a number`);
238
+ }
239
+ // skip must be a number
240
+ if (options.skip && typeof options.skip !== 'number') {
241
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: skip must be a number`);
242
+ }
243
+ // count must be a boolean
244
+ if (options.count && typeof options.count !== 'boolean') {
245
+ throw new Error(`${DataOperationErrorMessages.InvalidOperationParameters}: count must be a boolean`);
246
+ }
247
+ }
248
+ }
249
+ //# sourceMappingURL=defaultOperationOrchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultOperationOrchestrator.js","sourceRoot":"","sources":["../../../../../src/internal/data/core/data/defaultOperationOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { IConnectionReference, IRuntimeClientProvider } from '../../common/types';
5
+ import { RuntimeDataSourceService } from '../../metadata/runtimeDataSourceService';
6
+ import type { IDataOperation, IDataOperationExecutor, IOperationResult } from '../../types';
7
+ /**
8
+ * Type for connection references mapping
9
+ */
10
+ export type ConnectionReferences = Record<string, IConnectionReference>;
11
+ /**
12
+ * Interface for connector operation configuration
13
+ */
14
+ export interface IConnectorOperationConfig {
15
+ tableName: string;
16
+ apiId: string;
17
+ runtimeUrl: string;
18
+ connectionName: string;
19
+ datasetName?: string;
20
+ tableId: string;
21
+ version?: string;
22
+ datasetNameOverride?: string;
23
+ }
24
+ /**
25
+ * ConnectorDataOperation provides functionality for performing CRUD operations
26
+ * against connector data sources using the Runtime Data Client.
27
+ */
28
+ export declare class ConnectorDataOperationExecutor implements IDataOperationExecutor {
29
+ private readonly _clientProvider;
30
+ private readonly _connectionsService;
31
+ private _databaseReferences;
32
+ private _connectionReferences;
33
+ constructor(clientProvider: IRuntimeClientProvider, connectionsService: RuntimeDataSourceService);
34
+ /**
35
+ * Creates a new record in the specified table
36
+ */
37
+ createRecordAsync<TRequest, TResponse>(tableName: string, data: TRequest): Promise<IOperationResult<TResponse>>;
38
+ /**
39
+ * Updates an existing record in the specified table
40
+ */
41
+ updateRecordAsync<TRequest, TResponse>(tableName: string, id: string, data: TRequest): Promise<IOperationResult<TResponse>>;
42
+ /**
43
+ * Deletes a record from the specified table
44
+ */
45
+ deleteRecordAsync(tableName: string, id: string): Promise<IOperationResult<void>>;
46
+ /**
47
+ * Retrieves a single record from the specified table
48
+ */
49
+ retrieveRecordAsync<TResponse>(tableName: string, id: string, options: string): Promise<IOperationResult<TResponse>>;
50
+ /**
51
+ * Retrieves multiple records from the specified table
52
+ */
53
+ retrieveMultipleRecordsAsync<TResponse>(tableName: string, options: string): Promise<IOperationResult<TResponse[]>>;
54
+ /**
55
+ * Executes a custom operation on the data source
56
+ */
57
+ executeAsync<TRequest, TResponse>(operation: IDataOperation<TRequest>): Promise<IOperationResult<TResponse>>;
58
+ /**
59
+ * Determines the appropriate HTTP method for a request
60
+ * @param requestUrl - The URL for the request
61
+ * @param dataSourceInfo - The data source information
62
+ * @param operation - The operation name
63
+ * @returns The HTTP method to use
64
+ */
65
+ private _getHttpMethod;
66
+ /**
67
+ * Builds the operation body parameters
68
+ */
69
+ private _buildOperationBody;
70
+ /**
71
+ * Builds operation body parameters from the operation and data source info
72
+ */
73
+ private _buildOperationBodyParam;
74
+ /**
75
+ * Builds the operation header for a given data operation if required.
76
+ *
77
+ * @template TRequest - The type of the request payload for the data operation.
78
+ * @param dataOperationRequest - The data operation containing details about the connector operation.
79
+ * @param tableName - The name of the table associated with the data operation.
80
+ * @returns A promise that resolves to the operation header as a string if a header parameter is required,
81
+ * or `undefined` if no header parameter is needed.
82
+ */
83
+ private _buildOperationHeader;
84
+ /**
85
+ * Builds the operation header parameters as a JSON string for a given data operation.
86
+ *
87
+ * @template TRequest - The type of the request object for the data operation.
88
+ * @param dataOperationRequest - The data operation containing connector operation details and parameters.
89
+ * @param tableName - The name of the table associated with the data operation.
90
+ * @returns A promise that resolves to a JSON string representing the header parameters,
91
+ * or `undefined` if no `header` parameters are available.
92
+ */
93
+ private _buildOperationHeaderParam;
94
+ /**
95
+ * Constructs the request URL for table operations
96
+ * @param tableName - The name of the table
97
+ * @param connectionReference - The connection reference
98
+ * @param options - Optional URL parameters
99
+ * @param encodeOptions - Whether to encode the options
100
+ * @returns The constructed URL
101
+ */
102
+ private _buildTableUrl;
103
+ /**
104
+ * Builds the operation URL
105
+ */
106
+ private _buildOperationUrl;
107
+ /**
108
+ * Gets the connection references
109
+ */
110
+ private _getConnectionReferencesAsync;
111
+ /**
112
+ * Gets the database references
113
+ */
114
+ private _getDatabaseReferencesAsync;
115
+ /**
116
+ * Gets the metadata client instance
117
+ */
118
+ private _getMetadataClient;
119
+ /**
120
+ * Gets the connection reference for a table
121
+ */
122
+ private _getConnectionReference;
123
+ /**
124
+ * Gets both the data client and connection reference
125
+ */
126
+ private _getClientsAndConnection;
127
+ /**
128
+ * Builds the URL for shared SQL operations
129
+ */
130
+ private _buildSharedSqlOperationUrl;
131
+ /**
132
+ * Builds the URL for standard operations
133
+ */
134
+ private _buildStandardOperationUrl;
135
+ /**
136
+ * Normalizes the parameter name by replacing hyphens with underscores and performs case-insensitive matching
137
+ */
138
+ private _getNormalizedParamValue;
139
+ /**
140
+ * Processes operation parameters into path and query parameters
141
+ */
142
+ private _processParameters;
143
+ /**
144
+ * Gets the operation configuration
145
+ */
146
+ private _getOperationConfig;
147
+ /**
148
+ * Initializes the clients
149
+ */
150
+ private _getReferences;
151
+ /**
152
+ * Validates constructor parameters
153
+ */
154
+ private _validateConstructorParams;
155
+ /**
156
+ * Constructs the final URL
157
+ */
158
+ private _constructUrl;
159
+ }
160
+ //# sourceMappingURL=connectorDataOperationExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorDataOperationExecutor.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/data/core/data/executors/connectorDataOperationExecutor.ts"],"names":[],"mappings":"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"}