@microsoft/power-apps 1.0.0

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 (275) hide show
  1. package/LICENSE +153 -0
  2. package/README.md +43 -0
  3. package/lib/__tests__/connectorDataOperation.spec.d.ts +5 -0
  4. package/lib/__tests__/connectorDataOperation.spec.d.ts.map +1 -0
  5. package/lib/__tests__/connectorDataOperation.spec.js +509 -0
  6. package/lib/__tests__/connectorDataOperation.spec.js.map +1 -0
  7. package/lib/__tests__/dataverseDataOperation.spec.d.ts +5 -0
  8. package/lib/__tests__/dataverseDataOperation.spec.d.ts.map +1 -0
  9. package/lib/__tests__/dataverseDataOperation.spec.js +349 -0
  10. package/lib/__tests__/dataverseDataOperation.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__/mocks/mockDataverseRetrieveMultipleResponse.d.ts +17 -0
  20. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts.map +1 -0
  21. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js +35 -0
  22. package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js.map +1 -0
  23. package/lib/__tests__/mocks/mockLog.d.ts +31 -0
  24. package/lib/__tests__/mocks/mockLog.d.ts.map +1 -0
  25. package/lib/__tests__/mocks/mockLog.js +53 -0
  26. package/lib/__tests__/mocks/mockLog.js.map +1 -0
  27. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts +76 -0
  28. package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts.map +1 -0
  29. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js +81 -0
  30. package/lib/__tests__/mocks/mockTeamsConnectorResponse.js.map +1 -0
  31. package/lib/__tests__/mocks/silenceConsole.d.ts +37 -0
  32. package/lib/__tests__/mocks/silenceConsole.d.ts.map +1 -0
  33. package/lib/__tests__/mocks/silenceConsole.js +58 -0
  34. package/lib/__tests__/mocks/silenceConsole.js.map +1 -0
  35. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts +5 -0
  36. package/lib/__tests__/powerDataRuntimeInstance.test.d.ts.map +1 -0
  37. package/lib/__tests__/powerDataRuntimeInstance.test.js +179 -0
  38. package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -0
  39. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts +5 -0
  40. package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts.map +1 -0
  41. package/lib/__tests__/powerDataSourcesInfoProvider.test.js +153 -0
  42. package/lib/__tests__/powerDataSourcesInfoProvider.test.js.map +1 -0
  43. package/lib/__tests__/runtimeClientProvider.test.d.ts +5 -0
  44. package/lib/__tests__/runtimeClientProvider.test.d.ts.map +1 -0
  45. package/lib/__tests__/runtimeClientProvider.test.js +248 -0
  46. package/lib/__tests__/runtimeClientProvider.test.js.map +1 -0
  47. package/lib/__tests__/runtimeDataClient.spec.d.ts +2 -0
  48. package/lib/__tests__/runtimeDataClient.spec.d.ts.map +1 -0
  49. package/lib/__tests__/runtimeDataClient.spec.js +351 -0
  50. package/lib/__tests__/runtimeDataClient.spec.js.map +1 -0
  51. package/lib/__tests__/runtimeDataClient.test.d.ts +2 -0
  52. package/lib/__tests__/runtimeDataClient.test.d.ts.map +1 -0
  53. package/lib/__tests__/runtimeDataClient.test.js +351 -0
  54. package/lib/__tests__/runtimeDataClient.test.js.map +1 -0
  55. package/lib/__tests__/runtimeDataOperation.test.d.ts +5 -0
  56. package/lib/__tests__/runtimeDataOperation.test.d.ts.map +1 -0
  57. package/lib/__tests__/runtimeDataOperation.test.js +234 -0
  58. package/lib/__tests__/runtimeDataOperation.test.js.map +1 -0
  59. package/lib/__tests__/runtimeMetadataClient.test.d.ts +5 -0
  60. package/lib/__tests__/runtimeMetadataClient.test.d.ts.map +1 -0
  61. package/lib/__tests__/runtimeMetadataClient.test.js +271 -0
  62. package/lib/__tests__/runtimeMetadataClient.test.js.map +1 -0
  63. package/lib/__tests__/runtimeMetadataOperations.test.d.ts +5 -0
  64. package/lib/__tests__/runtimeMetadataOperations.test.d.ts.map +1 -0
  65. package/lib/__tests__/runtimeMetadataOperations.test.js +286 -0
  66. package/lib/__tests__/runtimeMetadataOperations.test.js.map +1 -0
  67. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts +2 -0
  68. package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts.map +1 -0
  69. package/lib/__tests__/serviceSchemaModelSnapshot.test.js +98 -0
  70. package/lib/__tests__/serviceSchemaModelSnapshot.test.js.map +1 -0
  71. package/lib/__tests__/types.spec.d.ts +5 -0
  72. package/lib/__tests__/types.spec.d.ts.map +1 -0
  73. package/lib/__tests__/types.spec.js +104 -0
  74. package/lib/__tests__/types.spec.js.map +1 -0
  75. package/lib/__tests__/utils.test.d.ts +5 -0
  76. package/lib/__tests__/utils.test.d.ts.map +1 -0
  77. package/lib/__tests__/utils.test.js +33 -0
  78. package/lib/__tests__/utils.test.js.map +1 -0
  79. package/lib/app/Lifecycle.d.ts +9 -0
  80. package/lib/app/Lifecycle.d.ts.map +1 -0
  81. package/lib/app/Lifecycle.js +36 -0
  82. package/lib/app/Lifecycle.js.map +1 -0
  83. package/lib/app/index.d.ts +5 -0
  84. package/lib/app/index.d.ts.map +1 -0
  85. package/lib/app/index.js +5 -0
  86. package/lib/app/index.js.map +1 -0
  87. package/lib/data/Data.types.d.ts +20 -0
  88. package/lib/data/Data.types.d.ts.map +1 -0
  89. package/lib/data/Data.types.js +5 -0
  90. package/lib/data/Data.types.js.map +1 -0
  91. package/lib/data/index.d.ts +7 -0
  92. package/lib/data/index.d.ts.map +1 -0
  93. package/lib/data/index.js +5 -0
  94. package/lib/data/index.js.map +1 -0
  95. package/lib/data/powerAppsData.d.ts +8 -0
  96. package/lib/data/powerAppsData.d.ts.map +1 -0
  97. package/lib/data/powerAppsData.js +38 -0
  98. package/lib/data/powerAppsData.js.map +1 -0
  99. package/lib/index.d.ts +8 -0
  100. package/lib/index.d.ts.map +1 -0
  101. package/lib/index.js +8 -0
  102. package/lib/index.js.map +1 -0
  103. package/lib/internal/communication/CompatibleMessageReceiver.d.ts +12 -0
  104. package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +1 -0
  105. package/lib/internal/communication/CompatibleMessageReceiver.js +92 -0
  106. package/lib/internal/communication/CompatibleMessageReceiver.js.map +1 -0
  107. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts +10 -0
  108. package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +1 -0
  109. package/lib/internal/communication/IncompatibleMessageReceiver.js +13 -0
  110. package/lib/internal/communication/IncompatibleMessageReceiver.js.map +1 -0
  111. package/lib/internal/communication/MessageReceiver.Types.d.ts +18 -0
  112. package/lib/internal/communication/MessageReceiver.Types.d.ts.map +1 -0
  113. package/lib/internal/communication/MessageReceiver.Types.js +5 -0
  114. package/lib/internal/communication/MessageReceiver.Types.js.map +1 -0
  115. package/lib/internal/communication/SendMessage.d.ts +11 -0
  116. package/lib/internal/communication/SendMessage.d.ts.map +1 -0
  117. package/lib/internal/communication/SendMessage.js +32 -0
  118. package/lib/internal/communication/SendMessage.js.map +1 -0
  119. package/lib/internal/communication/SendMessageOperation.d.ts +15 -0
  120. package/lib/internal/communication/SendMessageOperation.d.ts.map +1 -0
  121. package/lib/internal/communication/SendMessageOperation.js +18 -0
  122. package/lib/internal/communication/SendMessageOperation.js.map +1 -0
  123. package/lib/internal/data/ConnectionUtils.d.ts +5 -0
  124. package/lib/internal/data/ConnectionUtils.d.ts.map +1 -0
  125. package/lib/internal/data/ConnectionUtils.js +20 -0
  126. package/lib/internal/data/ConnectionUtils.js.map +1 -0
  127. package/lib/internal/data/OperationExecutor.d.ts +18 -0
  128. package/lib/internal/data/OperationExecutor.d.ts.map +1 -0
  129. package/lib/internal/data/OperationExecutor.js +35 -0
  130. package/lib/internal/data/OperationExecutor.js.map +1 -0
  131. package/lib/internal/data/core/api/createRecord.d.ts +13 -0
  132. package/lib/internal/data/core/api/createRecord.d.ts.map +1 -0
  133. package/lib/internal/data/core/api/createRecord.js +15 -0
  134. package/lib/internal/data/core/api/createRecord.js.map +1 -0
  135. package/lib/internal/data/core/api/deleteRecord.d.ts +13 -0
  136. package/lib/internal/data/core/api/deleteRecord.d.ts.map +1 -0
  137. package/lib/internal/data/core/api/deleteRecord.js +15 -0
  138. package/lib/internal/data/core/api/deleteRecord.js.map +1 -0
  139. package/lib/internal/data/core/api/execute.d.ts +11 -0
  140. package/lib/internal/data/core/api/execute.d.ts.map +1 -0
  141. package/lib/internal/data/core/api/execute.js +13 -0
  142. package/lib/internal/data/core/api/execute.js.map +1 -0
  143. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts +13 -0
  144. package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -0
  145. package/lib/internal/data/core/api/retrieveMultipleRecords.js +15 -0
  146. package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -0
  147. package/lib/internal/data/core/api/retrieveRecord.d.ts +13 -0
  148. package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -0
  149. package/lib/internal/data/core/api/retrieveRecord.js +15 -0
  150. package/lib/internal/data/core/api/retrieveRecord.js.map +1 -0
  151. package/lib/internal/data/core/api/updateRecord.d.ts +14 -0
  152. package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -0
  153. package/lib/internal/data/core/api/updateRecord.js +16 -0
  154. package/lib/internal/data/core/api/updateRecord.js.map +1 -0
  155. package/lib/internal/data/core/common/types.d.ts +230 -0
  156. package/lib/internal/data/core/common/types.d.ts.map +1 -0
  157. package/lib/internal/data/core/common/types.js +25 -0
  158. package/lib/internal/data/core/common/types.js.map +1 -0
  159. package/lib/internal/data/core/common/utils.d.ts +19 -0
  160. package/lib/internal/data/core/common/utils.d.ts.map +1 -0
  161. package/lib/internal/data/core/common/utils.js +47 -0
  162. package/lib/internal/data/core/common/utils.js.map +1 -0
  163. package/lib/internal/data/core/data/connectorDataOperation.d.ts +160 -0
  164. package/lib/internal/data/core/data/connectorDataOperation.d.ts.map +1 -0
  165. package/lib/internal/data/core/data/connectorDataOperation.js +500 -0
  166. package/lib/internal/data/core/data/connectorDataOperation.js.map +1 -0
  167. package/lib/internal/data/core/data/dataverseDataOperation.d.ts +164 -0
  168. package/lib/internal/data/core/data/dataverseDataOperation.d.ts.map +1 -0
  169. package/lib/internal/data/core/data/dataverseDataOperation.js +508 -0
  170. package/lib/internal/data/core/data/dataverseDataOperation.js.map +1 -0
  171. package/lib/internal/data/core/data/runtimeDataOperations.d.ts +93 -0
  172. package/lib/internal/data/core/data/runtimeDataOperations.d.ts.map +1 -0
  173. package/lib/internal/data/core/data/runtimeDataOperations.js +244 -0
  174. package/lib/internal/data/core/data/runtimeDataOperations.js.map +1 -0
  175. package/lib/internal/data/core/error/codes.d.ts +31 -0
  176. package/lib/internal/data/core/error/codes.d.ts.map +1 -0
  177. package/lib/internal/data/core/error/codes.js +39 -0
  178. package/lib/internal/data/core/error/codes.js.map +1 -0
  179. package/lib/internal/data/core/error/constants.d.ts +30 -0
  180. package/lib/internal/data/core/error/constants.d.ts.map +1 -0
  181. package/lib/internal/data/core/error/constants.js +33 -0
  182. package/lib/internal/data/core/error/constants.js.map +1 -0
  183. package/lib/internal/data/core/error/error.d.ts +8 -0
  184. package/lib/internal/data/core/error/error.d.ts.map +1 -0
  185. package/lib/internal/data/core/error/error.js +8 -0
  186. package/lib/internal/data/core/error/error.js.map +1 -0
  187. package/lib/internal/data/core/error/messages.d.ts +24 -0
  188. package/lib/internal/data/core/error/messages.d.ts.map +1 -0
  189. package/lib/internal/data/core/error/messages.js +55 -0
  190. package/lib/internal/data/core/error/messages.js.map +1 -0
  191. package/lib/internal/data/core/error/types.d.ts +30 -0
  192. package/lib/internal/data/core/error/types.d.ts.map +1 -0
  193. package/lib/internal/data/core/error/types.js +28 -0
  194. package/lib/internal/data/core/error/types.js.map +1 -0
  195. package/lib/internal/data/core/error/util.d.ts +24 -0
  196. package/lib/internal/data/core/error/util.d.ts.map +1 -0
  197. package/lib/internal/data/core/error/util.js +71 -0
  198. package/lib/internal/data/core/error/util.js.map +1 -0
  199. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts +65 -0
  200. package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -0
  201. package/lib/internal/data/core/metadata/runtimeDataSourceService.js +101 -0
  202. package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -0
  203. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts +17 -0
  204. package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts.map +1 -0
  205. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js +34 -0
  206. package/lib/internal/data/core/metadata/runtimeMetadataOperations.js.map +1 -0
  207. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +11 -0
  208. package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -0
  209. package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -0
  210. package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -0
  211. package/lib/internal/data/core/runtime/initializeRuntime.d.ts +13 -0
  212. package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +1 -0
  213. package/lib/internal/data/core/runtime/initializeRuntime.js +38 -0
  214. package/lib/internal/data/core/runtime/initializeRuntime.js.map +1 -0
  215. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +68 -0
  216. package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -0
  217. package/lib/internal/data/core/runtime/powerDataRuntime.js +116 -0
  218. package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -0
  219. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +20 -0
  220. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -0
  221. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +36 -0
  222. package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -0
  223. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts +34 -0
  224. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts.map +1 -0
  225. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js +45 -0
  226. package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js.map +1 -0
  227. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts +43 -0
  228. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts.map +1 -0
  229. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js +87 -0
  230. package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js.map +1 -0
  231. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts +112 -0
  232. package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -0
  233. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +457 -0
  234. package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -0
  235. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts +40 -0
  236. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts.map +1 -0
  237. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js +94 -0
  238. package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js.map +1 -0
  239. package/lib/internal/data/core/telemetry/log.d.ts +20 -0
  240. package/lib/internal/data/core/telemetry/log.d.ts.map +1 -0
  241. package/lib/internal/data/core/telemetry/log.js +85 -0
  242. package/lib/internal/data/core/telemetry/log.js.map +1 -0
  243. package/lib/internal/data/core/types/index.d.ts +138 -0
  244. package/lib/internal/data/core/types/index.d.ts.map +1 -0
  245. package/lib/internal/data/core/types/index.js +7 -0
  246. package/lib/internal/data/core/types/index.js.map +1 -0
  247. package/lib/internal/plugin/PluginCommon.d.ts +16 -0
  248. package/lib/internal/plugin/PluginCommon.d.ts.map +1 -0
  249. package/lib/internal/plugin/PluginCommon.js +114 -0
  250. package/lib/internal/plugin/PluginCommon.js.map +1 -0
  251. package/lib/internal/plugin/PluginMobile.d.ts +13 -0
  252. package/lib/internal/plugin/PluginMobile.d.ts.map +1 -0
  253. package/lib/internal/plugin/PluginMobile.js +109 -0
  254. package/lib/internal/plugin/PluginMobile.js.map +1 -0
  255. package/lib/telemetry/Logger.types.d.ts +8 -0
  256. package/lib/telemetry/Logger.types.d.ts.map +1 -0
  257. package/lib/telemetry/Logger.types.js +5 -0
  258. package/lib/telemetry/Logger.types.js.map +1 -0
  259. package/lib/telemetry/LoggerManager.d.ts +6 -0
  260. package/lib/telemetry/LoggerManager.d.ts.map +1 -0
  261. package/lib/telemetry/LoggerManager.js +28 -0
  262. package/lib/telemetry/LoggerManager.js.map +1 -0
  263. package/lib/telemetry/Metrics.types.d.ts +53 -0
  264. package/lib/telemetry/Metrics.types.d.ts.map +1 -0
  265. package/lib/telemetry/Metrics.types.js +5 -0
  266. package/lib/telemetry/Metrics.types.js.map +1 -0
  267. package/lib/telemetry/Performance.d.ts +5 -0
  268. package/lib/telemetry/Performance.d.ts.map +1 -0
  269. package/lib/telemetry/Performance.js +47 -0
  270. package/lib/telemetry/Performance.js.map +1 -0
  271. package/lib/telemetry/index.d.ts +5 -0
  272. package/lib/telemetry/index.d.ts.map +1 -0
  273. package/lib/telemetry/index.js +5 -0
  274. package/lib/telemetry/index.js.map +1 -0
  275. package/package.json +40 -0
