@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.
- package/LICENSE +153 -0
- package/README.md +43 -0
- package/lib/__tests__/connectorDataOperation.spec.d.ts +5 -0
- package/lib/__tests__/connectorDataOperation.spec.d.ts.map +1 -0
- package/lib/__tests__/connectorDataOperation.spec.js +509 -0
- package/lib/__tests__/connectorDataOperation.spec.js.map +1 -0
- package/lib/__tests__/dataverseDataOperation.spec.d.ts +5 -0
- package/lib/__tests__/dataverseDataOperation.spec.d.ts.map +1 -0
- package/lib/__tests__/dataverseDataOperation.spec.js +349 -0
- package/lib/__tests__/dataverseDataOperation.spec.js.map +1 -0
- package/lib/__tests__/helpers/testHelpers.d.ts +27 -0
- package/lib/__tests__/helpers/testHelpers.d.ts.map +1 -0
- package/lib/__tests__/helpers/testHelpers.js +67 -0
- package/lib/__tests__/helpers/testHelpers.js.map +1 -0
- package/lib/__tests__/index.spec.d.ts +5 -0
- package/lib/__tests__/index.spec.d.ts.map +1 -0
- package/lib/__tests__/index.spec.js +10 -0
- package/lib/__tests__/index.spec.js.map +1 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts +17 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js +35 -0
- package/lib/__tests__/mocks/mockDataverseRetrieveMultipleResponse.js.map +1 -0
- package/lib/__tests__/mocks/mockLog.d.ts +31 -0
- package/lib/__tests__/mocks/mockLog.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockLog.js +53 -0
- package/lib/__tests__/mocks/mockLog.js.map +1 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts +76 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.d.ts.map +1 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.js +81 -0
- package/lib/__tests__/mocks/mockTeamsConnectorResponse.js.map +1 -0
- package/lib/__tests__/mocks/silenceConsole.d.ts +37 -0
- package/lib/__tests__/mocks/silenceConsole.d.ts.map +1 -0
- package/lib/__tests__/mocks/silenceConsole.js +58 -0
- package/lib/__tests__/mocks/silenceConsole.js.map +1 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.d.ts +5 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.d.ts.map +1 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.js +179 -0
- package/lib/__tests__/powerDataRuntimeInstance.test.js.map +1 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts +5 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.d.ts.map +1 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.js +153 -0
- package/lib/__tests__/powerDataSourcesInfoProvider.test.js.map +1 -0
- package/lib/__tests__/runtimeClientProvider.test.d.ts +5 -0
- package/lib/__tests__/runtimeClientProvider.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeClientProvider.test.js +248 -0
- package/lib/__tests__/runtimeClientProvider.test.js.map +1 -0
- package/lib/__tests__/runtimeDataClient.spec.d.ts +2 -0
- package/lib/__tests__/runtimeDataClient.spec.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataClient.spec.js +351 -0
- package/lib/__tests__/runtimeDataClient.spec.js.map +1 -0
- package/lib/__tests__/runtimeDataClient.test.d.ts +2 -0
- package/lib/__tests__/runtimeDataClient.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataClient.test.js +351 -0
- package/lib/__tests__/runtimeDataClient.test.js.map +1 -0
- package/lib/__tests__/runtimeDataOperation.test.d.ts +5 -0
- package/lib/__tests__/runtimeDataOperation.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeDataOperation.test.js +234 -0
- package/lib/__tests__/runtimeDataOperation.test.js.map +1 -0
- package/lib/__tests__/runtimeMetadataClient.test.d.ts +5 -0
- package/lib/__tests__/runtimeMetadataClient.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeMetadataClient.test.js +271 -0
- package/lib/__tests__/runtimeMetadataClient.test.js.map +1 -0
- package/lib/__tests__/runtimeMetadataOperations.test.d.ts +5 -0
- package/lib/__tests__/runtimeMetadataOperations.test.d.ts.map +1 -0
- package/lib/__tests__/runtimeMetadataOperations.test.js +286 -0
- package/lib/__tests__/runtimeMetadataOperations.test.js.map +1 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts +2 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.d.ts.map +1 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.js +98 -0
- package/lib/__tests__/serviceSchemaModelSnapshot.test.js.map +1 -0
- package/lib/__tests__/types.spec.d.ts +5 -0
- package/lib/__tests__/types.spec.d.ts.map +1 -0
- package/lib/__tests__/types.spec.js +104 -0
- package/lib/__tests__/types.spec.js.map +1 -0
- package/lib/__tests__/utils.test.d.ts +5 -0
- package/lib/__tests__/utils.test.d.ts.map +1 -0
- package/lib/__tests__/utils.test.js +33 -0
- package/lib/__tests__/utils.test.js.map +1 -0
- package/lib/app/Lifecycle.d.ts +9 -0
- package/lib/app/Lifecycle.d.ts.map +1 -0
- package/lib/app/Lifecycle.js +36 -0
- package/lib/app/Lifecycle.js.map +1 -0
- package/lib/app/index.d.ts +5 -0
- package/lib/app/index.d.ts.map +1 -0
- package/lib/app/index.js +5 -0
- package/lib/app/index.js.map +1 -0
- package/lib/data/Data.types.d.ts +20 -0
- package/lib/data/Data.types.d.ts.map +1 -0
- package/lib/data/Data.types.js +5 -0
- package/lib/data/Data.types.js.map +1 -0
- package/lib/data/index.d.ts +7 -0
- package/lib/data/index.d.ts.map +1 -0
- package/lib/data/index.js +5 -0
- package/lib/data/index.js.map +1 -0
- package/lib/data/powerAppsData.d.ts +8 -0
- package/lib/data/powerAppsData.d.ts.map +1 -0
- package/lib/data/powerAppsData.js +38 -0
- package/lib/data/powerAppsData.js.map +1 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/communication/CompatibleMessageReceiver.d.ts +12 -0
- package/lib/internal/communication/CompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/communication/CompatibleMessageReceiver.js +92 -0
- package/lib/internal/communication/CompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.d.ts +10 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.d.ts.map +1 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.js +13 -0
- package/lib/internal/communication/IncompatibleMessageReceiver.js.map +1 -0
- package/lib/internal/communication/MessageReceiver.Types.d.ts +18 -0
- package/lib/internal/communication/MessageReceiver.Types.d.ts.map +1 -0
- package/lib/internal/communication/MessageReceiver.Types.js +5 -0
- package/lib/internal/communication/MessageReceiver.Types.js.map +1 -0
- package/lib/internal/communication/SendMessage.d.ts +11 -0
- package/lib/internal/communication/SendMessage.d.ts.map +1 -0
- package/lib/internal/communication/SendMessage.js +32 -0
- package/lib/internal/communication/SendMessage.js.map +1 -0
- package/lib/internal/communication/SendMessageOperation.d.ts +15 -0
- package/lib/internal/communication/SendMessageOperation.d.ts.map +1 -0
- package/lib/internal/communication/SendMessageOperation.js +18 -0
- package/lib/internal/communication/SendMessageOperation.js.map +1 -0
- package/lib/internal/data/ConnectionUtils.d.ts +5 -0
- package/lib/internal/data/ConnectionUtils.d.ts.map +1 -0
- package/lib/internal/data/ConnectionUtils.js +20 -0
- package/lib/internal/data/ConnectionUtils.js.map +1 -0
- package/lib/internal/data/OperationExecutor.d.ts +18 -0
- package/lib/internal/data/OperationExecutor.d.ts.map +1 -0
- package/lib/internal/data/OperationExecutor.js +35 -0
- package/lib/internal/data/OperationExecutor.js.map +1 -0
- package/lib/internal/data/core/api/createRecord.d.ts +13 -0
- package/lib/internal/data/core/api/createRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/createRecord.js +15 -0
- package/lib/internal/data/core/api/createRecord.js.map +1 -0
- package/lib/internal/data/core/api/deleteRecord.d.ts +13 -0
- package/lib/internal/data/core/api/deleteRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/deleteRecord.js +15 -0
- package/lib/internal/data/core/api/deleteRecord.js.map +1 -0
- package/lib/internal/data/core/api/execute.d.ts +11 -0
- package/lib/internal/data/core/api/execute.d.ts.map +1 -0
- package/lib/internal/data/core/api/execute.js +13 -0
- package/lib/internal/data/core/api/execute.js.map +1 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts +13 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.d.ts.map +1 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.js +15 -0
- package/lib/internal/data/core/api/retrieveMultipleRecords.js.map +1 -0
- package/lib/internal/data/core/api/retrieveRecord.d.ts +13 -0
- package/lib/internal/data/core/api/retrieveRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/retrieveRecord.js +15 -0
- package/lib/internal/data/core/api/retrieveRecord.js.map +1 -0
- package/lib/internal/data/core/api/updateRecord.d.ts +14 -0
- package/lib/internal/data/core/api/updateRecord.d.ts.map +1 -0
- package/lib/internal/data/core/api/updateRecord.js +16 -0
- package/lib/internal/data/core/api/updateRecord.js.map +1 -0
- package/lib/internal/data/core/common/types.d.ts +230 -0
- package/lib/internal/data/core/common/types.d.ts.map +1 -0
- package/lib/internal/data/core/common/types.js +25 -0
- package/lib/internal/data/core/common/types.js.map +1 -0
- package/lib/internal/data/core/common/utils.d.ts +19 -0
- package/lib/internal/data/core/common/utils.d.ts.map +1 -0
- package/lib/internal/data/core/common/utils.js +47 -0
- package/lib/internal/data/core/common/utils.js.map +1 -0
- package/lib/internal/data/core/data/connectorDataOperation.d.ts +160 -0
- package/lib/internal/data/core/data/connectorDataOperation.d.ts.map +1 -0
- package/lib/internal/data/core/data/connectorDataOperation.js +500 -0
- package/lib/internal/data/core/data/connectorDataOperation.js.map +1 -0
- package/lib/internal/data/core/data/dataverseDataOperation.d.ts +164 -0
- package/lib/internal/data/core/data/dataverseDataOperation.d.ts.map +1 -0
- package/lib/internal/data/core/data/dataverseDataOperation.js +508 -0
- package/lib/internal/data/core/data/dataverseDataOperation.js.map +1 -0
- package/lib/internal/data/core/data/runtimeDataOperations.d.ts +93 -0
- package/lib/internal/data/core/data/runtimeDataOperations.d.ts.map +1 -0
- package/lib/internal/data/core/data/runtimeDataOperations.js +244 -0
- package/lib/internal/data/core/data/runtimeDataOperations.js.map +1 -0
- package/lib/internal/data/core/error/codes.d.ts +31 -0
- package/lib/internal/data/core/error/codes.d.ts.map +1 -0
- package/lib/internal/data/core/error/codes.js +39 -0
- package/lib/internal/data/core/error/codes.js.map +1 -0
- package/lib/internal/data/core/error/constants.d.ts +30 -0
- package/lib/internal/data/core/error/constants.d.ts.map +1 -0
- package/lib/internal/data/core/error/constants.js +33 -0
- package/lib/internal/data/core/error/constants.js.map +1 -0
- package/lib/internal/data/core/error/error.d.ts +8 -0
- package/lib/internal/data/core/error/error.d.ts.map +1 -0
- package/lib/internal/data/core/error/error.js +8 -0
- package/lib/internal/data/core/error/error.js.map +1 -0
- package/lib/internal/data/core/error/messages.d.ts +24 -0
- package/lib/internal/data/core/error/messages.d.ts.map +1 -0
- package/lib/internal/data/core/error/messages.js +55 -0
- package/lib/internal/data/core/error/messages.js.map +1 -0
- package/lib/internal/data/core/error/types.d.ts +30 -0
- package/lib/internal/data/core/error/types.d.ts.map +1 -0
- package/lib/internal/data/core/error/types.js +28 -0
- package/lib/internal/data/core/error/types.js.map +1 -0
- package/lib/internal/data/core/error/util.d.ts +24 -0
- package/lib/internal/data/core/error/util.d.ts.map +1 -0
- package/lib/internal/data/core/error/util.js +71 -0
- package/lib/internal/data/core/error/util.js.map +1 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts +65 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.d.ts.map +1 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js +101 -0
- package/lib/internal/data/core/metadata/runtimeDataSourceService.js.map +1 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts +17 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.d.ts.map +1 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.js +34 -0
- package/lib/internal/data/core/metadata/runtimeMetadataOperations.js.map +1 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts +11 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.js +16 -0
- package/lib/internal/data/core/runtime/getRuntimeContext.js.map +1 -0
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts +13 -0
- package/lib/internal/data/core/runtime/initializeRuntime.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/initializeRuntime.js +38 -0
- package/lib/internal/data/core/runtime/initializeRuntime.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts +68 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.js +116 -0
- package/lib/internal/data/core/runtime/powerDataRuntime.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts +20 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js +36 -0
- package/lib/internal/data/core/runtime/powerDataRuntimeInstance.js.map +1 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts +34 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.d.ts.map +1 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js +45 -0
- package/lib/internal/data/core/runtime/powerDataSourcesInfoProvider.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts +43 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js +87 -0
- package/lib/internal/data/core/runtimeClient/runtimeClientProvider.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts +112 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js +457 -0
- package/lib/internal/data/core/runtimeClient/runtimeDataClient.js.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts +40 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.d.ts.map +1 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js +94 -0
- package/lib/internal/data/core/runtimeClient/runtimeMetadataClient.js.map +1 -0
- package/lib/internal/data/core/telemetry/log.d.ts +20 -0
- package/lib/internal/data/core/telemetry/log.d.ts.map +1 -0
- package/lib/internal/data/core/telemetry/log.js +85 -0
- package/lib/internal/data/core/telemetry/log.js.map +1 -0
- package/lib/internal/data/core/types/index.d.ts +138 -0
- package/lib/internal/data/core/types/index.d.ts.map +1 -0
- package/lib/internal/data/core/types/index.js +7 -0
- package/lib/internal/data/core/types/index.js.map +1 -0
- package/lib/internal/plugin/PluginCommon.d.ts +16 -0
- package/lib/internal/plugin/PluginCommon.d.ts.map +1 -0
- package/lib/internal/plugin/PluginCommon.js +114 -0
- package/lib/internal/plugin/PluginCommon.js.map +1 -0
- package/lib/internal/plugin/PluginMobile.d.ts +13 -0
- package/lib/internal/plugin/PluginMobile.d.ts.map +1 -0
- package/lib/internal/plugin/PluginMobile.js +109 -0
- package/lib/internal/plugin/PluginMobile.js.map +1 -0
- package/lib/telemetry/Logger.types.d.ts +8 -0
- package/lib/telemetry/Logger.types.d.ts.map +1 -0
- package/lib/telemetry/Logger.types.js +5 -0
- package/lib/telemetry/Logger.types.js.map +1 -0
- package/lib/telemetry/LoggerManager.d.ts +6 -0
- package/lib/telemetry/LoggerManager.d.ts.map +1 -0
- package/lib/telemetry/LoggerManager.js +28 -0
- package/lib/telemetry/LoggerManager.js.map +1 -0
- package/lib/telemetry/Metrics.types.d.ts +53 -0
- package/lib/telemetry/Metrics.types.d.ts.map +1 -0
- package/lib/telemetry/Metrics.types.js +5 -0
- package/lib/telemetry/Metrics.types.js.map +1 -0
- package/lib/telemetry/Performance.d.ts +5 -0
- package/lib/telemetry/Performance.d.ts.map +1 -0
- package/lib/telemetry/Performance.js +47 -0
- package/lib/telemetry/Performance.js.map +1 -0
- package/lib/telemetry/index.d.ts +5 -0
- package/lib/telemetry/index.d.ts.map +1 -0
- package/lib/telemetry/index.js +5 -0
- package/lib/telemetry/index.js.map +1 -0
- 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":"AAAA;;GAEG;AAIH,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAC5C,IAAW,oBAOV;AAPD,WAAW,oBAAoB;IAC7B,iDAAyB,CAAA;IACzB,yDAAiC,CAAA;IACjC,mDAA2B,CAAA;IAC3B,uDAA+B,CAAA;IAC/B,mDAA2B,CAAA;IAC3B,qEAA6C,CAAA;AAC/C,CAAC,EAPU,oBAAoB,KAApB,oBAAoB,QAO9B;AAED,MAAM,OAAO,GAAG;IAGuB;IAF7B,MAAM,CAAC,SAAS,GAAe,IAAI,CAAC;IAE5C,YAAqC,uBAAgD;QAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;IAAG,CAAC;IAElF,MAAM,CAAC,cAAc,CAAC,sBAA+C;QAC1E,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAClB,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;SACjD;aAAM;YACL,GAAG,CAAC,UAAU,CAAC,iBAAiB,EAAE;gBAChC,OAAO,EAAE,mEAAmE;aAC7E,CAAC,CAAC;SACJ;QACD,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,gGAAgG;IACzF,MAAM,CAAC,aAAa;QACzB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,YAAY,CAC/B,UAAgC,EAChC,GAAG,IAA2D;QAE9D,IAAI;YACF,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACnB,iHAAiH;gBAEjH,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC;oBACZ,OAAO,EAAE,qEAAqE;oBAC9E,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;aACJ;SACF;QAAC,OAAO,KAAK,EAAE;YACd,iHAAiH;YACjH,iGAAiG;YAEjG,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC;gBACZ,OAAO,EAAE,qEAAqE;gBAC9E,KAAK;gBACL,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,SAAiB,EAAE,SAAkB;QAC5D,OAAO,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,UAAU,EAAE,oBAAoB,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;IACvG,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,SAAiB;QAC5C,OAAO,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,UAAkB,EAAE,KAAa;QACzD,OAAO,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,WAAW,EAAE,oBAAoB,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;IACrG,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,YAAoB;QAC9C,OAAO,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,aAAa,EAAE,oBAAoB,YAAY,EAAE,CAAC,CAAC;IAClG,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,YAAoB;QAC5C,OAAO,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,WAAW,EAAE,oBAAoB,YAAY,EAAE,CAAC,CAAC;IAChG,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,UAAkB;QACnD,OAAO,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IACjF,CAAC;IAEO,MAAM,CAAC,YAAY;QACzB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;SACzG;QACD,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.types.js","sourceRoot":"","sources":["../../src/telemetry/Logger.types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -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
|