@microsoft/power-apps-native-host 0.2.25 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +21 -10
  2. package/compatibility/current.json +31 -4
  3. package/lib/NOTICE.txt +1325 -24
  4. package/lib/commonjs/auth/AuthContext.js +110 -33
  5. package/lib/commonjs/bridge/NativePowerAppsBridge.js +11 -18
  6. package/lib/commonjs/bridge/PowerPagesBridge.js +27 -8
  7. package/lib/commonjs/bridge/bridgeState.js +40 -0
  8. package/lib/commonjs/config/babelConfig.js +13 -0
  9. package/lib/commonjs/config/expoConfig.js +71 -0
  10. package/lib/commonjs/config/metroConfig.js +70 -0
  11. package/lib/commonjs/config/metroLogger.js +182 -0
  12. package/lib/commonjs/config/tamaguiConfig.js +98 -0
  13. package/lib/commonjs/connections/ConnectionSetupScreen.js +459 -80
  14. package/lib/commonjs/connections/PowerPlatformConnectionApi.js +946 -0
  15. package/lib/commonjs/connections/connectionMetadata.js +127 -0
  16. package/lib/commonjs/connections/connectionState.js +96 -0
  17. package/lib/commonjs/connections/disambiguate.js +19 -11
  18. package/lib/commonjs/connections/resolveConnections.js +348 -0
  19. package/lib/commonjs/connections/types.js +106 -0
  20. package/lib/commonjs/{platform → connections}/useConnectionRefs.js +130 -65
  21. package/lib/commonjs/connections/useConnectionSetup.js +111 -52
  22. package/lib/commonjs/controls/FilePicker.js +6 -0
  23. package/lib/commonjs/controls/ImagePicker.js +8 -0
  24. package/lib/commonjs/index.js +167 -4
  25. package/lib/commonjs/logger.js +9 -6
  26. package/lib/commonjs/offline/createOfflineHostActivationCallbacks.js +61 -0
  27. package/lib/commonjs/offline/useOfflineIntegrationWithStartupGate.js +48 -0
  28. package/lib/commonjs/offline/useOfflineIntegrationWithStartupGate.web.js +13 -0
  29. package/lib/commonjs/platform/DataverseDataSources.js +18 -0
  30. package/lib/commonjs/platform/DataverseGlobalDiscoveryApi.js +94 -0
  31. package/lib/commonjs/platform/GlobalDiscovery.js +51 -0
  32. package/lib/commonjs/platform/PowerPlatformEnvironmentApi.js +6 -106
  33. package/lib/commonjs/provider/PowerAppsHostProvider.js +157 -25
  34. package/lib/commonjs/provider/PowerAppsProvider.js +178 -134
  35. package/lib/commonjs/provider/SessionDetailsGesture.js +208 -0
  36. package/lib/commonjs/telemetry/OfflineSdkTelemetry.js +95 -0
  37. package/lib/commonjs/telemetry/OfflineSdkTelemetry.web.js +9 -0
  38. package/lib/commonjs/telemetry/index.js +22 -3
  39. package/lib/module/auth/AuthContext.js +110 -33
  40. package/lib/module/bridge/NativePowerAppsBridge.js +12 -19
  41. package/lib/module/bridge/PowerPagesBridge.js +27 -8
  42. package/lib/module/bridge/bridgeState.js +34 -0
  43. package/lib/module/config/babelConfig.js +9 -0
  44. package/lib/module/config/expoConfig.js +67 -0
  45. package/lib/module/config/metroConfig.js +65 -0
  46. package/lib/module/config/metroLogger.js +175 -0
  47. package/lib/module/config/tamaguiConfig.js +93 -0
  48. package/lib/module/connections/ConnectionSetupScreen.js +460 -81
  49. package/lib/module/connections/PowerPlatformConnectionApi.js +932 -0
  50. package/lib/module/connections/connectionMetadata.js +112 -0
  51. package/lib/module/connections/connectionState.js +82 -0
  52. package/lib/module/connections/disambiguate.js +19 -12
  53. package/lib/module/connections/resolveConnections.js +343 -0
  54. package/lib/module/connections/types.js +91 -0
  55. package/lib/module/{platform → connections}/useConnectionRefs.js +131 -66
  56. package/lib/module/connections/useConnectionSetup.js +113 -54
  57. package/lib/module/controls/FilePicker.js +6 -0
  58. package/lib/module/controls/ImagePicker.js +8 -0
  59. package/lib/module/index.js +14 -4
  60. package/lib/module/logger.js +8 -6
  61. package/lib/module/offline/createOfflineHostActivationCallbacks.js +55 -0
  62. package/lib/module/offline/useOfflineIntegrationWithStartupGate.js +44 -0
  63. package/lib/module/offline/useOfflineIntegrationWithStartupGate.web.js +9 -0
  64. package/lib/module/platform/DataverseDataSources.js +13 -0
  65. package/lib/module/platform/DataverseGlobalDiscoveryApi.js +89 -0
  66. package/lib/module/platform/GlobalDiscovery.js +45 -0
  67. package/lib/module/platform/PowerPlatformEnvironmentApi.js +5 -104
  68. package/lib/module/provider/PowerAppsHostProvider.js +160 -28
  69. package/lib/module/provider/PowerAppsProvider.js +182 -138
  70. package/lib/module/provider/SessionDetailsGesture.js +203 -0
  71. package/lib/module/telemetry/OfflineSdkTelemetry.js +91 -0
  72. package/lib/module/telemetry/OfflineSdkTelemetry.web.js +5 -0
  73. package/lib/module/telemetry/index.js +15 -4
  74. package/lib/typescript/commonjs/auth/AuthContext.d.ts +3 -1
  75. package/lib/typescript/commonjs/auth/AuthContext.web.d.ts +1 -0
  76. package/lib/typescript/commonjs/bridge/bridgeState.d.ts +5 -0
  77. package/lib/typescript/commonjs/config/babelConfig.d.ts +12 -0
  78. package/lib/typescript/commonjs/config/expoConfig.d.ts +21 -0
  79. package/lib/typescript/commonjs/config/metroConfig.d.ts +6 -0
  80. package/lib/typescript/commonjs/config/metroLogger.d.ts +21 -0
  81. package/lib/typescript/commonjs/config/tamaguiConfig.d.ts +1792 -0
  82. package/lib/typescript/commonjs/connections/ConnectionSetupScreen.d.ts +28 -7
  83. package/lib/typescript/commonjs/{platform → connections}/PowerPlatformConnectionApi.d.ts +52 -43
  84. package/lib/typescript/commonjs/connections/connectionMetadata.d.ts +66 -0
  85. package/lib/typescript/commonjs/connections/connectionState.d.ts +16 -0
  86. package/lib/typescript/commonjs/connections/disambiguate.d.ts +4 -2
  87. package/lib/typescript/commonjs/{platform → connections}/resolveConnections.d.ts +22 -20
  88. package/lib/typescript/commonjs/connections/types.d.ts +129 -1
  89. package/lib/typescript/commonjs/{platform → connections}/useConnectionRefs.d.ts +36 -25
  90. package/lib/typescript/commonjs/connections/useConnectionSetup.d.ts +12 -8
  91. package/lib/typescript/commonjs/controls/FilePicker.d.ts +7 -1
  92. package/lib/typescript/commonjs/controls/ImagePicker.d.ts +9 -1
  93. package/lib/typescript/commonjs/index.d.ts +18 -10
  94. package/lib/typescript/commonjs/logger.d.ts +4 -4
  95. package/lib/typescript/commonjs/offline/createOfflineHostActivationCallbacks.d.ts +12 -0
  96. package/lib/typescript/commonjs/offline/useOfflineIntegrationWithStartupGate.d.ts +15 -0
  97. package/lib/typescript/commonjs/offline/useOfflineIntegrationWithStartupGate.web.d.ts +6 -0
  98. package/lib/typescript/commonjs/platform/DataverseDataSources.d.ts +28 -0
  99. package/lib/typescript/commonjs/platform/DataverseGlobalDiscoveryApi.d.ts +3 -0
  100. package/lib/typescript/commonjs/platform/GlobalDiscovery.d.ts +4 -0
  101. package/lib/typescript/commonjs/platform/PowerPlatformEnvironmentApi.d.ts +3 -74
  102. package/lib/typescript/commonjs/provider/PowerAppsHostProvider.d.ts +29 -18
  103. package/lib/typescript/commonjs/provider/PowerAppsProvider.d.ts +54 -9
  104. package/lib/typescript/commonjs/provider/SessionDetailsGesture.d.ts +13 -0
  105. package/lib/typescript/commonjs/telemetry/OfflineSdkTelemetry.d.ts +15 -0
  106. package/lib/typescript/commonjs/telemetry/OfflineSdkTelemetry.web.d.ts +2 -0
  107. package/lib/typescript/commonjs/telemetry/index.d.ts +13 -1
  108. package/lib/typescript/module/auth/AuthContext.d.ts +3 -1
  109. package/lib/typescript/module/auth/AuthContext.web.d.ts +1 -0
  110. package/lib/typescript/module/bridge/bridgeState.d.ts +5 -0
  111. package/lib/typescript/module/config/babelConfig.d.ts +12 -0
  112. package/lib/typescript/module/config/expoConfig.d.ts +21 -0
  113. package/lib/typescript/module/config/metroConfig.d.ts +6 -0
  114. package/lib/typescript/module/config/metroLogger.d.ts +21 -0
  115. package/lib/typescript/module/config/tamaguiConfig.d.ts +1792 -0
  116. package/lib/typescript/module/connections/ConnectionSetupScreen.d.ts +28 -7
  117. package/lib/typescript/module/{platform → connections}/PowerPlatformConnectionApi.d.ts +52 -43
  118. package/lib/typescript/module/connections/connectionMetadata.d.ts +66 -0
  119. package/lib/typescript/module/connections/connectionState.d.ts +16 -0
  120. package/lib/typescript/module/connections/disambiguate.d.ts +4 -2
  121. package/lib/typescript/module/{platform → connections}/resolveConnections.d.ts +22 -20
  122. package/lib/typescript/module/connections/types.d.ts +129 -1
  123. package/lib/typescript/module/{platform → connections}/useConnectionRefs.d.ts +36 -25
  124. package/lib/typescript/module/connections/useConnectionSetup.d.ts +12 -8
  125. package/lib/typescript/module/controls/FilePicker.d.ts +7 -1
  126. package/lib/typescript/module/controls/ImagePicker.d.ts +9 -1
  127. package/lib/typescript/module/index.d.ts +18 -10
  128. package/lib/typescript/module/logger.d.ts +4 -4
  129. package/lib/typescript/module/offline/createOfflineHostActivationCallbacks.d.ts +12 -0
  130. package/lib/typescript/module/offline/useOfflineIntegrationWithStartupGate.d.ts +15 -0
  131. package/lib/typescript/module/offline/useOfflineIntegrationWithStartupGate.web.d.ts +6 -0
  132. package/lib/typescript/module/platform/DataverseDataSources.d.ts +28 -0
  133. package/lib/typescript/module/platform/DataverseGlobalDiscoveryApi.d.ts +3 -0
  134. package/lib/typescript/module/platform/GlobalDiscovery.d.ts +4 -0
  135. package/lib/typescript/module/platform/PowerPlatformEnvironmentApi.d.ts +3 -74
  136. package/lib/typescript/module/provider/PowerAppsHostProvider.d.ts +29 -18
  137. package/lib/typescript/module/provider/PowerAppsProvider.d.ts +54 -9
  138. package/lib/typescript/module/provider/SessionDetailsGesture.d.ts +13 -0
  139. package/lib/typescript/module/telemetry/OfflineSdkTelemetry.d.ts +15 -0
  140. package/lib/typescript/module/telemetry/OfflineSdkTelemetry.web.d.ts +2 -0
  141. package/lib/typescript/module/telemetry/index.d.ts +13 -1
  142. package/package.json +52 -13
  143. package/scripts/build-codegen-package.js +283 -0
  144. package/scripts/start-web.mjs +9 -5
  145. package/scripts/upgrade/runtime.js +139 -24
  146. package/scripts/upgrade-authoring.js +274 -180
  147. package/scripts/upgrade.js +10 -16
  148. package/src/config/generated-config.d.ts +4 -0
  149. package/src/config/index.d.ts +3 -0
  150. package/src/config/tsconfig.json +26 -0
  151. package/lib/commonjs/platform/PowerPlatformConnectionApi.js +0 -606
  152. package/lib/commonjs/platform/resolveConnections.js +0 -264
  153. package/lib/module/platform/PowerPlatformConnectionApi.js +0 -595
  154. package/lib/module/platform/resolveConnections.js +0 -259
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ import { getAppLogger } from '@microsoft/power-apps-native-common';
4
+ import * as OfflineSdk from '@microsoft/power-apps-native-offline';
5
+
6
+ /**
7
+ * Operation names for this adapter's own diagnostics, following the
8
+ * `PowerAppsHost.<Subsystem>.<Action>` convention used by `HostOperationNames`.
9
+ *
10
+ * Declared locally rather than imported from `./index`: this module must stay
11
+ * fail-open and side-effect free, and the barrel constructs HTTP clients at
12
+ * import time. Two string constants are not worth that dependency.
13
+ */
14
+ const OfflineTelemetryBindFailed = 'PowerAppsHost.Offline.TelemetryBind.Failed';
15
+ const OfflineTelemetryUnbindFailed = 'PowerAppsHost.Offline.TelemetryUnbind.Failed';
16
+
17
+ /**
18
+ * Non-sensitive error discriminator. Records the error's constructor name only,
19
+ * never its message, so diagnostics cannot leak user or tenant data.
20
+ */
21
+ function getSafeErrorName(error) {
22
+ return error instanceof Error ? error.constructor.name : typeof error;
23
+ }
24
+
25
+ /**
26
+ * True when the resolved SDK exposes the v1 host-telemetry transport.
27
+ *
28
+ * Reading a missing export yields `undefined` rather than throwing, so this
29
+ * probe is safe on SDK builds that predate the transport. Keeping it separate
30
+ * from the `try`/`catch` below is what lets an out-of-range SDK stay a silent,
31
+ * expected no-op while genuine wiring failures still get reported.
32
+ *
33
+ * The version equality matters as much as the `typeof`: a future transport
34
+ * revision with a different sink shape would accept a v1 sink and silently
35
+ * malform every event rather than throw.
36
+ */
37
+ function isTransportSupported() {
38
+ return typeof OfflineSdk.configureOfflineHostTelemetry === 'function' && OfflineSdk.OFFLINE_HOST_TELEMETRY_TRANSPORT_VERSION === 1;
39
+ }
40
+
41
+ /**
42
+ * Forwards the privacy-safe Offline SDK transport through the host's existing
43
+ * app logger so offline events carry the same session, device, and user data.
44
+ *
45
+ * The host owns exactly one thing here: binding the SDK transport to this
46
+ * host's logger. Buffering and teardown semantics live in the SDK.
47
+ *
48
+ * Setup and teardown are fail-open but not silent. This runs from an effect in
49
+ * the provider that roots the app, so an unguarded throw would take down the
50
+ * whole tree — telemetry is never worth an app that will not start. An
51
+ * unexpected failure is therefore downgraded to a logged diagnostic rather than
52
+ * swallowed, so broken wiring stays observable.
53
+ */
54
+ export function configureOfflineSdkTelemetry(forwardEvents) {
55
+ if (!isTransportSupported()) {
56
+ return () => undefined;
57
+ }
58
+ const stopForwarding = () => {
59
+ try {
60
+ OfflineSdk.configureOfflineHostTelemetry(undefined);
61
+ } catch (e) {
62
+ getAppLogger().trackErrorEvent(OfflineTelemetryUnbindFailed, {
63
+ errorName: getSafeErrorName(e)
64
+ });
65
+ }
66
+ };
67
+ if (!forwardEvents) {
68
+ stopForwarding();
69
+ return stopForwarding;
70
+ }
71
+ try {
72
+ OfflineSdk.configureOfflineHostTelemetry({
73
+ // Resolved per event, not captured: the Dev Player swaps the logger when
74
+ // it switches apps, and a captured instance would strand events.
75
+ //
76
+ // `name` is the operation name only. Deliberately not passed as the
77
+ // optional third `eventName` argument: that overrides the canonical
78
+ // `PowerAppsClient.Activity`/`.Error` 1DS event names, which would hide
79
+ // every offline event from the queries and dashboards that filter on
80
+ // them. The name already reaches 1DS as `operation_Name`.
81
+ trackActivityEvent: (name, properties) => getAppLogger().trackActivityEvent(name, properties),
82
+ trackErrorEvent: (name, properties) => getAppLogger().trackErrorEvent(name, properties)
83
+ });
84
+ } catch (e) {
85
+ getAppLogger().trackErrorEvent(OfflineTelemetryBindFailed, {
86
+ errorName: getSafeErrorName(e)
87
+ });
88
+ return () => undefined;
89
+ }
90
+ return stopForwarding;
91
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export function configureOfflineSdkTelemetry(_forwardEvents) {
4
+ return () => undefined;
5
+ }
@@ -10,8 +10,9 @@
10
10
  * alongside the canonical host operation-name constants.
11
11
  */
12
12
 
13
- export { getAppLogger, configureAppLogger } from '@microsoft/power-apps-native-common';
14
-
13
+ import { HttpClient } from '@microsoft/power-apps-native-common/http';
14
+ import { isDebugLoggingEnabled } from "../logger.js";
15
+ export { getAppLogger, configureAppLogger, getCustomerTelemetryLogger } from '@microsoft/power-apps-native-common';
15
16
  /**
16
17
  * Canonical operation names for host package telemetry.
17
18
  * Follow the `PowerAppsHost.<Subsystem>.<Action>` convention so events are
@@ -42,14 +43,24 @@ export const HostOperationNames = {
42
43
  /** Top-level React error boundary caught an unhandled JS error. */
43
44
  RuntimeUnhandledJsError: 'PowerAppsHost.Runtime.UnhandledJsError',
44
45
  // ── Platform APIs ─────────────────────────────────────────────────────────
46
+ /** Power Platform RP HTTP request, including backend correlation IDs. */
47
+ PlatformHttpRequest: 'PowerAppsHost.Platform.HttpRequest',
45
48
  /** Resolve Dataverse instanceUrl from Power Platform environment API. */
46
49
  PlatformFetchInstanceUrl: 'PowerAppsHost.Platform.FetchInstanceUrl',
47
50
  /** useConnectionRefs failed to resolve connections (recoverable). Recorded only on failure. */
48
51
  PlatformLoadConnectionsFailed: 'PowerAppsHost.Platform.LoadConnections.Failed',
49
52
  /** Create a new Power Platform connection. */
50
53
  PlatformCreateConnection: 'PowerAppsHost.Platform.CreateConnection',
54
+ /** Repair an existing Power Platform connection. */
55
+ PlatformRepairConnection: 'PowerAppsHost.Platform.RepairConnection',
56
+ /** Poll a connection until it becomes active. */
57
+ PlatformPollConnectionStatus: 'PowerAppsHost.Platform.PollConnectionStatus',
51
58
  /** Resolve app connection references for the current launch. */
52
59
  PlatformResolveConnectionRefs: 'PowerAppsHost.Platform.ResolveConnectionRefs',
53
60
  /** Grant this app access to a Power Platform connection ACL. */
54
- PlatformConnectionAclGrant: 'PowerAppsHost.Platform.ConnectionAclGrant'
55
- };
61
+ PlatformConnectionAclGrant: 'PowerAppsHost.Platform.ConnectionAclGrant',
62
+ /** Installed Offline SDK predates the SDK-owned routing contract. */
63
+ OfflineRoutingContractUnsupported: 'PowerAppsHost.Offline.RoutingContract.Unsupported'
64
+ };
65
+ export const bridgeHttpClient = new HttpClient(HostOperationNames.BridgeHttpRequest, isDebugLoggingEnabled);
66
+ export const platformHttpClient = new HttpClient(HostOperationNames.PlatformHttpRequest, isDebugLoggingEnabled);
@@ -46,9 +46,11 @@ export interface AuthProviderProps {
46
46
  * Pass explicitly only to override the default (e.g. in tests).
47
47
  */
48
48
  intuneConfig?: IntuneConfig;
49
+ /** Token audiences that must be available before the account is considered signed in. */
50
+ requiredScopes?: string[];
49
51
  children: React.ReactNode;
50
52
  }