@@ -0,0 +1,85 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ const ServiceName = 'PublishedAppTelemetry';
5
+ var TelemetryActionNames;
6
+ (function (TelemetryActionNames) {
7
+ TelemetryActionNames["trackEvent"] = "trackEvent";
8
+ TelemetryActionNames["trackException"] = "trackException";
9
+ TelemetryActionNames["trackMetric"] = "trackMetric";
10
+ TelemetryActionNames["startScenario"] = "startScenario";
11
+ TelemetryActionNames["endScenario"] = "endScenario";
12
+ TelemetryActionNames["setDefaultProperties"] = "setDefaultProperties";
13
+ })(TelemetryActionNames || (TelemetryActionNames = {}));
14
+ export class Log {
15
+ _powerOperationExecutor;
16
+ static _instance = null;
17
+ constructor(_powerOperationExecutor) {
18
+ this._powerOperationExecutor = _powerOperationExecutor;
19
+ }
20
+ static createInstance(powerOperationExecutor) {
21
+ if (!Log._instance) {
22
+ Log._instance = new Log(powerOperationExecutor);
23
+ }
24
+ else {
25
+ Log.trackEvent('TelemetryLogger', {
26
+ message: 'Attempted to create an instance when instance is already created.',
27
+ });
28
+ }
29
+ return Log._instance;
30
+ }
31
+ // Since powerDataRuntime can be reset, we need to be able to reset the instance of Log as well.
32
+ static resetInstance() {
33
+ Log._instance = null;
34
+ }
35
+ static async _sendMessage(actionName, ...args) {
36
+ try {
37
+ const instance = Log._getInstance();
38
+ const result = await instance._powerOperationExecutor.execute(ServiceName, actionName, args);
39
+ if (!result.success) {
40
+ // Fallback to console logging if telemetry fails, since it is reasonable to assume the runtimeClient is failing.
41
+ // eslint-disable-next-line no-console
42
+ console.error({
43
+ message: `PowerDataRuntime.TelemetryLogger: Failed to send telemetry message.`,
44
+ error: result.error,
45
+ telemetryArgs: args,
46
+ });
47
+ }
48
+ }
49
+ catch (error) {
50
+ // Fallback to console logging if telemetry fails, since it is reasonable to assume the runtimeClient is failing.
51
+ // we don't want to throw an error here, since we don't want to break the app if telemetry fails.
52
+ // eslint-disable-next-line no-console
53
+ console.error({
54
+ message: `PowerDataRuntime.TelemetryLogger: Failed to send telemetry message.`,
55
+ error,
56
+ telemetryArgs: args,
57
+ });
58
+ }
59
+ }
60
+ static trackEvent(eventName, eventData) {
61
+ return Log._sendMessage(TelemetryActionNames.trackEvent, `PowerDataRuntime.${eventName}`, eventData);
62
+ }
63
+ static trackException(exception) {
64
+ return Log._sendMessage(TelemetryActionNames.trackException, exception);
65
+ }
66
+ static trackMetric(metricName, value) {
67
+ return Log._sendMessage(TelemetryActionNames.trackMetric, `PowerDataRuntime.${metricName}`, value);
68
+ }
69
+ static startScenario(scenarioName) {
70
+ return Log._sendMessage(TelemetryActionNames.startScenario, `PowerDataRuntime.${scenarioName}`);
71
+ }
72
+ static endScenario(scenarioName) {
73
+ return Log._sendMessage(TelemetryActionNames.endScenario, `PowerDataRuntime.${scenarioName}`);
74
+ }
75
+ static setDefaultProperties(properties) {
76
+ return Log._sendMessage(TelemetryActionNames.setDefaultProperties, properties);
77
+ }
78
+ static _getInstance() {
79
+ if (!Log._instance) {
80
+ throw new Error('PowerDataRuntime.TelemetryLogger: Attempted to log telemetry prior to instantiation.');
81
+ }
82
+ return Log._instance;
83
+ }
84
+ }
85
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../../src/internal/data/core/telemetry/log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { IApiResponseInfo, IDataverseRequest } from '../common/types';
5
+ import { PowerDataRuntimeHttpError } from '../error/error';
6
+ /**
7
+ * Main PowerDataRuntime interface providing access to data operations
8
+ */
9
+ export interface IPowerDataRuntime {
10
+ /** Access to data operations */
11
+ Data: IDataOperations;
12
+ }
13
+ /**
14
+ * Interface for performing CRUD operations on data sources
15
+ */
16
+ export interface IDataOperations {
17
+ /**
18
+ * Creates a new record in the specified data source
19
+ */
20
+ createRecordAsync<TRequest, TResponse>(tableName: string, data: TRequest): Promise<IOperationResult<TResponse>>;
21
+ /**
22
+ * Updates an existing record in the specified data source
23
+ */
24
+ updateRecordAsync<TRequest, TResponse>(tableName: string, id: string, data: TRequest): Promise<IOperationResult<TResponse>>;
25
+ /**
26
+ * Deletes a record from the specified data source
27
+ */
28
+ deleteRecordAsync(tableName: string, id: string): Promise<IOperationResult<void>>;
29
+ /**
30
+ * Retrieves a record from the specified data source
31
+ */
32
+ retrieveRecordAsync<TResponse>(tableName: string, id: string, options?: IOperationOptions): Promise<IOperationResult<TResponse>>;
33
+ /**
34
+ * Retrieves records from the specified data source
35
+ */
36
+ retrieveMultipleRecordsAsync<TResponse>(tableName: string, options?: IOperationOptions): Promise<IOperationResult<TResponse[]>>;
37
+ /**
38
+ * Executes the provided operation on the specified data source.
39
+ */
40
+ executeAsync<TRequest, TResponse>(operation: IDataOperation<TRequest>): Promise<IOperationResult<TResponse>>;
41
+ }
42
+ /**
43
+ * Type definition for data source configuration
44
+ */
45
+ export type DataSourcesInfo = Record<string, IDataSourceInfo>;
46
+ /**
47
+ * Interface for data source info
48
+ */
49
+ export interface IDataSourceInfo {
50
+ /** Table identifier */
51
+ tableId: string;
52
+ /** Optional version information */
53
+ version?: string;
54
+ /** Optional primary key field */
55
+ primaryKey?: string;
56
+ /** Optional data source type field */
57
+ dataSourceType?: string;
58
+ /** Available APIs for the data source */
59
+ apis: {
60
+ [key: string]: IApiDefinition;
61
+ };
62
+ }
63
+ export interface IApiDefinition {
64
+ /** API path */
65
+ path: string;
66
+ /** HTTP method (GET, POST, etc.) */
67
+ method: string;
68
+ /** Parameters */
69
+ parameters: Array<{
70
+ /** Parameter name */
71
+ name: string;
72
+ /** Parameter location (query, path, etc.) */
73
+ in: string;
74
+ /** Whether the parameter is required */
75
+ required: boolean;
76
+ /** Parameter type (string, number, etc.) */
77
+ type: string;
78
+ }>;
79
+ /** Response information */
80
+ responseInfo?: Record<string, IApiResponseInfo>;
81
+ }
82
+ /**
83
+ * Interface for PowerOperationExecutor
84
+ * This interface defines the method for executing operations
85
+ */
86
+ export interface IPowerOperationExecutor {
87
+ execute<T = string>(operationName: string, action: string, params: Array<string | number | boolean | object | undefined>): Promise<IOperationResult<T>>;
88
+ }
89
+ /**
90
+ * Base interface for operation options
91
+ * The parameters must be defined as OData query parameters
92
+ */
93
+ export interface IOperationOptions {
94
+ maxPageSize?: number;
95
+ select?: string[];
96
+ filter?: string;
97
+ orderBy?: string[];
98
+ top?: number;
99
+ skip?: number;
100
+ count?: boolean;
101
+ skipToken?: string;
102
+ }
103
+ /**
104
+ * Base interface for operation results
105
+ * @template T The type of data returned by the operation
106
+ */
107
+ export interface IOperationResult<TResponse> {
108
+ success: boolean;
109
+ data: TResponse;
110
+ error?: Error | PowerDataRuntimeHttpError;
111
+ /**
112
+ * Skip token to get the next page of results
113
+ * @type {string}
114
+ */
115
+ skipToken?: string;
116
+ }
117
+ export declare function isOperationResult<TResponse>(result: IOperationResult<TResponse> | TResponse | unknown): result is IOperationResult<TResponse>;
118
+ /**
119
+ * Interface for custom data operations
120
+ */
121
+ export interface IDataOperation<TRequest> {
122
+ /** Dataverse-specific request details */
123
+ dataverseRequest?: IDataverseRequest;
124
+ /** Connector-specific operation details */
125
+ connectorOperation?: IConnectorOperation<TRequest>;
126
+ }
127
+ /**
128
+ * Interface for connector-specific operations
129
+ */
130
+ export interface IConnectorOperation<TParameters> {
131
+ /** Target table name */
132
+ tableName: string;
133
+ /** Operation name to execute */
134
+ operationName: string;
135
+ /** Optional operation parameters */
136
+ parameters?: TParameters;
137
+ }
138
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/data/core/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export function isOperationResult(result) {
5
+ return result?.success !== undefined;
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/data/core/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmKH,MAAM,UAAU,iBAAiB,CAC/B,MAAyD;IAEzD,OAAQ,MAAsC,EAAE,OAAO,KAAK,SAAS,CAAC;AACxE,CAAC"}
@@ -0,0 +1,16 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export type HostMessage = {
5
+ isPluginCall: boolean;
6
+ callbackId: string;
7
+ status: number;
8
+ args: unknown[];
9
+ keepCallback: boolean;
10
+ messageType: 'initCommunication';
11
+ antiCSRFToken: string;
12
+ };
13
+ export declare function initializePlugins(): Promise<void>;
14
+ export declare function executePluginAsync<T = unknown>(pluginName: string, pluginAction: string, params?: unknown[]): Promise<T>;
15
+ export declare function executePlugin(pluginName: string, pluginAction: string, params?: unknown[]): void;
16
+ //# sourceMappingURL=PluginCommon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginCommon.d.ts","sourceRoot":"","sources":["../../../src/internal/plugin/PluginCommon.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,mBAAmB,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAUF,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAC5C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,OAAO,EAAO,GACrB,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,IAAI,CAapG"}
@@ -0,0 +1,114 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { executePluginAsync as executePluginAsyncMobile, executePlugin as executePluginMobile, initializeMobilePlugins, isMobilePlayer, } from './PluginMobile';
5
+ let antiCSRFToken;
6
+ let currentCallbackId = 0;
7
+ const callbacks = {};
8
+ let postMessageSource;
9
+ const instanceId = Date.now().toString();
10
+ const messageChannel = new window.MessageChannel();
11
+ const postMessageQueue = [];
12
+ export async function initializePlugins() {
13
+ if (isMobilePlayer()) {
14
+ await initializeMobilePlugins();
15
+ }
16
+ else {
17
+ initializeMessageChannel();
18
+ }
19
+ }
20
+ export function executePluginAsync(pluginName, pluginAction, params = []) {
21
+ if (isMobilePlayer()) {
22
+ return executePluginAsyncMobile(pluginName, pluginAction, params);
23
+ }
24
+ return new Promise((resolve, reject) => {
25
+ const callbackId = getCallbackId(pluginName);
26
+ callbacks[callbackId] = { resolve, reject };
27
+ sendMessage({
28
+ isPluginCall: true,
29
+ callbackId,
30
+ service: pluginName,
31
+ action: pluginAction,
32
+ actionArgs: params,
33
+ antiCSRFToken,
34
+ });
35
+ });
36
+ }
37
+ export function executePlugin(pluginName, pluginAction, params = []) {
38
+ if (isMobilePlayer()) {
39
+ executePluginMobile(pluginName, pluginAction, params);
40
+ return;
41
+ }
42
+ sendMessage({
43
+ isPluginCall: true,
44
+ callbackId: getCallbackId(pluginName),
45
+ service: pluginName,
46
+ action: pluginAction,
47
+ actionArgs: params,
48
+ antiCSRFToken,
49
+ });
50
+ }
51
+ function initializeMessageChannel() {
52
+ messageChannel.port1.onmessage = handleMessage;
53
+ // eslint-disable-next-line @microsoft/sdl/no-postmessage-star-origin
54
+ window.parent.postMessage({
55
+ messageType: 'initCommunicationWithPort',
56
+ instanceId,
57
+ }, '*', [messageChannel.port2]);
58
+ }
59
+ function getCallbackId(pluginName) {
60
+ return 'instanceId=' + instanceId + '_' + pluginName + currentCallbackId++;
61
+ }
62
+ function sendMessage(message) {
63
+ if (!postMessageSource) {
64
+ postMessageQueue.push(message);
65
+ }
66
+ else {
67
+ postMessageSource.postMessage(message);
68
+ }
69
+ }
70
+ function handleMessage(messageEvent) {
71
+ const message = messageEvent.data;
72
+ // Capture only the messages that are sent via the App Host's CommunicationChannel
73
+ // which always provides an isPluginCall boolean value.
74
+ if (message && typeof message.isPluginCall === 'boolean') {
75
+ // message can be either a native plugin call result, or a script to execute
76
+ if (message.isPluginCall) {
77
+ // this is the result of a plugin call, extract the parameters and return them
78
+ const callbackId = message.callbackId;
79
+ const status = message.status;
80
+ const args = message.args;
81
+ const keepCallback = message.keepCallback;
82
+ try {
83
+ const callback = callbacks[callbackId];
84
+ if (callback) {
85
+ if (status === 1) {
86
+ callback.resolve(args[0]);
87
+ }
88
+ else if (status !== 0) {
89
+ callback.reject(args);
90
+ }
91
+ if (!keepCallback) {
92
+ delete callbacks[callbackId];
93
+ }
94
+ }
95
+ }
96
+ catch (error) {
97
+ // eslint-disable-next-line no-console
98
+ console.error(error);
99
+ }
100
+ }
101
+ }
102
+ else if (message && message.messageType === 'initCommunication') {
103
+ antiCSRFToken = message.antiCSRFToken;
104
+ postMessageSource = messageChannel.port1;
105
+ if (postMessageSource) {
106
+ for (let i = 0; i < postMessageQueue.length; i++) {
107
+ // backfill csrf token
108
+ postMessageQueue[i].antiCSRFToken = antiCSRFToken;
109
+ postMessageSource.postMessage(postMessageQueue[i]);
110
+ }
111
+ }
112
+ }
113
+ }
114
+ //# sourceMappingURL=PluginCommon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginCommon.js","sourceRoot":"","sources":["../../../src/internal/plugin/PluginCommon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ declare global {
5
+ namespace cordova {
6
+ function exec(success: (data: any) => any, fail: (err: any) => any, service: string, action: string, args?: any[]): void;
7
+ }
8
+ }
9
+ export declare function executePlugin(pluginName: string, pluginAction: string, params?: unknown[]): void;
10
+ export declare function executePluginAsync<T = unknown>(pluginName: string, pluginAction: string, params?: unknown[]): Promise<T>;
11
+ export declare function initializeMobilePlugins(): Promise<void>;
12
+ export declare function isMobilePlayer(): boolean;
13
+ //# sourceMappingURL=PluginMobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginMobile.d.ts","sourceRoot":"","sources":["../../../src/internal/plugin/PluginMobile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,CAAC,MAAM,CAAC;IAEb,UAAO,OAAO,CAAC;QACb,SAAgB,IAAI,CAClB,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,EAC3B,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,GAAG,EAAE,GACX,IAAI,CAAC;KACT;CACF;AAWD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,IAAI,CAwBpG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAC5C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,OAAO,EAAO,GACrB,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAY7D;AAED,wBAAgB,cAAc,YAG7B"}
@@ -0,0 +1,109 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ let cordovaOperationsQueue = [];
5
+ function executePendingCordovaOperations() {
6
+ for (let i = 0; i < cordovaOperationsQueue.length; i++) {
7
+ cordovaOperationsQueue[i]();
8
+ }
9
+ cordovaOperationsQueue = [];
10
+ }
11
+ export function executePlugin(pluginName, pluginAction, params = []) {
12
+ if (typeof cordova !== 'undefined') {
13
+ cordova.exec(
14
+ // eslint-disable-next-line no-empty-function
15
+ () => { },
16
+ // eslint-disable-next-line no-empty-function
17
+ () => { }, pluginName, pluginAction, params);
18
+ }
19
+ else {
20
+ cordovaOperationsQueue.push(() => {
21
+ cordova.exec(
22
+ // eslint-disable-next-line no-empty-function
23
+ () => { },
24
+ // eslint-disable-next-line no-empty-function
25
+ () => { }, pluginName, pluginAction, params);
26
+ });
27
+ }
28
+ }
29
+ export function executePluginAsync(pluginName, pluginAction, params = []) {
30
+ return new Promise((resolve, reject) => {
31
+ if (typeof cordova !== 'undefined') {
32
+ cordova.exec(resolve, reject, pluginName, pluginAction, params);
33
+ }
34
+ else {
35
+ cordovaOperationsQueue.push(() => {
36
+ cordova.exec(resolve, reject, pluginName, pluginAction, params);
37
+ });
38
+ }
39
+ });
40
+ }
41
+ export async function initializeMobilePlugins() {
42
+ await new Promise((resolve, reject) => {
43
+ reject('Mobile is currently not supported');
44
+ // if (document.readyState === 'loading') {
45
+ // document.addEventListener('DOMContentLoaded', () => {
46
+ // callLoader(resolve, reject);
47
+ // });
48
+ // } else {
49
+ // callLoader(resolve, reject);
50
+ // }
51
+ });
52
+ executePendingCordovaOperations();
53
+ }
54
+ export function isMobilePlayer() {
55
+ const searchParams = new URLSearchParams(window.location.search);
56
+ return searchParams.get('loaderType') === 'reactnative';
57
+ }
58
+ // async function getCordova(successCallback: () => void): Promise<void> {
59
+ // if (typeof cordova !== 'undefined') {
60
+ // successCallback();
61
+ // } else {
62
+ // document.addEventListener('deviceready', () => {
63
+ // successCallback();
64
+ // });
65
+ // }
66
+ // }
67
+ // function callLoader(successCallback: () => void, failCallback: (reason: string) => void) {
68
+ // for ios, cordova script will be injected directly by player
69
+ // if (getSearchParam('injectCordova') === 'true' && getSearchParam('platformOS') === 'ios') {
70
+ // getCordova(successCallback);
71
+ // return;
72
+ // }
73
+ // const appServerUrl = getSearchParam('appServerUrl');
74
+ // const loaderPath = getSearchParam('loader');
75
+ // if (appServerUrl !== null && loaderPath !== null) {
76
+ // addScript(
77
+ // `${appServerUrl}${loaderPath.substring(1)}`,
78
+ // () => {
79
+ // getCordova(successCallback);
80
+ // },
81
+ // failCallback
82
+ // );
83
+ // } else {
84
+ // failCallback('Mobile is currently not supported');
85
+ // }
86
+ //
87
+ // function getSearchParam(param: string): string | null {
88
+ // const searchParams = new URLSearchParams(window.location.search);
89
+ // return searchParams.get(param);
90
+ // }
91
+ // function addScript(
92
+ // src: string,
93
+ // successCallback?: (event: Event) => void,
94
+ // failCallback?: (event: ErrorEvent) => void
95
+ // ) {
96
+ // const scriptTag = document.createElement('SCRIPT') as HTMLScriptElement;
97
+ // scriptTag.setAttribute('crossorigin', 'anonymous');
98
+ // scriptTag.type = 'text/javascript';
99
+ // scriptTag.async = false;
100
+ // if (successCallback) {
101
+ // scriptTag.addEventListener('load', successCallback);
102
+ // }
103
+ // if (failCallback) {
104
+ // scriptTag.addEventListener('error', failCallback);
105
+ // }
106
+ // document.head.appendChild(scriptTag);
107
+ // scriptTag.src = src;
108
+ // }
109
+ //# sourceMappingURL=PluginMobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginMobile.js","sourceRoot":"","sources":["../../../src/internal/plugin/PluginMobile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { Metric } from './Metrics.types';
5
+ export interface Logger {
6
+ logMetric?: (value: Metric) => void;
7
+ }
8
+ //# sourceMappingURL=Logger.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.types.d.ts","sourceRoot":"","sources":["../../src/telemetry/Logger.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC"}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=Logger.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.types.js","sourceRoot":"","sources":["../../src/telemetry/Logger.types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import type { Logger } from './Logger.types';
5
+ export declare function setupLogger(logger: Logger): Promise<void>;
6
+ //# sourceMappingURL=LoggerManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggerManager.d.ts","sourceRoot":"","sources":["../../src/telemetry/LoggerManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B/D"}
@@ -0,0 +1,28 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ import { SendMessage } from '../internal/communication/SendMessage';
5
+ let loggerInstance;
6
+ export async function setupLogger(logger) {
7
+ loggerInstance = logger;
8
+ const sendMessagePlugin = await SendMessage.createInstanceAsync();
9
+ const receiver = await sendMessagePlugin.getMessageReceiverAsync('PowerApps.AppMonitorReceiver', (versionInfo) => {
10
+ let isCompatible = false;
11
+ if (versionInfo === '1.0.0') {
12
+ isCompatible = true;
13
+ }
14
+ return { isCompatible };
15
+ });
16
+ if (receiver.isCompatible) {
17
+ await receiver.sendMessage('initialize', (message) => {
18
+ const parsedMessage = JSON.parse(message);
19
+ if (parsedMessage.metrics) {
20
+ for (const metric of parsedMessage.metrics) {
21
+ // Log the metric
22
+ loggerInstance.logMetric?.(metric);
23
+ }
24
+ }
25
+ });
26
+ }
27
+ }
28
+ //# sourceMappingURL=LoggerManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggerManager.js","sourceRoot":"","sources":["../../src/telemetry/LoggerManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,IAAI,cAAsB,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,cAAc,GAAG,MAAM,CAAC;IAExB,MAAM,iBAAiB,GAAsB,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAC;IAErF,MAAM,QAAQ,GAAoB,MAAM,iBAAiB,CAAC,uBAAuB,CAC/E,8BAA8B,EAC9B,CAAC,WAAmB,EAAE,EAAE;QACtB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,WAAW,KAAK,OAAO,EAAE;YAC3B,YAAY,GAAG,IAAI,CAAC;SACrB;QACD,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC,CACF,CAAC;IACF,IAAI,QAAQ,CAAC,YAAY,EAAE;QACzB,MAAM,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE;YAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,aAAa,CAAC,OAAO,EAAE;gBACzB,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE;oBAC1C,iBAAiB;oBACjB,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;iBACpC;aACF;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC"}
@@ -0,0 +1,53 @@
1
+ /*!
2
+ * Copyright (C) Microsoft Corporation. All rights reserved.
3
+ */
4
+ export type AppLoadClientState = 'healthy' | 'unhealthy' | 'throttled' | 'unknown';
5
+ export type AppLoadResult = 'optimal' | 'other';
6
+ export type AppLoadNonOptimalReason = 'interactionRequired' | 'throttled' | 'screenNavigatedAway' | 'other';
7
+ export type AppLoadUnsuccessfulReason = 'AppConnectionsFailed' | 'AppForbidden' | 'AppForbiddenAppIsInQuarantine' | 'AppForbiddenPlansIssue' | 'AppIsPackaging' | 'AppLoadFailed' | 'AppNotFound' | 'CookiesBlocked' | 'InvokeScriptBlocked' | 'NetworkError' | 'PlatformError' | 'PopupError' | 'ProxyError' | 'StorageBlocked' | 'Unknown' | 'UserCancelAppConnections' | 'UserCancelled' | 'UserNotLoggedIn' | 'UserUnauthorized' | 'UserUnsupportedAppVersion' | 'UserUnsupportedBrowser';
8
+ export type SessionLoadSummaryMetricData = {
9
+ /** Whether this app launch was successful */
10
+ successfulAppLaunch: boolean;
11
+ /** The reason the app launch was not successful */
12
+ unsuccessfulReason?: AppLoadUnsuccessfulReason;
13
+ /** The type of state the client loaded in. */
14
+ appLoadClientState: AppLoadClientState;
15
+ /** The type of app load */
16
+ appLoadResult: AppLoadResult;
17
+ /** The reason the app load was not considered optimal */
18
+ appLoadNonOptimalReason?: AppLoadNonOptimalReason;
19
+ /** The type of app */
20
+ appType?: string;
21
+ /** Time in milliseconds for the app to become interactive */
22
+ timeToAppInteractive?: number;
23
+ /** Time in milliseconds for the app to be fully loaded (including data) */
24
+ timeToAppFullLoad?: number;
25
+ /** Date this app was last published */
26
+ lastPublishedDate?: string;
27
+ /** Number of data calls made prior to full load */
28
+ numDataCallsBeforeFullLoad?: number;
29
+ /** [Canvas only] Time in milliseconds for the OnStart property rule to complete */
30
+ onStartRuleDuration?: number;
31
+ };
32
+ export type SessionLoadSummaryMetric = {
33
+ data: SessionLoadSummaryMetricData;
34
+ type: 'sessionLoadSummary';
35
+ };
36
+ export type NetworkRequestMetricData = {
37
+ /** The URL of the network request */
38
+ url: string;
39
+ /** The HTTP method of the request */
40
+ method: string;
41
+ /** The status code of the response */
42
+ statusCode: number;
43
+ /** The time taken for the request in milliseconds */
44
+ duration: number;
45
+ /** The size of the response in bytes */
46
+ responseSize?: number;
47
+ };
48
+ export type NetworkRequestMetric = {
49
+ data: NetworkRequestMetricData;
50
+ type: 'networkRequest';
51
+ };
52
+ export type Metric = SessionLoadSummaryMetric | NetworkRequestMetric;
53
+ //# sourceMappingURL=Metrics.types.d.ts.map