@userflow-tech/react-native 0.3.1 → 0.4.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/README.md +82 -54
- package/docs/troubleshooting.md +29 -23
- package/expo-plugin/hostDependencyWarnings.d.ts +5 -2
- package/expo-plugin/hostDependencyWarnings.d.ts.map +1 -1
- package/expo-plugin/hostDependencyWarnings.js +12 -2
- package/expo-plugin/hostDependencyWarnings.js.map +1 -1
- package/lib/commonjs/authoring/capturePickerScreenshot.js +9 -1
- package/lib/commonjs/authoring/capturePickerScreenshot.js.map +1 -1
- package/lib/commonjs/evalJs/getWebView.js +5 -13
- package/lib/commonjs/evalJs/getWebView.js.map +1 -1
- package/lib/commonjs/hostAppVersion.js +6 -1
- package/lib/commonjs/hostAppVersion.js.map +1 -1
- package/lib/commonjs/installCheck.js +61 -29
- package/lib/commonjs/installCheck.js.map +1 -1
- package/lib/commonjs/nativeModules.js +44 -0
- package/lib/commonjs/nativeModules.js.map +1 -0
- package/lib/commonjs/network.js +20 -7
- package/lib/commonjs/network.js.map +1 -1
- package/lib/commonjs/pairing/tokenStorage.js +17 -4
- package/lib/commonjs/pairing/tokenStorage.js.map +1 -1
- package/lib/commonjs/surfaces/BannerSurface.js +3 -1
- package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
- package/lib/commonjs/surfaces/safeArea.js +6 -0
- package/lib/commonjs/surfaces/safeArea.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/authoring/capturePickerScreenshot.js +9 -1
- package/lib/module/authoring/capturePickerScreenshot.js.map +1 -1
- package/lib/module/evalJs/getWebView.js +5 -13
- package/lib/module/evalJs/getWebView.js.map +1 -1
- package/lib/module/hostAppVersion.js +6 -1
- package/lib/module/hostAppVersion.js.map +1 -1
- package/lib/module/installCheck.js +56 -26
- package/lib/module/installCheck.js.map +1 -1
- package/lib/module/nativeModules.js +40 -0
- package/lib/module/nativeModules.js.map +1 -0
- package/lib/module/network.js +20 -7
- package/lib/module/network.js.map +1 -1
- package/lib/module/pairing/tokenStorage.js +17 -4
- package/lib/module/pairing/tokenStorage.js.map +1 -1
- package/lib/module/surfaces/BannerSurface.js +3 -1
- package/lib/module/surfaces/BannerSurface.js.map +1 -1
- package/lib/module/surfaces/safeArea.js +5 -0
- package/lib/module/surfaces/safeArea.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/evalJs/getWebView.d.ts +2 -1
- package/lib/typescript/commonjs/src/evalJs/getWebView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/hostAppVersion.d.ts +1 -1
- package/lib/typescript/commonjs/src/hostAppVersion.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/installCheck.d.ts +18 -3
- package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeModules.d.ts +13 -0
- package/lib/typescript/commonjs/src/nativeModules.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/network.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts +2 -0
- package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/version.d.ts +1 -1
- package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts.map +1 -1
- package/lib/typescript/module/src/evalJs/getWebView.d.ts +2 -1
- package/lib/typescript/module/src/evalJs/getWebView.d.ts.map +1 -1
- package/lib/typescript/module/src/hostAppVersion.d.ts +1 -1
- package/lib/typescript/module/src/hostAppVersion.d.ts.map +1 -1
- package/lib/typescript/module/src/installCheck.d.ts +18 -3
- package/lib/typescript/module/src/installCheck.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeModules.d.ts +13 -0
- package/lib/typescript/module/src/nativeModules.d.ts.map +1 -0
- package/lib/typescript/module/src/network.d.ts.map +1 -1
- package/lib/typescript/module/src/pairing/tokenStorage.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/safeArea.d.ts +2 -0
- package/lib/typescript/module/src/surfaces/safeArea.d.ts.map +1 -1
- package/lib/typescript/module/src/version.d.ts +1 -1
- package/package.json +13 -8
- package/src/authoring/capturePickerScreenshot.ts +10 -1
- package/src/evalJs/getWebView.ts +6 -13
- package/src/hostAppVersion.ts +7 -1
- package/src/installCheck.ts +67 -33
- package/src/nativeModules.ts +48 -0
- package/src/network.ts +27 -11
- package/src/pairing/tokenStorage.ts +23 -7
- package/src/surfaces/BannerSurface.tsx +7 -5
- package/src/surfaces/safeArea.ts +5 -0
- package/src/version.ts +1 -1
- package/vendor/core/package.json +1 -1
- package/vendor/protocol/package.json +1 -1
- package/docs/webview-custom-banner-poc.md +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nonEmptyString","value","length","undefined","unwrapModule","mod","record","nested","tryRequireExpoApplication","
|
|
1
|
+
{"version":3,"names":["_nativeModules","require","nonEmptyString","value","length","undefined","unwrapModule","mod","record","nested","tryRequireExpoApplication","isNativeModuleLinked","tryRequireExpoConstants","loadLinkedDeviceInfoNativeModule","NativeModules","RNDeviceInfo","readExpoApplication","version","build","source","readExpoConstants","expoConfig","configVersion","readDeviceInfoFromNativeModule","module","appVersion","buildNumber","resolveHostAppVersionFromSources","sources","expoApplication","expoConstants","deviceInfoNative","resolveHostAppVersion","resolveHostAppVersionForInit","options","overrideVersion","appBuild","cachedHostAppVersion","cacheHostAppVersionAtInit","getCachedHostAppVersion","HOST_APP_VERSION_USER_ATTRIBUTE","exports","HOST_APP_BUILD_USER_ATTRIBUTE","hostAppVersionUserAttributes","cached","mergeHostAppVersionUserAttributes","attributes","system","Object","keys","resetCachedHostAppVersionForTests","readPlatformOS","os","Platform","OS","formatHostAppVersionLog","resolved","level","message","logHostAppVersion","console","warn","log"],"sourceRoot":"../../src","sources":["hostAppVersion.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,51 +3,46 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.INSTALL_WEBVIEW_LINE = exports.INSTALL_VIEW_SHOT_LINE = exports.INSTALL_DEVICE_INFO_LINE = exports.INSTALL_CHECK_HEADER = exports.INSTALL_CHECK_FOOTER = exports.INSTALL_ASYNC_STORAGE_LINE = exports.INIT_OPTIONS_IGNORED_WARNING = exports.EXPO_GO_WARNING = void 0;
|
|
6
|
+
exports.INSTALL_WEBVIEW_LINE = exports.INSTALL_VIEW_SHOT_LINE = exports.INSTALL_SAFE_AREA_WARNING = exports.INSTALL_DEVICE_INFO_LINE = exports.INSTALL_CHECK_HEADER = exports.INSTALL_CHECK_FOOTER = exports.INSTALL_ASYNC_STORAGE_LINE = exports.INIT_OPTIONS_IGNORED_WARNING = exports.EXPO_GO_WARNING = void 0;
|
|
7
7
|
exports.collectInstallFindings = collectInstallFindings;
|
|
8
8
|
exports.commitInitOptions = commitInitOptions;
|
|
9
9
|
exports.expoGoWarning = expoGoWarning;
|
|
10
10
|
exports.formatInstallWarning = formatInstallWarning;
|
|
11
|
+
exports.formatViewShotVersionWarning = formatViewShotVersionWarning;
|
|
11
12
|
exports.releaseFailedInitOptions = releaseFailedInitOptions;
|
|
12
13
|
exports.resetInstallCheckForTests = resetInstallCheckForTests;
|
|
14
|
+
exports.viewShotVersionWarning = viewShotVersionWarning;
|
|
13
15
|
exports.warnIfInitOptionsIgnored = warnIfInitOptionsIgnored;
|
|
14
16
|
exports.warnIfInstallIncomplete = warnIfInstallIncomplete;
|
|
15
17
|
var _getWebView = require("./evalJs/getWebView.js");
|
|
18
|
+
var _nativeModules = require("./nativeModules.js");
|
|
16
19
|
var _asyncStorage = require("./storage/asyncStorage.js");
|
|
20
|
+
var _safeArea = require("./surfaces/safeArea.js");
|
|
17
21
|
const INSTALL_CHECK_HEADER = exports.INSTALL_CHECK_HEADER = '[Userflow] Native setup is incomplete. Flows may not run until you fix the following, then rebuild the app (a Metro reload is not enough):';
|
|
18
22
|
const INSTALL_ASYNC_STORAGE_LINE = exports.INSTALL_ASYNC_STORAGE_LINE = '- @react-native-async-storage/async-storage is not linked. Anonymous users and Builder pairing will not persist. Add it to the app package.json (npx expo install @react-native-async-storage/async-storage), run pod install on iOS, and rebuild.';
|
|
19
23
|
const INSTALL_VIEW_SHOT_LINE = exports.INSTALL_VIEW_SHOT_LINE = '- react-native-view-shot is not linked, so Builder element selection gets no screenshot. Install react-native-view-shot@^5.0.0 and rebuild. On Expo SDK 54, pin ^5.0.0; an unpinned npx expo install resolves 4.0.3.';
|
|
20
24
|
const INSTALL_WEBVIEW_LINE = exports.INSTALL_WEBVIEW_LINE = '- react-native-webview is not linked. Evaluate JavaScript and WebView banners will not run. Install it (npx expo install react-native-webview) and rebuild.';
|
|
21
25
|
const INSTALL_DEVICE_INFO_LINE = exports.INSTALL_DEVICE_INFO_LINE = '- react-native-device-info is not linked, so app_version and app_build are not sent. npm install react-native-device-info, then rebuild.';
|
|
22
|
-
const INSTALL_CHECK_FOOTER = exports.INSTALL_CHECK_FOOTER = 'See docs/troubleshooting.md.';
|
|
26
|
+
const INSTALL_CHECK_FOOTER = exports.INSTALL_CHECK_FOOTER = 'See node_modules/@userflow-tech/react-native/docs/troubleshooting.md.';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Separate from {@link INSTALL_CHECK_HEADER}. Flows still run without
|
|
30
|
+
* safe-area-context; they draw under the status bar.
|
|
31
|
+
*/
|
|
32
|
+
const INSTALL_SAFE_AREA_WARNING = exports.INSTALL_SAFE_AREA_WARNING = '[Userflow] react-native-safe-area-context is not installed, so banners, flow cards, and Builder bars draw under the status bar and home indicator. Install it (npx expo install react-native-safe-area-context) and wrap the app in <SafeAreaProvider>.\n' + INSTALL_CHECK_FOOTER;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Separate from {@link INSTALL_CHECK_HEADER}. Flows still run on view-shot 4;
|
|
36
|
+
* Builder screenshots may not. The installed version is interpolated.
|
|
37
|
+
*/
|
|
38
|
+
function formatViewShotVersionWarning(version) {
|
|
39
|
+
return `[Userflow] react-native-view-shot@${version} is older than 5.0.0, so Builder element selection may not get a screenshot. ` + 'Install react-native-view-shot@^5.0.0 in the same command as the SDK and rebuild. ' + 'Do not retry the install with --force or --legacy-peer-deps; that leaves this version in place. ' + 'On Expo SDK 54, pin ^5.0.0 and add "react-native-view-shot" to expo.install.exclude.\n' + INSTALL_CHECK_FOOTER;
|
|
40
|
+
}
|
|
23
41
|
const EXPO_GO_WARNING = exports.EXPO_GO_WARNING = '[Userflow] This app is running in Expo Go, which cannot load the SDK native modules. Builder preview links will not open the app. Use a development build (npx expo run:ios / npx expo run:android).';
|
|
24
42
|
const INIT_OPTIONS_IGNORED_WARNING = exports.INIT_OPTIONS_IGNORED_WARNING = '[Userflow] Userflow.init() already ran with different options. The new clientToken, serverEndpoint, and pairingEndpoint are ignored because init runs once per process. Userflow.reset() does not apply new credentials. Restart the app to change them.';
|
|
25
43
|
const VIEW_SHOT_MODULE = 'RNViewShot';
|
|
26
44
|
const DEVICE_INFO_MODULE = 'RNDeviceInfo';
|
|
27
45
|
let didWarn = false;
|
|
28
|
-
function loadReactNative() {
|
|
29
|
-
try {
|
|
30
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
31
|
-
return require('react-native');
|
|
32
|
-
} catch {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
function isNativeModuleLinked(name) {
|
|
37
|
-
const reactNative = loadReactNative();
|
|
38
|
-
if (!reactNative) return false;
|
|
39
|
-
try {
|
|
40
|
-
const turbo = reactNative.TurboModuleRegistry;
|
|
41
|
-
if (typeof turbo?.get === 'function' && turbo.get(name) != null) return true;
|
|
42
|
-
} catch {
|
|
43
|
-
// Fall through to the legacy registry.
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
return reactNative.NativeModules?.[name] != null;
|
|
47
|
-
} catch {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
46
|
function readExpoConstants() {
|
|
52
47
|
try {
|
|
53
48
|
// Optional. Bare React Native does not have this package.
|
|
@@ -63,15 +58,40 @@ function readExpoConstants() {
|
|
|
63
58
|
}
|
|
64
59
|
}
|
|
65
60
|
|
|
61
|
+
/**
|
|
62
|
+
* Installed view-shot version, read from package.json only. Requiring the
|
|
63
|
+
* package entry loads the native module, and view-shot 4 calls
|
|
64
|
+
* `TurboModuleRegistry.getEnforcing` at import.
|
|
65
|
+
*/
|
|
66
|
+
function readViewShotVersion() {
|
|
67
|
+
try {
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
69
|
+
const pkg = require('react-native-view-shot/package.json');
|
|
70
|
+
return typeof pkg.version === 'string' && pkg.version.length > 0 ? pkg.version : null;
|
|
71
|
+
} catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Dev warning when view-shot 4.x is installed. Null on 5.x or when it is absent. */
|
|
77
|
+
function viewShotVersionWarning() {
|
|
78
|
+
const version = readViewShotVersion();
|
|
79
|
+
if (!version) return null;
|
|
80
|
+
const match = version.match(/\d+/);
|
|
81
|
+
const major = match ? Number(match[0]) : null;
|
|
82
|
+
if (major == null || major >= 5) return null;
|
|
83
|
+
return formatViewShotVersionWarning(version);
|
|
84
|
+
}
|
|
85
|
+
|
|
66
86
|
/** Lines for missing native modules. Empty when the build looks complete. */
|
|
67
87
|
function collectInstallFindings() {
|
|
68
88
|
const findings = [];
|
|
69
89
|
if (!(0, _asyncStorage.isAsyncStorageLinked)()) findings.push(INSTALL_ASYNC_STORAGE_LINE);
|
|
70
|
-
if (!isNativeModuleLinked(VIEW_SHOT_MODULE)) findings.push(INSTALL_VIEW_SHOT_LINE);
|
|
90
|
+
if (!(0, _nativeModules.isNativeModuleLinked)(VIEW_SHOT_MODULE)) findings.push(INSTALL_VIEW_SHOT_LINE);
|
|
71
91
|
if (!(0, _getWebView.isEvalJsWebViewNativeLinked)()) findings.push(INSTALL_WEBVIEW_LINE);
|
|
72
92
|
// Expo reads the store version from expo-constants / expo-application.
|
|
73
93
|
// device-info is the bare React Native path.
|
|
74
|
-
if (readExpoConstants() == null && !isNativeModuleLinked(DEVICE_INFO_MODULE)) {
|
|
94
|
+
if (readExpoConstants() == null && !(0, _nativeModules.isNativeModuleLinked)(DEVICE_INFO_MODULE)) {
|
|
75
95
|
findings.push(INSTALL_DEVICE_INFO_LINE);
|
|
76
96
|
}
|
|
77
97
|
return findings;
|
|
@@ -86,8 +106,11 @@ function formatInstallWarning(findings) {
|
|
|
86
106
|
}
|
|
87
107
|
|
|
88
108
|
/**
|
|
89
|
-
* One development warning for missing native modules,
|
|
90
|
-
*
|
|
109
|
+
* One development warning for missing native modules, separate warnings when
|
|
110
|
+
* safe-area-context is not installed or view-shot is older than 5, and a
|
|
111
|
+
* separate warning when the host is Expo Go. Release builds stay quiet. The
|
|
112
|
+
* safe-area and old view-shot warnings are not part of the native-module list:
|
|
113
|
+
* flows still run, and that list says they may not.
|
|
91
114
|
*/
|
|
92
115
|
function warnIfInstallIncomplete() {
|
|
93
116
|
if (!__DEV__ || didWarn) return;
|
|
@@ -97,6 +120,15 @@ function warnIfInstallIncomplete() {
|
|
|
97
120
|
// eslint-disable-next-line no-console -- intentional install diagnostic
|
|
98
121
|
console.warn(formatInstallWarning(findings));
|
|
99
122
|
}
|
|
123
|
+
if (!(0, _safeArea.isSafeAreaContextInstalled)()) {
|
|
124
|
+
// eslint-disable-next-line no-console -- intentional install diagnostic
|
|
125
|
+
console.warn(INSTALL_SAFE_AREA_WARNING);
|
|
126
|
+
}
|
|
127
|
+
const oldViewShot = viewShotVersionWarning();
|
|
128
|
+
if (oldViewShot) {
|
|
129
|
+
// eslint-disable-next-line no-console -- intentional install diagnostic
|
|
130
|
+
console.warn(oldViewShot);
|
|
131
|
+
}
|
|
100
132
|
const expoGo = expoGoWarning();
|
|
101
133
|
if (expoGo) {
|
|
102
134
|
// eslint-disable-next-line no-console -- intentional install diagnostic
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_getWebView","require","_asyncStorage","INSTALL_CHECK_HEADER","exports","INSTALL_ASYNC_STORAGE_LINE","INSTALL_VIEW_SHOT_LINE","INSTALL_WEBVIEW_LINE","INSTALL_DEVICE_INFO_LINE","INSTALL_CHECK_FOOTER","EXPO_GO_WARNING","INIT_OPTIONS_IGNORED_WARNING","VIEW_SHOT_MODULE","DEVICE_INFO_MODULE","didWarn","
|
|
1
|
+
{"version":3,"names":["_getWebView","require","_nativeModules","_asyncStorage","_safeArea","INSTALL_CHECK_HEADER","exports","INSTALL_ASYNC_STORAGE_LINE","INSTALL_VIEW_SHOT_LINE","INSTALL_WEBVIEW_LINE","INSTALL_DEVICE_INFO_LINE","INSTALL_CHECK_FOOTER","INSTALL_SAFE_AREA_WARNING","formatViewShotVersionWarning","version","EXPO_GO_WARNING","INIT_OPTIONS_IGNORED_WARNING","VIEW_SHOT_MODULE","DEVICE_INFO_MODULE","didWarn","readExpoConstants","mod","record","default","executionEnvironment","readViewShotVersion","pkg","length","viewShotVersionWarning","match","major","Number","collectInstallFindings","findings","isAsyncStorageLinked","push","isNativeModuleLinked","isEvalJsWebViewNativeLinked","expoGoWarning","constants","environment","formatInstallWarning","join","warnIfInstallIncomplete","__DEV__","console","warn","isSafeAreaContextInstalled","oldViewShot","expoGo","resetInstallCheckForTests","recordedInitOptions","initOptionsCommitted","recordInitOptions","config","clientToken","serverEndpoint","pairingEndpoint","warnIfInitOptionsIgnored","next","commitInitOptions","releaseFailedInitOptions"],"sourceRoot":"../../src","sources":["installCheck.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isNativeModuleLinked = isNativeModuleLinked;
|
|
7
|
+
/**
|
|
8
|
+
* Whether a native module is registered in this binary.
|
|
9
|
+
*
|
|
10
|
+
* Check this before `require`ing a package that throws while it loads when the
|
|
11
|
+
* native half is missing. Metro reports that throw as a fatal error before the
|
|
12
|
+
* caller's try/catch runs, which is a red screen in debug and can crash a
|
|
13
|
+
* release build.
|
|
14
|
+
*
|
|
15
|
+
* React Native modules show up on `TurboModuleRegistry` or `NativeModules`.
|
|
16
|
+
* Expo modules are on `globalThis.expo.modules` (see `requireOptionalNativeModule`).
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
function loadReactNative() {
|
|
20
|
+
try {
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
22
|
+
return require('react-native');
|
|
23
|
+
} catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function isNativeModuleLinked(name) {
|
|
28
|
+
const expoModules = globalThis.expo?.modules;
|
|
29
|
+
if (expoModules?.[name] != null) return true;
|
|
30
|
+
const reactNative = loadReactNative();
|
|
31
|
+
if (!reactNative) return false;
|
|
32
|
+
try {
|
|
33
|
+
const turbo = reactNative.TurboModuleRegistry;
|
|
34
|
+
if (typeof turbo?.get === 'function' && turbo.get(name) != null) return true;
|
|
35
|
+
} catch {
|
|
36
|
+
// Fall through to the legacy registry.
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
return reactNative.NativeModules?.[name] != null;
|
|
40
|
+
} catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=nativeModules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["loadReactNative","require","isNativeModuleLinked","name","expoModules","globalThis","expo","modules","reactNative","turbo","TurboModuleRegistry","get","NativeModules"],"sourceRoot":"../../src","sources":["nativeModules.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,SAASA,eAAeA,CAAA,EAAwB;EAC9C,IAAI;IACF;IACA,OAAOC,OAAO,CAAC,cAAc,CAAC;EAChC,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEO,SAASC,oBAAoBA,CAACC,IAAY,EAAW;EAC1D,MAAMC,WAAW,GAAIC,UAAU,CAA4BC,IAAI,EAAEC,OAAO;EACxE,IAAIH,WAAW,GAAGD,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,IAAI;EAE5C,MAAMK,WAAW,GAAGR,eAAe,CAAC,CAAC;EACrC,IAAI,CAACQ,WAAW,EAAE,OAAO,KAAK;EAC9B,IAAI;IACF,MAAMC,KAAK,GAAGD,WAAW,CAACE,mBAAmB;IAC7C,IAAI,OAAOD,KAAK,EAAEE,GAAG,KAAK,UAAU,IAAIF,KAAK,CAACE,GAAG,CAACR,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,IAAI;EAC9E,CAAC,CAAC,MAAM;IACN;EAAA;EAEF,IAAI;IACF,OAAOK,WAAW,CAACI,aAAa,GAAGT,IAAI,CAAC,IAAI,IAAI;EAClD,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF","ignoreList":[]}
|
package/lib/commonjs/network.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.NetworkController = void 0;
|
|
7
|
+
var _nativeModules = require("./nativeModules.js");
|
|
7
8
|
/**
|
|
8
9
|
* Network reachability → eager liveness check (optional enhancement).
|
|
9
10
|
*
|
|
@@ -23,10 +24,25 @@ exports.NetworkController = void 0;
|
|
|
23
24
|
function isOnline(status) {
|
|
24
25
|
return status.isConnected === true && status.isInternetReachable !== false;
|
|
25
26
|
}
|
|
27
|
+
const NETINFO_MODULE = 'RNCNetInfo';
|
|
28
|
+
const NETINFO_UNAVAILABLE_WARNING = '[Userflow] Optional peer @react-native-community/netinfo is not installed or not linked; ' + 'skipping instant network-aware reconnect. Connection recovery still works ' + 'via the adaptive heartbeat and foreground liveness probe.';
|
|
29
|
+
function warnNetInfoUnavailable() {
|
|
30
|
+
if (!__DEV__) return;
|
|
31
|
+
// eslint-disable-next-line no-console -- intentional missing-optional-peer diagnostic
|
|
32
|
+
console.warn(NETINFO_UNAVAILABLE_WARNING);
|
|
33
|
+
}
|
|
26
34
|
function defaultSubscribe(handler) {
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
35
|
+
// Check the native module before require. NetInfo throws while its module
|
|
36
|
+
// loads when RNCNetInfo is missing, and Metro reports that as fatal before
|
|
37
|
+
// this try/catch can see it.
|
|
38
|
+
if (!(0, _nativeModules.isNativeModuleLinked)(NETINFO_MODULE)) {
|
|
39
|
+
warnNetInfoUnavailable();
|
|
40
|
+
return () => {};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Lazy require so the SDK works without the optional peer. When installed
|
|
44
|
+
// and linked, NetInfo makes offline→online reconnect fast; when absent the
|
|
45
|
+
// transport's adaptive heartbeat + foreground probe still recover.
|
|
30
46
|
try {
|
|
31
47
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- optional peer at import time
|
|
32
48
|
const NetInfo = require('@react-native-community/netinfo');
|
|
@@ -37,10 +53,7 @@ function defaultSubscribe(handler) {
|
|
|
37
53
|
});
|
|
38
54
|
});
|
|
39
55
|
} catch {
|
|
40
|
-
|
|
41
|
-
// eslint-disable-next-line no-console -- intentional missing-optional-peer diagnostic
|
|
42
|
-
console.warn('[Userflow] Optional peer @react-native-community/netinfo is not installed; ' + 'skipping instant network-aware reconnect. Connection recovery still works ' + 'via the adaptive heartbeat and foreground liveness probe.');
|
|
43
|
-
}
|
|
56
|
+
warnNetInfoUnavailable();
|
|
44
57
|
return () => {};
|
|
45
58
|
}
|
|
46
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isOnline","status","isConnected","isInternetReachable","
|
|
1
|
+
{"version":3,"names":["_nativeModules","require","isOnline","status","isConnected","isInternetReachable","NETINFO_MODULE","NETINFO_UNAVAILABLE_WARNING","warnNetInfoUnavailable","__DEV__","console","warn","defaultSubscribe","handler","isNativeModuleLinked","NetInfo","addEventListener","state","NetworkController","unsubscribe","started","wasOnline","constructor","deps","ensureAlive","subscribe","start","handleStatus","stop","online","previous","exports"],"sourceRoot":"../../src","sources":["network.ts"],"mappings":";;;;;;AAgBA,IAAAA,cAAA,GAAAC,OAAA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA,SAASC,QAAQA,CAACC,MAAqB,EAAW;EAChD,OAAOA,MAAM,CAACC,WAAW,KAAK,IAAI,IAAID,MAAM,CAACE,mBAAmB,KAAK,KAAK;AAC5E;AAEA,MAAMC,cAAc,GAAG,YAAY;AAEnC,MAAMC,2BAA2B,GAC/B,2FAA2F,GAC3F,4EAA4E,GAC5E,2DAA2D;AAE7D,SAASC,sBAAsBA,CAAA,EAAS;EACtC,IAAI,CAACC,OAAO,EAAE;EACd;EACAC,OAAO,CAACC,IAAI,CAACJ,2BAA2B,CAAC;AAC3C;AAEA,SAASK,gBAAgBA,CAACC,OAAwC,EAAc;EAC9E;EACA;EACA;EACA,IAAI,CAAC,IAAAC,mCAAoB,EAACR,cAAc,CAAC,EAAE;IACzCE,sBAAsB,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,CAAC;EACjB;;EAEA;EACA;EACA;EACA,IAAI;IACF;IACA,MAAMO,OAAO,GAAGd,OAAO,CAAC,iCAAiC,CAOxD;IACD,OAAOc,OAAO,CAACC,gBAAgB,CAAEC,KAAK,IAAK;MACzCJ,OAAO,CAAC;QACNT,WAAW,EAAEa,KAAK,CAACb,WAAW;QAC9BC,mBAAmB,EAAEY,KAAK,CAACZ;MAC7B,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC,MAAM;IACNG,sBAAsB,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,CAAC;EACjB;AACF;;AAEA;AACA;AACA;AACA;AACO,MAAMU,iBAAiB,CAAC;EAIrBC,WAAW,GAAwB,IAAI;EACvCC,OAAO,GAAG,KAAK;EACfC,SAAS,GAAmB,IAAI;EAExCC,WAAWA,CAACC,IAA2B,EAAE;IACvC,IAAI,CAACC,WAAW,GAAGD,IAAI,CAACC,WAAW;IACnC,IAAI,CAACC,SAAS,GAAGF,IAAI,CAACE,SAAS,IAAIb,gBAAgB;EACrD;EAEAc,KAAKA,CAAA,EAAS;IACZ,IAAI,IAAI,CAACN,OAAO,EAAE;IAClB,IAAI,CAACA,OAAO,GAAG,IAAI;IACnB,IAAI,CAACD,WAAW,GAAG,IAAI,CAACM,SAAS,CAAEtB,MAAM,IAAK;MAC5C,IAAI,CAACwB,YAAY,CAACxB,MAAM,CAAC;IAC3B,CAAC,CAAC;EACJ;EAEAyB,IAAIA,CAAA,EAAS;IACX,IAAI,CAAC,IAAI,CAACR,OAAO,EAAE;IACnB,IAAI,CAACA,OAAO,GAAG,KAAK;IACpB,IAAI,CAACD,WAAW,GAAG,CAAC;IACpB,IAAI,CAACA,WAAW,GAAG,IAAI;IACvB,IAAI,CAACE,SAAS,GAAG,IAAI;EACvB;;EAEA;EACAM,YAAYA,CAACxB,MAAqB,EAAQ;IACxC,IAAI,CAAC,IAAI,CAACiB,OAAO,EAAE;IAEnB,MAAMS,MAAM,GAAG3B,QAAQ,CAACC,MAAM,CAAC;IAC/B,MAAM2B,QAAQ,GAAG,IAAI,CAACT,SAAS;IAC/B,IAAI,CAACA,SAAS,GAAGQ,MAAM;;IAEvB;IACA,IAAIC,QAAQ,KAAK,IAAI,EAAE;IACvB,IAAI,CAACA,QAAQ,IAAID,MAAM,EAAE;MACvB,IAAI,CAACL,WAAW,CAAC,CAAC;IACpB;EACF;AACF;AAACO,OAAA,CAAAb,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ exports.PAIRING_TOKEN_STORAGE_KEY = exports.PAIRING_PURPOSE_STORAGE_KEY = void 0
|
|
|
7
7
|
exports.createMemoryPairingTokenStore = createMemoryPairingTokenStore;
|
|
8
8
|
exports.createPairingTokenStore = createPairingTokenStore;
|
|
9
9
|
exports.resetPairingTokenStoreCacheForTests = resetPairingTokenStoreCacheForTests;
|
|
10
|
+
var _nativeModules = require("../nativeModules.js");
|
|
10
11
|
var _deepLink = require("./deepLink.js");
|
|
11
12
|
/**
|
|
12
13
|
* Persist the pairing JWT so a relaunch can resume Builder pairing until the
|
|
@@ -18,28 +19,40 @@ var _deepLink = require("./deepLink.js");
|
|
|
18
19
|
const PAIRING_TOKEN_STORAGE_KEY = exports.PAIRING_TOKEN_STORAGE_KEY = 'userflow.pairingToken';
|
|
19
20
|
const PAIRING_PURPOSE_STORAGE_KEY = exports.PAIRING_PURPOSE_STORAGE_KEY = 'userflow.pairingPurpose';
|
|
20
21
|
let cachedSecureStore;
|
|
22
|
+
const SECURE_STORE_MODULE = 'ExpoSecureStore';
|
|
23
|
+
const SECURE_STORE_UNAVAILABLE_WARNING = '[Userflow] Optional peer expo-secure-store is unavailable; ' + 'pairing JWT persistence falls back to in-memory storage.';
|
|
21
24
|
|
|
22
25
|
/** Expo modules must be installed natively — not just the JS package. */
|
|
23
26
|
function isExpoModulesRuntimeAvailable() {
|
|
24
27
|
const expo = globalThis.expo;
|
|
25
28
|
return typeof expo?.EventEmitter === 'function';
|
|
26
29
|
}
|
|
30
|
+
function warnSecureStoreUnavailable() {
|
|
31
|
+
if (!__DEV__) return;
|
|
32
|
+
// eslint-disable-next-line no-console -- intentional missing-optional-peer diagnostic
|
|
33
|
+
console.warn(SECURE_STORE_UNAVAILABLE_WARNING);
|
|
34
|
+
}
|
|
27
35
|
function tryLoadExpoSecureStore() {
|
|
28
36
|
if (cachedSecureStore !== undefined) return cachedSecureStore;
|
|
29
37
|
if (typeof require !== 'function' || !isExpoModulesRuntimeAvailable()) {
|
|
30
38
|
cachedSecureStore = null;
|
|
31
39
|
return cachedSecureStore;
|
|
32
40
|
}
|
|
41
|
+
|
|
42
|
+
// expo-secure-store calls requireNativeModule at import and throws when the
|
|
43
|
+
// native module is missing. Metro reports that as fatal before try/catch.
|
|
44
|
+
if (!(0, _nativeModules.isNativeModuleLinked)(SECURE_STORE_MODULE)) {
|
|
45
|
+
cachedSecureStore = null;
|
|
46
|
+
warnSecureStoreUnavailable();
|
|
47
|
+
return cachedSecureStore;
|
|
48
|
+
}
|
|
33
49
|
try {
|
|
34
50
|
// Optional peer — absent in bare RN without expo-secure-store.
|
|
35
51
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- optional peer at import time
|
|
36
52
|
cachedSecureStore = require('expo-secure-store');
|
|
37
53
|
} catch {
|
|
38
54
|
cachedSecureStore = null;
|
|
39
|
-
|
|
40
|
-
// eslint-disable-next-line no-console -- intentional missing-optional-peer diagnostic
|
|
41
|
-
console.warn('[Userflow] Optional peer expo-secure-store is unavailable; ' + 'pairing JWT persistence falls back to in-memory storage.');
|
|
42
|
-
}
|
|
55
|
+
warnSecureStoreUnavailable();
|
|
43
56
|
}
|
|
44
57
|
return cachedSecureStore;
|
|
45
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_nativeModules","require","_deepLink","PAIRING_TOKEN_STORAGE_KEY","exports","PAIRING_PURPOSE_STORAGE_KEY","cachedSecureStore","SECURE_STORE_MODULE","SECURE_STORE_UNAVAILABLE_WARNING","isExpoModulesRuntimeAvailable","expo","globalThis","EventEmitter","warnSecureStoreUnavailable","__DEV__","console","warn","tryLoadExpoSecureStore","undefined","isNativeModuleLinked","createMemoryPairingTokenStore","value","purposeValue","get","set","token","clear","getPurpose","setPurpose","purpose","createPairingTokenStore","secure","getItemAsync","setItemAsync","error","Error","message","String","deleteItemAsync","parsePairingPurpose","resetPairingTokenStoreCacheForTests"],"sourceRoot":"../../../src","sources":["pairing/tokenStorage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,7 +50,9 @@ function BannerSurface({
|
|
|
50
50
|
if (!webView) {
|
|
51
51
|
if (!warnedMissingWebView) {
|
|
52
52
|
warnedMissingWebView = true;
|
|
53
|
-
|
|
53
|
+
if (__DEV__) {
|
|
54
|
+
console.warn('Userflow: WebView banner requires react-native-webview in the native binary. ' + 'Add it to your app (e.g. npx expo install react-native-webview), run pod install under ios/, ' + 'then rebuild with expo run:ios (not Expo Go). Falling back to the native banner bar.');
|
|
55
|
+
}
|
|
54
56
|
}
|
|
55
57
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BannerBar.BannerBar, {
|
|
56
58
|
session: session,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_evalJsController","_getWebView","_BannerBar","_BannerWebViewBar","_bannerAutoRunSession","_bannerNeedsWebView","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","warnedMissingWebView","BannerSurface","session","onActions","onDismiss","banner","version","theme","needsWebView","bannerNeedsWebView","webView","getEvalJsWebView","useLayoutEffect","evalJsController","setBannerOwnsWebView","id","dismissWebViewBanner","useCallback","endReason","clearBannerAutoRunEvalSession","reset","console","warn","jsx","BannerBar","BannerWebViewBar","resetBannerSurfaceWarningsForTests"],"sourceRoot":"../../../src","sources":["surfaces/BannerSurface.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_evalJsController","_getWebView","_BannerBar","_BannerWebViewBar","_bannerAutoRunSession","_bannerNeedsWebView","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","warnedMissingWebView","BannerSurface","session","onActions","onDismiss","banner","version","theme","needsWebView","bannerNeedsWebView","webView","getEvalJsWebView","useLayoutEffect","evalJsController","setBannerOwnsWebView","id","dismissWebViewBanner","useCallback","endReason","clearBannerAutoRunEvalSession","reset","__DEV__","console","warn","jsx","BannerBar","BannerWebViewBar","resetBannerSurfaceWarningsForTests"],"sourceRoot":"../../../src","sources":["surfaces/BannerSurface.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.MISSING_SAFE_AREA_PROVIDER_WARNING = void 0;
|
|
7
7
|
exports.getSafeAreaInsetsContext = getSafeAreaInsetsContext;
|
|
8
|
+
exports.isSafeAreaContextInstalled = isSafeAreaContextInstalled;
|
|
8
9
|
exports.resetSafeAreaInsetsCacheForTests = resetSafeAreaInsetsCacheForTests;
|
|
9
10
|
exports.useParentSafeAreaInsets = useParentSafeAreaInsets;
|
|
10
11
|
exports.useUserflowSafeAreaInsets = useUserflowSafeAreaInsets;
|
|
@@ -41,6 +42,11 @@ function loadSafeAreaModule() {
|
|
|
41
42
|
}
|
|
42
43
|
return cachedModule;
|
|
43
44
|
}
|
|
45
|
+
|
|
46
|
+
/** True when the optional peer's JavaScript package can be loaded. */
|
|
47
|
+
function isSafeAreaContextInstalled() {
|
|
48
|
+
return loadSafeAreaModule() != null;
|
|
49
|
+
}
|
|
44
50
|
function copyInsets(insets) {
|
|
45
51
|
if (!insets) return null;
|
|
46
52
|
const top = insets.top;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","e","__esModule","default","ZERO_INSETS","top","right","bottom","left","FallbackInsetsContext","React","createContext","MISSING_SAFE_AREA_PROVIDER_WARNING","exports","cachedModule","warnedMissingProvider","loadSafeAreaModule","undefined","mod","SafeAreaInsetsContext","copyInsets","insets","readInitialInsets","initialWindowMetrics","warnMissingProvider","__DEV__","console","warn","insetsContext","useParentSafeAreaInsets","useContext","useUserflowSafeAreaInsets","fromProvider","getSafeAreaInsetsContext","resetSafeAreaInsetsCacheForTests"],"sourceRoot":"../../../src","sources":["surfaces/safeArea.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","e","__esModule","default","ZERO_INSETS","top","right","bottom","left","FallbackInsetsContext","React","createContext","MISSING_SAFE_AREA_PROVIDER_WARNING","exports","cachedModule","warnedMissingProvider","loadSafeAreaModule","undefined","mod","SafeAreaInsetsContext","isSafeAreaContextInstalled","copyInsets","insets","readInitialInsets","initialWindowMetrics","warnMissingProvider","__DEV__","console","warn","insetsContext","useParentSafeAreaInsets","useContext","useUserflowSafeAreaInsets","fromProvider","getSafeAreaInsetsContext","resetSafeAreaInsetsCacheForTests"],"sourceRoot":"../../../src","sources":["surfaces/safeArea.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/version.js
CHANGED
|
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.SDK_VERSION = void 0;
|
|
7
7
|
/** Generated by scripts/write-version.mjs — do not edit. */
|
|
8
|
-
const SDK_VERSION = exports.SDK_VERSION = '0.
|
|
8
|
+
const SDK_VERSION = exports.SDK_VERSION = '0.4.0';
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { Dimensions } from 'react-native';
|
|
4
|
+
import { isNativeModuleLinked } from "../nativeModules.js";
|
|
4
5
|
const MAX_CAPTURE_WIDTH = 480;
|
|
6
|
+
const VIEW_SHOT_MODULE = 'RNViewShot';
|
|
5
7
|
const MISSING_VIEW_SHOT_WARNING = '[Userflow] Required peer react-native-view-shot is not installed; ' + 'skipping picker screenshot. Install react-native-view-shot (>=5.0.0) and rebuild native.';
|
|
6
8
|
let didWarnMissingViewShot = false;
|
|
7
9
|
function warnMissingViewShot() {
|
|
@@ -13,8 +15,14 @@ function warnMissingViewShot() {
|
|
|
13
15
|
}
|
|
14
16
|
}
|
|
15
17
|
function loadViewShot() {
|
|
18
|
+
// view-shot 4 calls TurboModuleRegistry.getEnforcing at import. Metro reports
|
|
19
|
+
// that throw as fatal before this try/catch can see it.
|
|
20
|
+
if (!isNativeModuleLinked(VIEW_SHOT_MODULE)) {
|
|
21
|
+
warnMissingViewShot();
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
16
24
|
try {
|
|
17
|
-
// Required peer; degrade if
|
|
25
|
+
// Required peer; degrade if the JS package is missing.
|
|
18
26
|
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
|
|
19
27
|
return require('react-native-view-shot');
|
|
20
28
|
} catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dimensions","MAX_CAPTURE_WIDTH","MISSING_VIEW_SHOT_WARNING","didWarnMissingViewShot","warnMissingViewShot","__DEV__","console","warn","loadViewShot","require","capturePickerScreenshot","rect","viewShot","captureScreen","window","get","winW","width","winH","height","captureWidth","Math","min","round","captureHeight","max","dataUrl","format","quality","result","length","sx","sy","targetX1","x","targetY1","y","targetX2","targetY2","resetViewShotWarningForTests"],"sourceRoot":"../../../src","sources":["authoring/capturePickerScreenshot.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["Dimensions","isNativeModuleLinked","MAX_CAPTURE_WIDTH","VIEW_SHOT_MODULE","MISSING_VIEW_SHOT_WARNING","didWarnMissingViewShot","warnMissingViewShot","__DEV__","console","warn","loadViewShot","require","capturePickerScreenshot","rect","viewShot","captureScreen","window","get","winW","width","winH","height","captureWidth","Math","min","round","captureHeight","max","dataUrl","format","quality","result","length","sx","sy","targetX1","x","targetY1","y","targetX2","targetY2","resetViewShotWarningForTests"],"sourceRoot":"../../../src","sources":["authoring/capturePickerScreenshot.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,SAASC,oBAAoB,QAAQ,qBAAkB;AAKvD,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,gBAAgB,GAAG,YAAY;AAErC,MAAMC,yBAAyB,GAC7B,oEAAoE,GACpE,0FAA0F;AAY5F,IAAIC,sBAAsB,GAAG,KAAK;AAElC,SAASC,mBAAmBA,CAAA,EAAS;EACnC,IAAID,sBAAsB,EAAE;EAC5BA,sBAAsB,GAAG,IAAI;EAC7B,IAAIE,OAAO,EAAE;IACX;IACAC,OAAO,CAACC,IAAI,CAACL,yBAAyB,CAAC;EACzC;AACF;AAEA,SAASM,YAAYA,CAAA,EAA0B;EAC7C;EACA;EACA,IAAI,CAACT,oBAAoB,CAACE,gBAAgB,CAAC,EAAE;IAC3CG,mBAAmB,CAAC,CAAC;IACrB,OAAO,IAAI;EACb;EACA,IAAI;IACF;IACA;IACA,OAAOK,OAAO,CAAC,wBAAwB,CAAC;EAC1C,CAAC,CAAC,MAAM;IACNL,mBAAmB,CAAC,CAAC;IACrB,OAAO,IAAI;EACb;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeM,uBAAuBA,CAC3CC,IAAa,EAC4B;EACzC,MAAMC,QAAQ,GAAGJ,YAAY,CAAC,CAAC;EAC/B,IAAI,CAACI,QAAQ,EAAEC,aAAa,EAAE,OAAO,IAAI;EAEzC,IAAI;IACF,MAAMC,MAAM,GAAGhB,UAAU,CAACiB,GAAG,CAAC,QAAQ,CAAC;IACvC,MAAMC,IAAI,GAAGF,MAAM,CAACG,KAAK,IAAI,CAAC;IAC9B,MAAMC,IAAI,GAAGJ,MAAM,CAACK,MAAM,IAAI,CAAC;IAC/B,MAAMC,YAAY,GAAGC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,KAAK,CAACP,IAAI,CAAC,EAAEhB,iBAAiB,CAAC;IAClE,MAAMwB,aAAa,GAAGH,IAAI,CAACI,GAAG,CAAC,CAAC,EAAEJ,IAAI,CAACE,KAAK,CAACL,IAAI,IAAIE,YAAY,GAAGJ,IAAI,CAAC,CAAC,CAAC;IAE3E,MAAMU,OAAO,GAAG,MAAMd,QAAQ,CAACC,aAAa,CAAC;MAC3Cc,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,IAAI;MACbC,MAAM,EAAE,UAAU;MAClBZ,KAAK,EAAEG,YAAY;MACnBD,MAAM,EAAEK;IACV,CAAC,CAAC;IACF,IAAI,OAAOE,OAAO,KAAK,QAAQ,IAAIA,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;IAEpE,MAAMC,EAAE,GAAGX,YAAY,GAAGJ,IAAI;IAC9B,MAAMgB,EAAE,GAAGR,aAAa,GAAGN,IAAI;IAC/B,OAAO;MACLQ,OAAO;MACPT,KAAK,EAAEG,YAAY;MACnBD,MAAM,EAAEK,aAAa;MACrBS,QAAQ,EAAEZ,IAAI,CAACE,KAAK,CAACZ,IAAI,CAACuB,CAAC,GAAGH,EAAE,CAAC;MACjCI,QAAQ,EAAEd,IAAI,CAACE,KAAK,CAACZ,IAAI,CAACyB,CAAC,GAAGJ,EAAE,CAAC;MACjCK,QAAQ,EAAEhB,IAAI,CAACE,KAAK,CAAC,CAACZ,IAAI,CAACuB,CAAC,GAAGvB,IAAI,CAACM,KAAK,IAAIc,EAAE,CAAC;MAChDO,QAAQ,EAAEjB,IAAI,CAACE,KAAK,CAAC,CAACZ,IAAI,CAACyB,CAAC,GAAGzB,IAAI,CAACQ,MAAM,IAAIa,EAAE;IAClD,CAAC;EACH,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;;AAEA;AACA,OAAO,SAASO,4BAA4BA,CAAA,EAAS;EACnDpC,sBAAsB,GAAG,KAAK;AAChC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { isNativeModuleLinked } from "../nativeModules.js";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Minimal surface of `react-native-webview` this spike uses.
|
|
@@ -13,20 +13,11 @@ let warnedMissing = false;
|
|
|
13
13
|
/**
|
|
14
14
|
* True when the native `react-native-webview` binary is linked. Do not
|
|
15
15
|
* `require('react-native-webview')` before this passes — the JS entry calls
|
|
16
|
-
* `TurboModuleRegistry.getEnforcing('RNCWebViewModule')` and
|
|
16
|
+
* `TurboModuleRegistry.getEnforcing('RNCWebViewModule')` and Metro reports that
|
|
17
|
+
* throw as fatal before try/catch.
|
|
17
18
|
*/
|
|
18
19
|
export function isEvalJsWebViewNativeLinked() {
|
|
19
|
-
|
|
20
|
-
if (typeof TurboModuleRegistry?.get === 'function') {
|
|
21
|
-
if (TurboModuleRegistry.get('RNCWebViewModule') != null) {
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const legacy = NativeModules.RNCWebViewModule;
|
|
26
|
-
return legacy != null;
|
|
27
|
-
} catch {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
20
|
+
return isNativeModuleLinked('RNCWebViewModule');
|
|
30
21
|
}
|
|
31
22
|
|
|
32
23
|
/**
|
|
@@ -61,6 +52,7 @@ export function getEvalJsWebView() {
|
|
|
61
52
|
function warnMissing(reason) {
|
|
62
53
|
if (warnedMissing) return;
|
|
63
54
|
warnedMissing = true;
|
|
55
|
+
if (!__DEV__) return;
|
|
64
56
|
if (reason === 'native') {
|
|
65
57
|
console.warn('Userflow: react-native-webview is listed in package.json but RNCWebViewModule is not in ' + 'this native build. Run npx expo install react-native-webview (or npm install), then ' + 'rebuild the dev client (expo prebuild + run:ios / run:android — not Expo Go). ' + 'Evaluate JavaScript and WebView banners will not run until then.');
|
|
66
58
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isNativeModuleLinked","cached","warnedMissing","isEvalJsWebViewNativeLinked","getEvalJsWebView","undefined","require","warnMissing","mod","component","WebView","default","reason","__DEV__","console","warn","resetEvalJsWebViewCacheForTests"],"sourceRoot":"../../../src","sources":["evalJs/getWebView.ts"],"mappings":";;AAEA,SAASA,oBAAoB,QAAQ,qBAAkB;;AAEvD;AACA;AACA;AACA;;AAmCA,IAAIC,MAAiD;AACrD,IAAIC,aAAa,GAAG,KAAK;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,2BAA2BA,CAAA,EAAY;EACrD,OAAOH,oBAAoB,CAAC,kBAAkB,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASI,gBAAgBA,CAAA,EAAkC;EAChE,IAAIH,MAAM,KAAKI,SAAS,EAAE,OAAOJ,MAAM;EAEvC,IAAI,OAAOK,OAAO,KAAK,UAAU,EAAE;IACjCL,MAAM,GAAG,IAAI;IACbM,WAAW,CAAC,aAAa,CAAC;IAC1B,OAAON,MAAM;EACf;EAEA,IAAI,CAACE,2BAA2B,CAAC,CAAC,EAAE;IAClCF,MAAM,GAAG,IAAI;IACbM,WAAW,CAAC,QAAQ,CAAC;IACrB,OAAON,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMO,GAAG,GAAGF,OAAO,CAAC,sBAAsB,CAGzC;IACD,MAAMG,SAAS,GAAGD,GAAG,EAAEE,OAAO,IAAIF,GAAG,EAAEG,OAAO;IAC9CV,MAAM,GAAGQ,SAAS,IAAI,IAAI,GAAGA,SAAS,GAAG,IAAI;EAC/C,CAAC,CAAC,MAAM;IACNR,MAAM,GAAG,IAAI;EACf;EAEA,IAAIA,MAAM,IAAI,IAAI,EAAE;IAClBM,WAAW,CAAC,IAAI,CAAC;EACnB;EACA,OAAON,MAAM;AACf;AAEA,SAASM,WAAWA,CAACK,MAAuC,EAAQ;EAClE,IAAIV,aAAa,EAAE;EACnBA,aAAa,GAAG,IAAI;EACpB,IAAI,CAACW,OAAO,EAAE;EACd,IAAID,MAAM,KAAK,QAAQ,EAAE;IACvBE,OAAO,CAACC,IAAI,CACV,0FAA0F,GACxF,sFAAsF,GACtF,gFAAgF,GAChF,kEACJ,CAAC;IACD;EACF;EACAD,OAAO,CAACC,IAAI,CACV,sFAAsF,GACpF,oFAAoF,GACpF,yBACJ,CAAC;AACH;;AAEA;AACA,OAAO,SAASC,+BAA+BA,CAAA,EAAS;EACtDf,MAAM,GAAGI,SAAS;EAClBH,aAAa,GAAG,KAAK;AACvB","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Read the host app's native marketing version (store version), not the
|
|
5
5
|
* SDK package version. React Native does not expose the store version on
|
|
6
6
|
* `Platform`; Expo hosts may use optional expo modules; bare RN reads
|
|
7
|
-
* `NativeModules.RNDeviceInfo` constants from the
|
|
7
|
+
* `NativeModules.RNDeviceInfo` constants from the device-info native
|
|
8
8
|
* module (after autolink + rebuild). The OS name is `Platform.OS`.
|
|
9
9
|
*
|
|
10
10
|
* Do not `require('react-native-device-info')` — that package throws at import
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* even inside try/catch.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
import { isNativeModuleLinked } from "./nativeModules.js";
|
|
15
16
|
function nonEmptyString(value) {
|
|
16
17
|
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
17
18
|
}
|
|
@@ -28,6 +29,10 @@ function unwrapModule(mod) {
|
|
|
28
29
|
return record;
|
|
29
30
|
}
|
|
30
31
|
function tryRequireExpoApplication() {
|
|
32
|
+
// expo-application calls requireNativeModule('ExpoApplication') at import.
|
|
33
|
+
// Skip the require when that module is not registered so a missing binary
|
|
34
|
+
// cannot surface as a fatal error.
|
|
35
|
+
if (!isNativeModuleLinked('ExpoApplication')) return undefined;
|
|
31
36
|
try {
|
|
32
37
|
// Optional on bare RN — Metro requires a string literal.
|
|
33
38
|
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|