51
- export declare function AuthProvider({ msalConfig, intuneConfig, children }: AuthProviderProps): React.JSX.Element;
53
+ export declare function AuthProvider({ msalConfig, intuneConfig, requiredScopes, children, }: AuthProviderProps): React.JSX.Element;
52
54
  /**
53
55
  * Returns the current auth state from the nearest <AuthProvider>.
54
56
  * Must be called within the AuthProvider tree.
@@ -13,6 +13,7 @@ export interface AuthState {
13
13
  export interface AuthProviderProps {
14
14
  msalConfig: MsalAuthConfig;
15
15
  intuneConfig?: IntuneConfig;
16
+ requiredScopes?: string[];
16
17
  children: React.ReactNode;
17
18
  }
18
19
  export declare function AuthProvider({ children }: AuthProviderProps): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { NativeBridgeOptions } from './NativePowerAppsBridge';
2
+ export declare function getRequestBodyForMethod(method: string, body: BodyInit | null): BodyInit | null;
3
+ export declare function assertSuccessfulHttpStatus(status: number, method: string): void;
4
+ export declare function updateBridgeOptionsInPlace(current: NativeBridgeOptions, next: NativeBridgeOptions): NativeBridgeOptions;
5
+ //# sourceMappingURL=bridgeState.d.ts.map
@@ -0,0 +1,12 @@
1
+ export interface BabelConfigApi {
2
+ cache(value: boolean): void;
3
+ }
4
+ export interface PowerAppsBabelConfigOptions {
5
+ presets?: unknown[];
6
+ plugins?: unknown[];
7
+ }
8
+ export declare function createPowerAppsBabelConfig(api: BabelConfigApi, options?: PowerAppsBabelConfigOptions): {
9
+ presets: unknown[];
10
+ plugins: unknown[];
11
+ };
12
+ //# sourceMappingURL=babelConfig.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { ConfigContext, ExpoConfig } from 'expo/config';
2
+ export interface PowerAppsExpoConfigSettings {
3
+ name: string;
4
+ slug: string;
5
+ scheme: string;
6
+ androidPackage: string;
7
+ iosBundleIdentifier: string;
8
+ version: string;
9
+ versionCode: number;
10
+ iconPath?: string | null;
11
+ /**
12
+ * Optional splash image. When omitted, falls back to the `APP_SPLASH_PATH`
13
+ * environment variable and then to the branding placeholder, so the template
14
+ * needs no wiring of its own and prebuild always emits replaceable slots.
15
+ */
16
+ splashPath?: string | null;
17
+ isDevClient?: boolean;
18
+ }
19
+ export type CustomizePowerAppsExpoConfig = (config: ExpoConfig) => ExpoConfig;
20
+ export declare function createPowerAppsExpoConfig(baseConfig: ConfigContext['config'], settings: PowerAppsExpoConfigSettings, customize?: CustomizePowerAppsExpoConfig): ExpoConfig;
21
+ //# sourceMappingURL=expoConfig.d.ts.map
@@ -0,0 +1,6 @@
1
+ import { getDefaultConfig } from 'expo/metro-config.js';
2
+ type PowerAppsMetroConfig = ReturnType<typeof getDefaultConfig>;
3
+ type CustomizeMetroConfig = (config: PowerAppsMetroConfig) => PowerAppsMetroConfig;
4
+ export declare function createPowerAppsMetroConfig(projectRoot: string, customize?: CustomizeMetroConfig): PowerAppsMetroConfig;
5
+ export {};
6
+ //# sourceMappingURL=metroConfig.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ type InstrumentationContext = {
3
+ phase: string;
4
+ logPath: string;
5
+ };
6
+ type InstrumentationErrorHandler = (error: Error, context: InstrumentationContext) => void;
7
+ type MetroNext = (error?: Error) => void;
8
+ export type MetroMiddleware = (request: IncomingMessage, response: ServerResponse, next: MetroNext) => unknown;
9
+ export type MetroLoggingOptions = {
10
+ projectRoot?: string;
11
+ maxBodyBytes?: number;
12
+ onError?: InstrumentationErrorHandler;
13
+ };
14
+ export declare function redactMetroLog(value: unknown): string;
15
+ export declare function enablePowerNativeMetroLogging(options?: MetroLoggingOptions): {
16
+ logDir: string;
17
+ logPath: string;
18
+ };
19
+ export declare function withPowerNativeMetroLogging(middleware: MetroMiddleware, options?: MetroLoggingOptions): MetroMiddleware;
20
+ export {};
21
+ //# sourceMappingURL=metroLogger.d.ts.map