@truewatchtech/react-native-session-replay 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FTSessionReplayReactNative.podspec +50 -0
- package/README.md +33 -0
- package/android/build.gradle +228 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradle.properties +4 -0
- package/android/gradlew +185 -0
- package/android/gradlew.bat +89 -0
- package/android/settings.gradle +1 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/AndroidManifestNew.xml +3 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/FTSessionReplayImpl.java +119 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/NoopTextPropertiesResolver.java +23 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/ReactNativeSessionReplayExtensionSupport.java +57 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/ShadowNodeWrapper.java +84 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/TextPropertiesResolver.java +20 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/extensions/ReactDrawablesExt.java +155 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/DefaultMapper.java +78 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/Pair.java +11 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactEditTextMapper.java +136 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactNativeImageViewMapper.java +117 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactTextMapper.java +57 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactViewGroupMapper.java +22 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/mappers/ReactViewModalMapper.java +21 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/resources/ReactDrawableCopier.java +35 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/ColorUtils.java +24 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/DrawableUtils.java +34 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactNativeUtils.java +18 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/ReflectionUtils.java +43 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/FabricTextViewUtils.java +69 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/LegacyTextViewUtils.java +97 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/utils/text/TextViewUtils.java +184 -0
- package/android/src/main/java/com/ft/sdk/reactnative/sessionreplay/views/FTPrivacyView.java +113 -0
- package/android/src/newarch/java/com/ft/sdk/reactnative/sessionreplay/FTSessionReplayModule.java +20 -0
- package/android/src/newarch/java/com/ft/sdk/reactnative/sessionreplay/views/FTPrivacyViewManager.java +87 -0
- package/android/src/oldarch/java/com/ft/sdk/reactnative/sessionreplay/FTSessionReplayModule.java +25 -0
- package/android/src/oldarch/java/com/ft/sdk/reactnative/sessionreplay/views/FTPrivacyViewManager.java +70 -0
- package/android/src/rn69/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +100 -0
- package/android/src/rn75/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +27 -0
- package/android/src/rn75/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +116 -0
- package/android/src/rn76/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +38 -0
- package/android/src/rn76/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +117 -0
- package/android/src/rn79/java/com/ft/sdk/reactnative/sessionreplay/extensions/LengthPercentageExt.java +38 -0
- package/android/src/rn79/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +132 -0
- package/android/src/rn80/java/com/ft/sdk/reactnative/sessionreplay/extensions/ComputedBorderRadiusExt.java +58 -0
- package/android/src/rn80/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +190 -0
- package/android/src/rnlegacy/java/com/ft/sdk/reactnative/sessionreplay/utils/ReactViewBackgroundDrawableUtils.java +120 -0
- package/android/src/rnpost74/java/com/ft/sdk/reactnative/sessionreplay/FTSessionReplayPackage.java +58 -0
- package/android/src/rnpre74/java/com/ft/sdk/reactnative/sessionreplay/FTSessionReplayPackage.java +30 -0
- package/ios/FTPrivacyViewFabric.h +22 -0
- package/ios/FTPrivacyViewFabric.mm +84 -0
- package/ios/FTPrivacyViewPaper.h +17 -0
- package/ios/FTPrivacyViewPaper.mm +85 -0
- package/ios/FTRCTFabricWrapper.h +13 -0
- package/ios/FTRCTFabricWrapper.mm +113 -0
- package/ios/FTRCTTextPropertiesWrapper.h +24 -0
- package/ios/FTRCTTextPropertiesWrapper.mm +28 -0
- package/ios/FTRCTTextViewRecorder.h +33 -0
- package/ios/FTRCTTextViewRecorder.m +172 -0
- package/ios/FTReactNativeSessionReplay.h +13 -0
- package/ios/FTReactNativeSessionReplay.mm +85 -0
- package/ios/FTSessionReplayReactNative.xcodeproj/project.pbxproj +304 -0
- package/lib/commonjs/components/SessionReplayView/HideView.js +19 -0
- package/lib/commonjs/components/SessionReplayView/HideView.js.map +1 -0
- package/lib/commonjs/components/SessionReplayView/MaskAllView.js +25 -0
- package/lib/commonjs/components/SessionReplayView/MaskAllView.js.map +1 -0
- package/lib/commonjs/components/SessionReplayView/MaskNoneView.js +23 -0
- package/lib/commonjs/components/SessionReplayView/MaskNoneView.js.map +1 -0
- package/lib/commonjs/components/SessionReplayView/PrivacyView.js +28 -0
- package/lib/commonjs/components/SessionReplayView/PrivacyView.js.map +1 -0
- package/lib/commonjs/components/SessionReplayView/index.js +29 -0
- package/lib/commonjs/components/SessionReplayView/index.js.map +1 -0
- package/lib/commonjs/ft_session_replay.js +69 -0
- package/lib/commonjs/ft_session_replay.js.map +1 -0
- package/lib/commonjs/index.js +50 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/specs/FTPrivacyViewNative.js +29 -0
- package/lib/commonjs/specs/FTPrivacyViewNative.js.map +1 -0
- package/lib/commonjs/specs/FTPrivacyViewNativeComponent.js +10 -0
- package/lib/commonjs/specs/FTPrivacyViewNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/NativeFTReactNativeSessionReplay.js +10 -0
- package/lib/commonjs/specs/NativeFTReactNativeSessionReplay.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/components/SessionReplayView/HideView.js +12 -0
- package/lib/module/components/SessionReplayView/HideView.js.map +1 -0
- package/lib/module/components/SessionReplayView/MaskAllView.js +18 -0
- package/lib/module/components/SessionReplayView/MaskAllView.js.map +1 -0
- package/lib/module/components/SessionReplayView/MaskNoneView.js +16 -0
- package/lib/module/components/SessionReplayView/MaskNoneView.js.map +1 -0
- package/lib/module/components/SessionReplayView/PrivacyView.js +21 -0
- package/lib/module/components/SessionReplayView/PrivacyView.js.map +1 -0
- package/lib/module/components/SessionReplayView/index.js +23 -0
- package/lib/module/components/SessionReplayView/index.js.map +1 -0
- package/lib/module/ft_session_replay.js +67 -0
- package/lib/module/ft_session_replay.js.map +1 -0
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/specs/FTPrivacyViewNative.js +24 -0
- package/lib/module/specs/FTPrivacyViewNative.js.map +1 -0
- package/lib/module/specs/FTPrivacyViewNativeComponent.js +3 -0
- package/lib/module/specs/FTPrivacyViewNativeComponent.js.map +1 -0
- package/lib/module/specs/NativeFTReactNativeSessionReplay.js +5 -0
- package/lib/module/specs/NativeFTReactNativeSessionReplay.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/components/SessionReplayView/HideView.d.ts +7 -0
- package/lib/typescript/components/SessionReplayView/MaskAllView.d.ts +8 -0
- package/lib/typescript/components/SessionReplayView/MaskNoneView.d.ts +7 -0
- package/lib/typescript/components/SessionReplayView/PrivacyView.d.ts +12 -0
- package/lib/typescript/components/SessionReplayView/index.d.ts +22 -0
- package/lib/typescript/ft_session_replay.d.ts +61 -0
- package/lib/typescript/index.d.ts +3 -0
- package/lib/typescript/specs/FTPrivacyViewNative.d.ts +2 -0
- package/lib/typescript/specs/FTPrivacyViewNativeComponent.d.ts +10 -0
- package/lib/typescript/specs/NativeFTReactNativeSessionReplay.d.ts +11 -0
- package/lib/typescript/types.d.ts +8 -0
- package/package.json +97 -0
- package/scripts/set-ios-rn-version.js +47 -0
- package/src/components/SessionReplayView/HideView.tsx +15 -0
- package/src/components/SessionReplayView/MaskAllView.tsx +35 -0
- package/src/components/SessionReplayView/MaskNoneView.tsx +26 -0
- package/src/components/SessionReplayView/PrivacyView.tsx +40 -0
- package/src/components/SessionReplayView/index.ts +26 -0
- package/src/ft_session_replay.tsx +78 -0
- package/src/index.tsx +19 -0
- package/src/specs/FTPrivacyViewNative.ts +32 -0
- package/src/specs/FTPrivacyViewNativeComponent.ts +14 -0
- package/src/specs/NativeFTReactNativeSessionReplay.ts +13 -0
- package/src/types.ts +9 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PrivacyView = PrivacyView;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _FTPrivacyViewNative = _interopRequireDefault(require("../../specs/FTPrivacyViewNative"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
|
+
function PrivacyView({
|
|
12
|
+
children,
|
|
13
|
+
textAndInputPrivacy,
|
|
14
|
+
imagePrivacy,
|
|
15
|
+
touchPrivacy,
|
|
16
|
+
nativeID,
|
|
17
|
+
hide,
|
|
18
|
+
...props
|
|
19
|
+
}) {
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_FTPrivacyViewNative.default, _extends({}, props, {
|
|
21
|
+
textAndInputPrivacy: textAndInputPrivacy,
|
|
22
|
+
imagePrivacy: imagePrivacy,
|
|
23
|
+
touchPrivacy: touchPrivacy,
|
|
24
|
+
hide: hide,
|
|
25
|
+
nativeID: nativeID
|
|
26
|
+
}), children);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=PrivacyView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_FTPrivacyViewNative","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","PrivacyView","children","textAndInputPrivacy","imagePrivacy","touchPrivacy","nativeID","hide","props","createElement"],"sources":["PrivacyView.tsx"],"sourcesContent":["import React from 'react';\nimport FTPrivacyViewNative from '../../specs/FTPrivacyViewNative';\nimport type { ViewProps } from 'react-native';\nimport type {\n ImagePrivacyLevel,\n TextAndInputPrivacyLevel,\n TouchPrivacyLevel,\n} from '../../ft_session_replay';\n\nexport interface PrivacyViewProps extends ViewProps {\n children?: React.ReactNode;\n textAndInputPrivacy?: TextAndInputPrivacyLevel;\n imagePrivacy?: ImagePrivacyLevel;\n touchPrivacy?: TouchPrivacyLevel;\n hide?: boolean;\n nativeID?: string;\n}\n\nexport function PrivacyView({\n children,\n textAndInputPrivacy,\n imagePrivacy,\n touchPrivacy,\n nativeID,\n hide,\n ...props\n}: PrivacyViewProps) {\n return (\n <FTPrivacyViewNative\n {...props}\n textAndInputPrivacy={textAndInputPrivacy}\n imagePrivacy={imagePrivacy}\n touchPrivacy={touchPrivacy}\n hide={hide}\n nativeID={nativeID}\n >\n {children}\n </FTPrivacyViewNative>\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAkE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAiB3D,SAASO,WAAWA,CAAC;EAC1BC,QAAQ;EACRC,mBAAmB;EACnBC,YAAY;EACZC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJ,GAAGC;AACa,CAAC,EAAE;EACnB,oBACE1B,MAAA,CAAAM,OAAA,CAAAqB,aAAA,CAACxB,oBAAA,CAAAG,OAAmB,EAAAC,QAAA,KACdmB,KAAK;IACTL,mBAAmB,EAAEA,mBAAoB;IACzCC,YAAY,EAAEA,YAAa;IAC3BC,YAAY,EAAEA,YAAa;IAC3BE,IAAI,EAAEA,IAAK;IACXD,QAAQ,EAAEA;EAAS,IAElBJ,QACkB,CAAC;AAE1B","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FTSessionReplayView = void 0;
|
|
7
|
+
var _PrivacyView = require("./PrivacyView");
|
|
8
|
+
var _MaskAllView = require("./MaskAllView");
|
|
9
|
+
var _MaskNoneView = require("./MaskNoneView");
|
|
10
|
+
var _HideView = require("./HideView");
|
|
11
|
+
const FTSessionReplayView = exports.FTSessionReplayView = {
|
|
12
|
+
/**
|
|
13
|
+
* Privacy view component - Low-level configurable component for fine-grained privacy control
|
|
14
|
+
*/
|
|
15
|
+
Privacy: _PrivacyView.PrivacyView,
|
|
16
|
+
/**
|
|
17
|
+
* Mask all view component - Masks all text, inputs and images
|
|
18
|
+
*/
|
|
19
|
+
MaskAll: _MaskAllView.MaskAllView,
|
|
20
|
+
/**
|
|
21
|
+
* Mask none view component - Displays most content as-is
|
|
22
|
+
*/
|
|
23
|
+
MaskNone: _MaskNoneView.MaskNoneView,
|
|
24
|
+
/**
|
|
25
|
+
* Hide view component - Completely hides the view and its content
|
|
26
|
+
*/
|
|
27
|
+
Hide: _HideView.HideView
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_PrivacyView","require","_MaskAllView","_MaskNoneView","_HideView","FTSessionReplayView","exports","Privacy","PrivacyView","MaskAll","MaskAllView","MaskNone","MaskNoneView","Hide","HideView"],"sources":["index.ts"],"sourcesContent":["import { PrivacyView } from './PrivacyView';\nimport { MaskAllView } from './MaskAllView';\nimport { MaskNoneView } from './MaskNoneView';\nimport { HideView } from './HideView';\n\nexport const FTSessionReplayView = {\n /**\n * Privacy view component - Low-level configurable component for fine-grained privacy control\n */\n Privacy: PrivacyView,\n\n /**\n * Mask all view component - Masks all text, inputs and images\n */\n MaskAll: MaskAllView,\n\n /**\n * Mask none view component - Displays most content as-is\n */\n MaskNone: MaskNoneView,\n\n /**\n * Hide view component - Completely hides the view and its content\n */\n Hide: HideView,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAEO,MAAMI,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG;EACjC;AACF;AACA;EACEE,OAAO,EAAEC,wBAAW;EAEpB;AACF;AACA;EACEC,OAAO,EAAEC,wBAAW;EAEpB;AACF;AACA;EACEC,QAAQ,EAAEC,0BAAY;EAEtB;AACF;AACA;EACEC,IAAI,EAAEC;AACR,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TouchPrivacyLevel = exports.TextAndInputPrivacyLevel = exports.SessionReplayPrivacy = exports.ImagePrivacyLevel = exports.FTReactNativeSessionReplay = void 0;
|
|
7
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
|
+
// import { NativeModules } from 'react-native';
|
|
11
|
+
/**
|
|
12
|
+
* Privacy level for content masking in session replay. Deprecated, recommend using fine-grained privacy levels for settings
|
|
13
|
+
*/
|
|
14
|
+
let SessionReplayPrivacy = exports.SessionReplayPrivacy = /*#__PURE__*/function (SessionReplayPrivacy) {
|
|
15
|
+
SessionReplayPrivacy[SessionReplayPrivacy["MASK"] = 0] = "MASK";
|
|
16
|
+
SessionReplayPrivacy[SessionReplayPrivacy["ALLOW"] = 1] = "ALLOW";
|
|
17
|
+
SessionReplayPrivacy[SessionReplayPrivacy["MASK_USER_INPUT"] = 2] = "MASK_USER_INPUT";
|
|
18
|
+
return SessionReplayPrivacy;
|
|
19
|
+
}({});
|
|
20
|
+
/**
|
|
21
|
+
* Available privacy levels for touch masking in session replay.
|
|
22
|
+
*/
|
|
23
|
+
let TouchPrivacyLevel = exports.TouchPrivacyLevel = /*#__PURE__*/function (TouchPrivacyLevel) {
|
|
24
|
+
TouchPrivacyLevel["SHOW"] = "SHOW";
|
|
25
|
+
TouchPrivacyLevel["HIDE"] = "HIDE";
|
|
26
|
+
return TouchPrivacyLevel;
|
|
27
|
+
}({});
|
|
28
|
+
/**
|
|
29
|
+
* Available privacy levels for image masking in session replay
|
|
30
|
+
*/
|
|
31
|
+
let ImagePrivacyLevel = exports.ImagePrivacyLevel = /*#__PURE__*/function (ImagePrivacyLevel) {
|
|
32
|
+
ImagePrivacyLevel["MASK_NON_BUNDLED_ONLY"] = "MASK_NON_BUNDLED_ONLY";
|
|
33
|
+
ImagePrivacyLevel["MASK_ALL"] = "MASK_ALL";
|
|
34
|
+
ImagePrivacyLevel["MASK_NONE"] = "MASK_NONE";
|
|
35
|
+
return ImagePrivacyLevel;
|
|
36
|
+
}({});
|
|
37
|
+
/**
|
|
38
|
+
* Available privacy levels for text and input masking in session replay
|
|
39
|
+
*/
|
|
40
|
+
let TextAndInputPrivacyLevel = exports.TextAndInputPrivacyLevel = /*#__PURE__*/function (TextAndInputPrivacyLevel) {
|
|
41
|
+
TextAndInputPrivacyLevel["MASK_SENSITIVE_INPUTS"] = "MASK_SENSITIVE_INPUTS";
|
|
42
|
+
TextAndInputPrivacyLevel["MASK_ALL_INPUTS"] = "MASK_ALL_INPUTS";
|
|
43
|
+
TextAndInputPrivacyLevel["MASK_ALL"] = "MASK_ALL";
|
|
44
|
+
return TextAndInputPrivacyLevel;
|
|
45
|
+
}({});
|
|
46
|
+
/**
|
|
47
|
+
* Set Session Replay configuration.
|
|
48
|
+
* @param sampleRate Sampling rate
|
|
49
|
+
* @param sessionReplayOnErrorSampleRate error session sampling rate. For sessions not sampled, if ERROR is hit, collect data 1 minute before the error occurs
|
|
50
|
+
* @param privacy Privacy level for content masking in session replay
|
|
51
|
+
* @param touchPrivacy Privacy level for touch masking in session replay
|
|
52
|
+
* @param textAndInputPrivacy Privacy level for text and input masking in session replay
|
|
53
|
+
* @param imagePrivacy Privacy level for image masking in session replay
|
|
54
|
+
* @param enableLinkRUMKeys Enable linking RUM data with session replay data. The value is an array of RUM global context keys. When the keys exist in RUM global context, the corresponding values will be linked to session replay data.
|
|
55
|
+
* @returns a Promise.
|
|
56
|
+
*/
|
|
57
|
+
class FTReactNativeSessionReplayWrapper {
|
|
58
|
+
constructor() {
|
|
59
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
60
|
+
_defineProperty(this, "sessionReplay", require('./specs/NativeFTReactNativeSessionReplay').default);
|
|
61
|
+
}
|
|
62
|
+
/* eslint-enable @typescript-eslint/no-var-requires */
|
|
63
|
+
|
|
64
|
+
sessionReplayConfig(config) {
|
|
65
|
+
return this.sessionReplay.sessionReplayConfig(config);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const FTReactNativeSessionReplay = exports.FTReactNativeSessionReplay = new FTReactNativeSessionReplayWrapper();
|
|
69
|
+
//# sourceMappingURL=ft_session_replay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SessionReplayPrivacy","exports","TouchPrivacyLevel","ImagePrivacyLevel","TextAndInputPrivacyLevel","FTReactNativeSessionReplayWrapper","constructor","_defineProperty","require","default","sessionReplayConfig","config","sessionReplay","FTReactNativeSessionReplay"],"sources":["ft_session_replay.tsx"],"sourcesContent":["// import { NativeModules } from 'react-native';\n/**\n * Privacy level for content masking in session replay. Deprecated, recommend using fine-grained privacy levels for settings\n */\nexport enum SessionReplayPrivacy {\n MASK = 0,\n ALLOW = 1,\n MASK_USER_INPUT = 2,\n}\n\n/**\n * Available privacy levels for touch masking in session replay.\n */\nexport enum TouchPrivacyLevel {\n SHOW = 'SHOW',\n HIDE = 'HIDE',\n}\n\n/**\n * Available privacy levels for image masking in session replay\n */\nexport enum ImagePrivacyLevel {\n MASK_NON_BUNDLED_ONLY = 'MASK_NON_BUNDLED_ONLY',\n MASK_ALL = 'MASK_ALL',\n MASK_NONE = 'MASK_NONE',\n}\n\n/**\n * Available privacy levels for text and input masking in session replay\n */\nexport enum TextAndInputPrivacyLevel {\n MASK_SENSITIVE_INPUTS = 'MASK_SENSITIVE_INPUTS',\n MASK_ALL_INPUTS = 'MASK_ALL_INPUTS',\n MASK_ALL = 'MASK_ALL',\n}\n/**\n * Set Session Replay configuration.\n * @param sampleRate Sampling rate\n * @param sessionReplayOnErrorSampleRate error session sampling rate. For sessions not sampled, if ERROR is hit, collect data 1 minute before the error occurs\n * @param privacy Privacy level for content masking in session replay\n * @param touchPrivacy Privacy level for touch masking in session replay\n * @param textAndInputPrivacy Privacy level for text and input masking in session replay\n * @param imagePrivacy Privacy level for image masking in session replay\n * @param enableLinkRUMKeys Enable linking RUM data with session replay data. The value is an array of RUM global context keys. When the keys exist in RUM global context, the corresponding values will be linked to session replay data.\n * @returns a Promise.\n */\nexport interface FTSessionReplayConfig {\n sampleRate?: number;\n sessionReplayOnErrorSampleRate?: number;\n privacy?: SessionReplayPrivacy;\n touchPrivacy?: TouchPrivacyLevel;\n textAndInputPrivacy?: TextAndInputPrivacyLevel;\n imagePrivacy?: ImagePrivacyLevel;\n enableLinkRUMKeys?: string[];\n}\ntype FTReactNativeSessionReplayType = {\n /**\n * Set Session Replay configuration and enable session replay\n * @param config Session Replay configuration parameters.\n * @returns a Promise.\n */\n sessionReplayConfig(config: FTSessionReplayConfig): Promise<void>;\n};\n\nclass FTReactNativeSessionReplayWrapper\n implements FTReactNativeSessionReplayType\n{\n /* eslint-disable @typescript-eslint/no-var-requires */\n private sessionReplay: FTReactNativeSessionReplayType =\n require('./specs/NativeFTReactNativeSessionReplay').default;\n /* eslint-enable @typescript-eslint/no-var-requires */\n\n sessionReplayConfig(config: FTSessionReplayConfig): Promise<void> {\n return this.sessionReplay.sessionReplayConfig(config);\n }\n}\nexport const FTReactNativeSessionReplay: FTReactNativeSessionReplayType =\n new FTReactNativeSessionReplayWrapper();\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AAFA,IAGYA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAMhC;AACA;AACA;AAFA,IAGYE,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAK7B;AACA;AACA;AAFA,IAGYC,iBAAiB,GAAAF,OAAA,CAAAE,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAM7B;AACA;AACA;AAFA,IAGYC,wBAAwB,GAAAH,OAAA,CAAAG,wBAAA,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;AAKpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAmBA,MAAMC,iCAAiC,CAEvC;EAAAC,YAAA;IACE;IAAAC,eAAA,wBAEEC,OAAO,CAAC,0CAA0C,CAAC,CAACC,OAAO;EAAA;EAC7D;;EAEAC,mBAAmBA,CAACC,MAA6B,EAAiB;IAChE,OAAO,IAAI,CAACC,aAAa,CAACF,mBAAmB,CAACC,MAAM,CAAC;EACvD;AACF;AACO,MAAME,0BAA0D,GAAAZ,OAAA,CAAAY,0BAAA,GACrE,IAAIR,iCAAiC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "FTReactNativeSessionReplay", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _ft_session_replay.FTReactNativeSessionReplay;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FTSessionReplayConfig", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _ft_session_replay.FTSessionReplayConfig;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "FTSessionReplayView", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _SessionReplayView.FTSessionReplayView;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "ImagePrivacyLevel", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _ft_session_replay.ImagePrivacyLevel;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "SessionReplayPrivacy", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _ft_session_replay.SessionReplayPrivacy;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "TextAndInputPrivacyLevel", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _ft_session_replay.TextAndInputPrivacyLevel;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "TouchPrivacyLevel", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _ft_session_replay.TouchPrivacyLevel;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
var _ft_session_replay = require("./ft_session_replay");
|
|
49
|
+
var _SessionReplayView = require("./components/SessionReplayView");
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_ft_session_replay","require","_SessionReplayView"],"sources":["index.tsx"],"sourcesContent":["import {\n FTSessionReplayConfig,\n SessionReplayPrivacy,\n FTReactNativeSessionReplay,\n TouchPrivacyLevel,\n TextAndInputPrivacyLevel,\n ImagePrivacyLevel,\n} from './ft_session_replay';\nimport { FTSessionReplayView } from './components/SessionReplayView';\n\nexport {\n FTSessionReplayConfig,\n SessionReplayPrivacy,\n FTReactNativeSessionReplay,\n TouchPrivacyLevel,\n TextAndInputPrivacyLevel,\n ImagePrivacyLevel,\n FTSessionReplayView,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAQA,IAAAC,kBAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
const isNewArchitectureEnabled = () => {
|
|
9
|
+
var _UIManager$getViewMan;
|
|
10
|
+
return ((_UIManager$getViewMan = _reactNative.UIManager.getViewManagerConfig) === null || _UIManager$getViewMan === void 0 ? void 0 : _UIManager$getViewMan.call(_reactNative.UIManager, 'FTPrivacyView')) === undefined;
|
|
11
|
+
};
|
|
12
|
+
const getNativeComponent = () => {
|
|
13
|
+
if (isNewArchitectureEnabled()) {
|
|
14
|
+
try {
|
|
15
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
16
|
+
const NewArchComponent = require('./FTPrivacyViewNativeComponent').default;
|
|
17
|
+
/* eslint-enable @typescript-eslint/no-var-requires */
|
|
18
|
+
if (NewArchComponent) {
|
|
19
|
+
return NewArchComponent;
|
|
20
|
+
}
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.debug('Fabric component not available, falling back to Paper:', error instanceof Error ? error.message : String(error));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return (0, _reactNative.requireNativeComponent)('FTPrivacyView');
|
|
26
|
+
};
|
|
27
|
+
const FTPrivacyViewNative = getNativeComponent();
|
|
28
|
+
var _default = exports.default = FTPrivacyViewNative;
|
|
29
|
+
//# sourceMappingURL=FTPrivacyViewNative.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","isNewArchitectureEnabled","_UIManager$getViewMan","UIManager","getViewManagerConfig","call","undefined","getNativeComponent","NewArchComponent","default","error","console","debug","Error","message","String","requireNativeComponent","FTPrivacyViewNative","_default","exports"],"sources":["FTPrivacyViewNative.ts"],"sourcesContent":["import { UIManager } from 'react-native';\nimport { requireNativeComponent } from 'react-native';\nimport type { FTPrivacyViewNativeProps } from '../types';\n\nconst isNewArchitectureEnabled = () => {\n return UIManager.getViewManagerConfig?.('FTPrivacyView') === undefined;\n};\n\nconst getNativeComponent = () => {\n if (isNewArchitectureEnabled()) {\n try {\n /* eslint-disable @typescript-eslint/no-var-requires */\n const NewArchComponent =\n require('./FTPrivacyViewNativeComponent').default;\n /* eslint-enable @typescript-eslint/no-var-requires */\n if (NewArchComponent) {\n return NewArchComponent;\n }\n } catch (error) {\n console.debug(\n 'Fabric component not available, falling back to Paper:',\n error instanceof Error ? error.message : String(error)\n );\n }\n }\n\n return requireNativeComponent<FTPrivacyViewNativeProps>('FTPrivacyView');\n};\n\nconst FTPrivacyViewNative = getNativeComponent();\n\nexport default FTPrivacyViewNative;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAAA,IAAAC,qBAAA;EACrC,OAAO,EAAAA,qBAAA,GAAAC,sBAAS,CAACC,oBAAoB,cAAAF,qBAAA,uBAA9BA,qBAAA,CAAAG,IAAA,CAAAF,sBAAS,EAAwB,eAAe,CAAC,MAAKG,SAAS;AACxE,CAAC;AAED,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EAC/B,IAAIN,wBAAwB,CAAC,CAAC,EAAE;IAC9B,IAAI;MACF;MACA,MAAMO,gBAAgB,GACpBR,OAAO,CAAC,gCAAgC,CAAC,CAACS,OAAO;MACnD;MACA,IAAID,gBAAgB,EAAE;QACpB,OAAOA,gBAAgB;MACzB;IACF,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACC,KAAK,CACX,wDAAwD,EACxDF,KAAK,YAAYG,KAAK,GAAGH,KAAK,CAACI,OAAO,GAAGC,MAAM,CAACL,KAAK,CACvD,CAAC;IACH;EACF;EAEA,OAAO,IAAAM,mCAAsB,EAA2B,eAAe,CAAC;AAC1E,CAAC;AAED,MAAMC,mBAAmB,GAAGV,kBAAkB,CAAC,CAAC;AAAC,IAAAW,QAAA,GAAAC,OAAA,CAAAV,OAAA,GAElCQ,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
var _default = exports.default = (0, _codegenNativeComponent.default)('FTPrivacyView');
|
|
10
|
+
//# sourceMappingURL=FTPrivacyViewNativeComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sources":["FTPrivacyViewNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { HostComponent, ViewProps } from 'react-native';\n\nexport interface FTPrivacyViewNativeProps extends ViewProps {\n textAndInputPrivacy?: string;\n imagePrivacy?: string;\n touchPrivacy?: string;\n hide?: boolean;\n nativeID?: string;\n}\n\nexport default codegenNativeComponent<FTPrivacyViewNativeProps>(\n 'FTPrivacyView'\n) as HostComponent<FTPrivacyViewNativeProps>;\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAW9E,IAAAG,+BAAsB,EACnC,eACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
9
|
+
var _default = exports.default = _reactNative.TurboModuleRegistry.get('FTReactNativeSessionReplay');
|
|
10
|
+
//# sourceMappingURL=NativeFTReactNativeSessionReplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sources":["NativeFTReactNativeSessionReplay.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n /**\n * Set Session Replay configuration and enable session replay\n * @param config Session Replay configuration parameters.\n * @returns a Promise.\n */\n sessionReplayConfig(config: Object): Promise<void>;\n}\nexport default TurboModuleRegistry.get<Spec>('FTReactNativeSessionReplay');\n"],"mappings":";;;;;;AAEA,IAAAA,YAAA,GAAAC,OAAA;AAFA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAYeC,gCAAmB,CAACC,GAAG,CAAO,4BAA4B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewProps } from 'react-native';\n\nexport interface FTPrivacyViewNativeProps extends ViewProps {\n textAndInputPrivacy?: string;\n imagePrivacy?: string;\n touchPrivacy?: string;\n hide?: boolean;\n nativeID?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { PrivacyView } from './PrivacyView';
|
|
4
|
+
export function HideView({
|
|
5
|
+
children,
|
|
6
|
+
...props
|
|
7
|
+
}) {
|
|
8
|
+
return /*#__PURE__*/React.createElement(PrivacyView, _extends({}, props, {
|
|
9
|
+
hide: true
|
|
10
|
+
}), children);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=HideView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","PrivacyView","HideView","children","props","createElement","_extends","hide"],"sources":["HideView.tsx"],"sourcesContent":["import React from 'react';\nimport type { ViewProps } from 'react-native';\nimport { PrivacyView } from './PrivacyView';\n\ntype HideViewProps = ViewProps & {\n children?: React.ReactNode;\n};\n\nexport function HideView({ children, ...props }: HideViewProps) {\n return (\n <PrivacyView {...props} hide={true}>\n {children as any}\n </PrivacyView>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,eAAe;AAM3C,OAAO,SAASC,QAAQA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAqB,CAAC,EAAE;EAC9D,oBACEJ,KAAA,CAAAK,aAAA,CAACJ,WAAW,EAAAK,QAAA,KAAKF,KAAK;IAAEG,IAAI,EAAE;EAAK,IAChCJ,QACU,CAAC;AAElB","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { PrivacyView } from './PrivacyView';
|
|
4
|
+
import { ImagePrivacyLevel, TextAndInputPrivacyLevel, TouchPrivacyLevel } from '../../ft_session_replay';
|
|
5
|
+
export function MaskAllView({
|
|
6
|
+
children,
|
|
7
|
+
showTouch = false,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
const touchPrivacy = showTouch ? TouchPrivacyLevel.SHOW : TouchPrivacyLevel.HIDE;
|
|
11
|
+
return /*#__PURE__*/React.createElement(PrivacyView, _extends({}, props, {
|
|
12
|
+
textAndInputPrivacy: TextAndInputPrivacyLevel.MASK_ALL,
|
|
13
|
+
imagePrivacy: ImagePrivacyLevel.MASK_ALL,
|
|
14
|
+
touchPrivacy: touchPrivacy,
|
|
15
|
+
hide: false
|
|
16
|
+
}), children);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=MaskAllView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","PrivacyView","ImagePrivacyLevel","TextAndInputPrivacyLevel","TouchPrivacyLevel","MaskAllView","children","showTouch","props","touchPrivacy","SHOW","HIDE","createElement","_extends","textAndInputPrivacy","MASK_ALL","imagePrivacy","hide"],"sources":["MaskAllView.tsx"],"sourcesContent":["import React from 'react';\nimport type { ViewProps } from 'react-native';\nimport { PrivacyView } from './PrivacyView';\nimport {\n ImagePrivacyLevel,\n TextAndInputPrivacyLevel,\n TouchPrivacyLevel,\n} from '../../ft_session_replay';\n\ntype MaskAllViewProps = ViewProps & {\n children?: React.ReactNode;\n showTouch?: boolean;\n};\n\nexport function MaskAllView({\n children,\n showTouch = false,\n ...props\n}: MaskAllViewProps) {\n const touchPrivacy = showTouch\n ? TouchPrivacyLevel.SHOW\n : TouchPrivacyLevel.HIDE;\n\n return (\n <PrivacyView\n {...props}\n textAndInputPrivacy={TextAndInputPrivacyLevel.MASK_ALL}\n imagePrivacy={ImagePrivacyLevel.MASK_ALL}\n touchPrivacy={touchPrivacy}\n hide={false}\n >\n {children as any}\n </PrivacyView>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,eAAe;AAC3C,SACEC,iBAAiB,EACjBC,wBAAwB,EACxBC,iBAAiB,QACZ,yBAAyB;AAOhC,OAAO,SAASC,WAAWA,CAAC;EAC1BC,QAAQ;EACRC,SAAS,GAAG,KAAK;EACjB,GAAGC;AACa,CAAC,EAAE;EACnB,MAAMC,YAAY,GAAGF,SAAS,GAC1BH,iBAAiB,CAACM,IAAI,GACtBN,iBAAiB,CAACO,IAAI;EAE1B,oBACEX,KAAA,CAAAY,aAAA,CAACX,WAAW,EAAAY,QAAA,KACNL,KAAK;IACTM,mBAAmB,EAAEX,wBAAwB,CAACY,QAAS;IACvDC,YAAY,EAAEd,iBAAiB,CAACa,QAAS;IACzCN,YAAY,EAAEA,YAAa;IAC3BQ,IAAI,EAAE;EAAM,IAEXX,QACU,CAAC;AAElB","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { PrivacyView } from './PrivacyView';
|
|
4
|
+
import { ImagePrivacyLevel, TextAndInputPrivacyLevel, TouchPrivacyLevel } from '../../ft_session_replay';
|
|
5
|
+
export function MaskNoneView({
|
|
6
|
+
children,
|
|
7
|
+
...props
|
|
8
|
+
}) {
|
|
9
|
+
return /*#__PURE__*/React.createElement(PrivacyView, _extends({}, props, {
|
|
10
|
+
textAndInputPrivacy: TextAndInputPrivacyLevel.MASK_SENSITIVE_INPUTS,
|
|
11
|
+
imagePrivacy: ImagePrivacyLevel.MASK_NONE,
|
|
12
|
+
touchPrivacy: TouchPrivacyLevel.SHOW,
|
|
13
|
+
hide: false
|
|
14
|
+
}), children);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=MaskNoneView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","PrivacyView","ImagePrivacyLevel","TextAndInputPrivacyLevel","TouchPrivacyLevel","MaskNoneView","children","props","createElement","_extends","textAndInputPrivacy","MASK_SENSITIVE_INPUTS","imagePrivacy","MASK_NONE","touchPrivacy","SHOW","hide"],"sources":["MaskNoneView.tsx"],"sourcesContent":["import React from 'react';\nimport type { ViewProps } from 'react-native';\nimport { PrivacyView } from './PrivacyView';\nimport {\n ImagePrivacyLevel,\n TextAndInputPrivacyLevel,\n TouchPrivacyLevel,\n} from '../../ft_session_replay';\n\ntype MaskNoneViewProps = ViewProps & {\n children?: React.ReactNode;\n};\n\nexport function MaskNoneView({ children, ...props }: MaskNoneViewProps) {\n return (\n <PrivacyView\n {...props}\n textAndInputPrivacy={TextAndInputPrivacyLevel.MASK_SENSITIVE_INPUTS}\n imagePrivacy={ImagePrivacyLevel.MASK_NONE}\n touchPrivacy={TouchPrivacyLevel.SHOW}\n hide={false}\n >\n {children as any}\n </PrivacyView>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,eAAe;AAC3C,SACEC,iBAAiB,EACjBC,wBAAwB,EACxBC,iBAAiB,QACZ,yBAAyB;AAMhC,OAAO,SAASC,YAAYA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAyB,CAAC,EAAE;EACtE,oBACEP,KAAA,CAAAQ,aAAA,CAACP,WAAW,EAAAQ,QAAA,KACNF,KAAK;IACTG,mBAAmB,EAAEP,wBAAwB,CAACQ,qBAAsB;IACpEC,YAAY,EAAEV,iBAAiB,CAACW,SAAU;IAC1CC,YAAY,EAAEV,iBAAiB,CAACW,IAAK;IACrCC,IAAI,EAAE;EAAM,IAEXV,QACU,CAAC;AAElB","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import FTPrivacyViewNative from '../../specs/FTPrivacyViewNative';
|
|
4
|
+
export function PrivacyView({
|
|
5
|
+
children,
|
|
6
|
+
textAndInputPrivacy,
|
|
7
|
+
imagePrivacy,
|
|
8
|
+
touchPrivacy,
|
|
9
|
+
nativeID,
|
|
10
|
+
hide,
|
|
11
|
+
...props
|
|
12
|
+
}) {
|
|
13
|
+
return /*#__PURE__*/React.createElement(FTPrivacyViewNative, _extends({}, props, {
|
|
14
|
+
textAndInputPrivacy: textAndInputPrivacy,
|
|
15
|
+
imagePrivacy: imagePrivacy,
|
|
16
|
+
touchPrivacy: touchPrivacy,
|
|
17
|
+
hide: hide,
|
|
18
|
+
nativeID: nativeID
|
|
19
|
+
}), children);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=PrivacyView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","FTPrivacyViewNative","PrivacyView","children","textAndInputPrivacy","imagePrivacy","touchPrivacy","nativeID","hide","props","createElement","_extends"],"sources":["PrivacyView.tsx"],"sourcesContent":["import React from 'react';\nimport FTPrivacyViewNative from '../../specs/FTPrivacyViewNative';\nimport type { ViewProps } from 'react-native';\nimport type {\n ImagePrivacyLevel,\n TextAndInputPrivacyLevel,\n TouchPrivacyLevel,\n} from '../../ft_session_replay';\n\nexport interface PrivacyViewProps extends ViewProps {\n children?: React.ReactNode;\n textAndInputPrivacy?: TextAndInputPrivacyLevel;\n imagePrivacy?: ImagePrivacyLevel;\n touchPrivacy?: TouchPrivacyLevel;\n hide?: boolean;\n nativeID?: string;\n}\n\nexport function PrivacyView({\n children,\n textAndInputPrivacy,\n imagePrivacy,\n touchPrivacy,\n nativeID,\n hide,\n ...props\n}: PrivacyViewProps) {\n return (\n <FTPrivacyViewNative\n {...props}\n textAndInputPrivacy={textAndInputPrivacy}\n imagePrivacy={imagePrivacy}\n touchPrivacy={touchPrivacy}\n hide={hide}\n nativeID={nativeID}\n >\n {children}\n </FTPrivacyViewNative>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,mBAAmB,MAAM,iCAAiC;AAiBjE,OAAO,SAASC,WAAWA,CAAC;EAC1BC,QAAQ;EACRC,mBAAmB;EACnBC,YAAY;EACZC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJ,GAAGC;AACa,CAAC,EAAE;EACnB,oBACET,KAAA,CAAAU,aAAA,CAACT,mBAAmB,EAAAU,QAAA,KACdF,KAAK;IACTL,mBAAmB,EAAEA,mBAAoB;IACzCC,YAAY,EAAEA,YAAa;IAC3BC,YAAY,EAAEA,YAAa;IAC3BE,IAAI,EAAEA,IAAK;IACXD,QAAQ,EAAEA;EAAS,IAElBJ,QACkB,CAAC;AAE1B","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PrivacyView } from './PrivacyView';
|
|
2
|
+
import { MaskAllView } from './MaskAllView';
|
|
3
|
+
import { MaskNoneView } from './MaskNoneView';
|
|
4
|
+
import { HideView } from './HideView';
|
|
5
|
+
export const FTSessionReplayView = {
|
|
6
|
+
/**
|
|
7
|
+
* Privacy view component - Low-level configurable component for fine-grained privacy control
|
|
8
|
+
*/
|
|
9
|
+
Privacy: PrivacyView,
|
|
10
|
+
/**
|
|
11
|
+
* Mask all view component - Masks all text, inputs and images
|
|
12
|
+
*/
|
|
13
|
+
MaskAll: MaskAllView,
|
|
14
|
+
/**
|
|
15
|
+
* Mask none view component - Displays most content as-is
|
|
16
|
+
*/
|
|
17
|
+
MaskNone: MaskNoneView,
|
|
18
|
+
/**
|
|
19
|
+
* Hide view component - Completely hides the view and its content
|
|
20
|
+
*/
|
|
21
|
+
Hide: HideView
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PrivacyView","MaskAllView","MaskNoneView","HideView","FTSessionReplayView","Privacy","MaskAll","MaskNone","Hide"],"sources":["index.ts"],"sourcesContent":["import { PrivacyView } from './PrivacyView';\nimport { MaskAllView } from './MaskAllView';\nimport { MaskNoneView } from './MaskNoneView';\nimport { HideView } from './HideView';\n\nexport const FTSessionReplayView = {\n /**\n * Privacy view component - Low-level configurable component for fine-grained privacy control\n */\n Privacy: PrivacyView,\n\n /**\n * Mask all view component - Masks all text, inputs and images\n */\n MaskAll: MaskAllView,\n\n /**\n * Mask none view component - Displays most content as-is\n */\n MaskNone: MaskNoneView,\n\n /**\n * Hide view component - Completely hides the view and its content\n */\n Hide: HideView,\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,QAAQ,QAAQ,YAAY;AAErC,OAAO,MAAMC,mBAAmB,GAAG;EACjC;AACF;AACA;EACEC,OAAO,EAAEL,WAAW;EAEpB;AACF;AACA;EACEM,OAAO,EAAEL,WAAW;EAEpB;AACF;AACA;EACEM,QAAQ,EAAEL,YAAY;EAEtB;AACF;AACA;EACEM,IAAI,EAAEL;AACR,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
// import { NativeModules } from 'react-native';
|
|
5
|
+
/**
|
|
6
|
+
* Privacy level for content masking in session replay. Deprecated, recommend using fine-grained privacy levels for settings
|
|
7
|
+
*/
|
|
8
|
+
export let SessionReplayPrivacy = /*#__PURE__*/function (SessionReplayPrivacy) {
|
|
9
|
+
SessionReplayPrivacy[SessionReplayPrivacy["MASK"] = 0] = "MASK";
|
|
10
|
+
SessionReplayPrivacy[SessionReplayPrivacy["ALLOW"] = 1] = "ALLOW";
|
|
11
|
+
SessionReplayPrivacy[SessionReplayPrivacy["MASK_USER_INPUT"] = 2] = "MASK_USER_INPUT";
|
|
12
|
+
return SessionReplayPrivacy;
|
|
13
|
+
}({});
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Available privacy levels for touch masking in session replay.
|
|
17
|
+
*/
|
|
18
|
+
export let TouchPrivacyLevel = /*#__PURE__*/function (TouchPrivacyLevel) {
|
|
19
|
+
TouchPrivacyLevel["SHOW"] = "SHOW";
|
|
20
|
+
TouchPrivacyLevel["HIDE"] = "HIDE";
|
|
21
|
+
return TouchPrivacyLevel;
|
|
22
|
+
}({});
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Available privacy levels for image masking in session replay
|
|
26
|
+
*/
|
|
27
|
+
export let ImagePrivacyLevel = /*#__PURE__*/function (ImagePrivacyLevel) {
|
|
28
|
+
ImagePrivacyLevel["MASK_NON_BUNDLED_ONLY"] = "MASK_NON_BUNDLED_ONLY";
|
|
29
|
+
ImagePrivacyLevel["MASK_ALL"] = "MASK_ALL";
|
|
30
|
+
ImagePrivacyLevel["MASK_NONE"] = "MASK_NONE";
|
|
31
|
+
return ImagePrivacyLevel;
|
|
32
|
+
}({});
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Available privacy levels for text and input masking in session replay
|
|
36
|
+
*/
|
|
37
|
+
export let TextAndInputPrivacyLevel = /*#__PURE__*/function (TextAndInputPrivacyLevel) {
|
|
38
|
+
TextAndInputPrivacyLevel["MASK_SENSITIVE_INPUTS"] = "MASK_SENSITIVE_INPUTS";
|
|
39
|
+
TextAndInputPrivacyLevel["MASK_ALL_INPUTS"] = "MASK_ALL_INPUTS";
|
|
40
|
+
TextAndInputPrivacyLevel["MASK_ALL"] = "MASK_ALL";
|
|
41
|
+
return TextAndInputPrivacyLevel;
|
|
42
|
+
}({});
|
|
43
|
+
/**
|
|
44
|
+
* Set Session Replay configuration.
|
|
45
|
+
* @param sampleRate Sampling rate
|
|
46
|
+
* @param sessionReplayOnErrorSampleRate error session sampling rate. For sessions not sampled, if ERROR is hit, collect data 1 minute before the error occurs
|
|
47
|
+
* @param privacy Privacy level for content masking in session replay
|
|
48
|
+
* @param touchPrivacy Privacy level for touch masking in session replay
|
|
49
|
+
* @param textAndInputPrivacy Privacy level for text and input masking in session replay
|
|
50
|
+
* @param imagePrivacy Privacy level for image masking in session replay
|
|
51
|
+
* @param enableLinkRUMKeys Enable linking RUM data with session replay data. The value is an array of RUM global context keys. When the keys exist in RUM global context, the corresponding values will be linked to session replay data.
|
|
52
|
+
* @returns a Promise.
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
class FTReactNativeSessionReplayWrapper {
|
|
56
|
+
constructor() {
|
|
57
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
58
|
+
_defineProperty(this, "sessionReplay", require('./specs/NativeFTReactNativeSessionReplay').default);
|
|
59
|
+
}
|
|
60
|
+
/* eslint-enable @typescript-eslint/no-var-requires */
|
|
61
|
+
|
|
62
|
+
sessionReplayConfig(config) {
|
|
63
|
+
return this.sessionReplay.sessionReplayConfig(config);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export const FTReactNativeSessionReplay = new FTReactNativeSessionReplayWrapper();
|
|
67
|
+
//# sourceMappingURL=ft_session_replay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SessionReplayPrivacy","TouchPrivacyLevel","ImagePrivacyLevel","TextAndInputPrivacyLevel","FTReactNativeSessionReplayWrapper","constructor","_defineProperty","require","default","sessionReplayConfig","config","sessionReplay","FTReactNativeSessionReplay"],"sources":["ft_session_replay.tsx"],"sourcesContent":["// import { NativeModules } from 'react-native';\n/**\n * Privacy level for content masking in session replay. Deprecated, recommend using fine-grained privacy levels for settings\n */\nexport enum SessionReplayPrivacy {\n MASK = 0,\n ALLOW = 1,\n MASK_USER_INPUT = 2,\n}\n\n/**\n * Available privacy levels for touch masking in session replay.\n */\nexport enum TouchPrivacyLevel {\n SHOW = 'SHOW',\n HIDE = 'HIDE',\n}\n\n/**\n * Available privacy levels for image masking in session replay\n */\nexport enum ImagePrivacyLevel {\n MASK_NON_BUNDLED_ONLY = 'MASK_NON_BUNDLED_ONLY',\n MASK_ALL = 'MASK_ALL',\n MASK_NONE = 'MASK_NONE',\n}\n\n/**\n * Available privacy levels for text and input masking in session replay\n */\nexport enum TextAndInputPrivacyLevel {\n MASK_SENSITIVE_INPUTS = 'MASK_SENSITIVE_INPUTS',\n MASK_ALL_INPUTS = 'MASK_ALL_INPUTS',\n MASK_ALL = 'MASK_ALL',\n}\n/**\n * Set Session Replay configuration.\n * @param sampleRate Sampling rate\n * @param sessionReplayOnErrorSampleRate error session sampling rate. For sessions not sampled, if ERROR is hit, collect data 1 minute before the error occurs\n * @param privacy Privacy level for content masking in session replay\n * @param touchPrivacy Privacy level for touch masking in session replay\n * @param textAndInputPrivacy Privacy level for text and input masking in session replay\n * @param imagePrivacy Privacy level for image masking in session replay\n * @param enableLinkRUMKeys Enable linking RUM data with session replay data. The value is an array of RUM global context keys. When the keys exist in RUM global context, the corresponding values will be linked to session replay data.\n * @returns a Promise.\n */\nexport interface FTSessionReplayConfig {\n sampleRate?: number;\n sessionReplayOnErrorSampleRate?: number;\n privacy?: SessionReplayPrivacy;\n touchPrivacy?: TouchPrivacyLevel;\n textAndInputPrivacy?: TextAndInputPrivacyLevel;\n imagePrivacy?: ImagePrivacyLevel;\n enableLinkRUMKeys?: string[];\n}\ntype FTReactNativeSessionReplayType = {\n /**\n * Set Session Replay configuration and enable session replay\n * @param config Session Replay configuration parameters.\n * @returns a Promise.\n */\n sessionReplayConfig(config: FTSessionReplayConfig): Promise<void>;\n};\n\nclass FTReactNativeSessionReplayWrapper\n implements FTReactNativeSessionReplayType\n{\n /* eslint-disable @typescript-eslint/no-var-requires */\n private sessionReplay: FTReactNativeSessionReplayType =\n require('./specs/NativeFTReactNativeSessionReplay').default;\n /* eslint-enable @typescript-eslint/no-var-requires */\n\n sessionReplayConfig(config: FTSessionReplayConfig): Promise<void> {\n return this.sessionReplay.sessionReplayConfig(config);\n }\n}\nexport const FTReactNativeSessionReplay: FTReactNativeSessionReplayType =\n new FTReactNativeSessionReplayWrapper();\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;;AAMhC;AACA;AACA;AACA,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;;AAK7B;AACA;AACA;AACA,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;;AAM7B;AACA;AACA;AACA,WAAYC,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;AAKpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA,MAAMC,iCAAiC,CAEvC;EAAAC,YAAA;IACE;IAAAC,eAAA,wBAEEC,OAAO,CAAC,0CAA0C,CAAC,CAACC,OAAO;EAAA;EAC7D;;EAEAC,mBAAmBA,CAACC,MAA6B,EAAiB;IAChE,OAAO,IAAI,CAACC,aAAa,CAACF,mBAAmB,CAACC,MAAM,CAAC;EACvD;AACF;AACA,OAAO,MAAME,0BAA0D,GACrE,IAAIR,iCAAiC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FTSessionReplayConfig, SessionReplayPrivacy, FTReactNativeSessionReplay, TouchPrivacyLevel, TextAndInputPrivacyLevel, ImagePrivacyLevel } from './ft_session_replay';
|
|
2
|
+
import { FTSessionReplayView } from './components/SessionReplayView';
|
|
3
|
+
export { FTSessionReplayConfig, SessionReplayPrivacy, FTReactNativeSessionReplay, TouchPrivacyLevel, TextAndInputPrivacyLevel, ImagePrivacyLevel, FTSessionReplayView };
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FTSessionReplayConfig","SessionReplayPrivacy","FTReactNativeSessionReplay","TouchPrivacyLevel","TextAndInputPrivacyLevel","ImagePrivacyLevel","FTSessionReplayView"],"sources":["index.tsx"],"sourcesContent":["import {\n FTSessionReplayConfig,\n SessionReplayPrivacy,\n FTReactNativeSessionReplay,\n TouchPrivacyLevel,\n TextAndInputPrivacyLevel,\n ImagePrivacyLevel,\n} from './ft_session_replay';\nimport { FTSessionReplayView } from './components/SessionReplayView';\n\nexport {\n FTSessionReplayConfig,\n SessionReplayPrivacy,\n FTReactNativeSessionReplay,\n TouchPrivacyLevel,\n TextAndInputPrivacyLevel,\n ImagePrivacyLevel,\n FTSessionReplayView,\n};\n"],"mappings":"AAAA,SACEA,qBAAqB,EACrBC,oBAAoB,EACpBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,wBAAwB,EACxBC,iBAAiB,QACZ,qBAAqB;AAC5B,SAASC,mBAAmB,QAAQ,gCAAgC;AAEpE,SACEN,qBAAqB,EACrBC,oBAAoB,EACpBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,wBAAwB,EACxBC,iBAAiB,EACjBC,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { UIManager } from 'react-native';
|
|
2
|
+
import { requireNativeComponent } from 'react-native';
|
|
3
|
+
const isNewArchitectureEnabled = () => {
|
|
4
|
+
var _UIManager$getViewMan;
|
|
5
|
+
return ((_UIManager$getViewMan = UIManager.getViewManagerConfig) === null || _UIManager$getViewMan === void 0 ? void 0 : _UIManager$getViewMan.call(UIManager, 'FTPrivacyView')) === undefined;
|
|
6
|
+
};
|
|
7
|
+
const getNativeComponent = () => {
|
|
8
|
+
if (isNewArchitectureEnabled()) {
|
|
9
|
+
try {
|
|
10
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
11
|
+
const NewArchComponent = require('./FTPrivacyViewNativeComponent').default;
|
|
12
|
+
/* eslint-enable @typescript-eslint/no-var-requires */
|
|
13
|
+
if (NewArchComponent) {
|
|
14
|
+
return NewArchComponent;
|
|
15
|
+
}
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.debug('Fabric component not available, falling back to Paper:', error instanceof Error ? error.message : String(error));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return requireNativeComponent('FTPrivacyView');
|
|
21
|
+
};
|
|
22
|
+
const FTPrivacyViewNative = getNativeComponent();
|
|
23
|
+
export default FTPrivacyViewNative;
|
|
24
|
+
//# sourceMappingURL=FTPrivacyViewNative.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UIManager","requireNativeComponent","isNewArchitectureEnabled","_UIManager$getViewMan","getViewManagerConfig","call","undefined","getNativeComponent","NewArchComponent","require","default","error","console","debug","Error","message","String","FTPrivacyViewNative"],"sources":["FTPrivacyViewNative.ts"],"sourcesContent":["import { UIManager } from 'react-native';\nimport { requireNativeComponent } from 'react-native';\nimport type { FTPrivacyViewNativeProps } from '../types';\n\nconst isNewArchitectureEnabled = () => {\n return UIManager.getViewManagerConfig?.('FTPrivacyView') === undefined;\n};\n\nconst getNativeComponent = () => {\n if (isNewArchitectureEnabled()) {\n try {\n /* eslint-disable @typescript-eslint/no-var-requires */\n const NewArchComponent =\n require('./FTPrivacyViewNativeComponent').default;\n /* eslint-enable @typescript-eslint/no-var-requires */\n if (NewArchComponent) {\n return NewArchComponent;\n }\n } catch (error) {\n console.debug(\n 'Fabric component not available, falling back to Paper:',\n error instanceof Error ? error.message : String(error)\n );\n }\n }\n\n return requireNativeComponent<FTPrivacyViewNativeProps>('FTPrivacyView');\n};\n\nconst FTPrivacyViewNative = getNativeComponent();\n\nexport default FTPrivacyViewNative;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,sBAAsB,QAAQ,cAAc;AAGrD,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAAA,IAAAC,qBAAA;EACrC,OAAO,EAAAA,qBAAA,GAAAH,SAAS,CAACI,oBAAoB,cAAAD,qBAAA,uBAA9BA,qBAAA,CAAAE,IAAA,CAAAL,SAAS,EAAwB,eAAe,CAAC,MAAKM,SAAS;AACxE,CAAC;AAED,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EAC/B,IAAIL,wBAAwB,CAAC,CAAC,EAAE;IAC9B,IAAI;MACF;MACA,MAAMM,gBAAgB,GACpBC,OAAO,CAAC,gCAAgC,CAAC,CAACC,OAAO;MACnD;MACA,IAAIF,gBAAgB,EAAE;QACpB,OAAOA,gBAAgB;MACzB;IACF,CAAC,CAAC,OAAOG,KAAK,EAAE;MACdC,OAAO,CAACC,KAAK,CACX,wDAAwD,EACxDF,KAAK,YAAYG,KAAK,GAAGH,KAAK,CAACI,OAAO,GAAGC,MAAM,CAACL,KAAK,CACvD,CAAC;IACH;EACF;EAEA,OAAOV,sBAAsB,CAA2B,eAAe,CAAC;AAC1E,CAAC;AAED,MAAMgB,mBAAmB,GAAGV,kBAAkB,CAAC,CAAC;AAEhD,eAAeU,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["codegenNativeComponent"],"sources":["FTPrivacyViewNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\nimport type { HostComponent, ViewProps } from 'react-native';\n\nexport interface FTPrivacyViewNativeProps extends ViewProps {\n textAndInputPrivacy?: string;\n imagePrivacy?: string;\n touchPrivacy?: string;\n hide?: boolean;\n nativeID?: string;\n}\n\nexport default codegenNativeComponent<FTPrivacyViewNativeProps>(\n 'FTPrivacyView'\n) as HostComponent<FTPrivacyViewNativeProps>;\n"],"mappings":"AAAA,OAAOA,sBAAsB,MAAM,yDAAyD;AAW5F,eAAeA,sBAAsB,CACnC,eACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sources":["NativeFTReactNativeSessionReplay.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\n\nexport interface Spec extends TurboModule {\n /**\n * Set Session Replay configuration and enable session replay\n * @param config Session Replay configuration parameters.\n * @returns a Promise.\n */\n sessionReplayConfig(config: Object): Promise<void>;\n}\nexport default TurboModuleRegistry.get<Spec>('FTReactNativeSessionReplay');\n"],"mappings":"AAAA;;AAEA,SAASA,mBAAmB,QAAQ,cAAc;AAUlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,4BAA4B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewProps } from 'react-native';\n\nexport interface FTPrivacyViewNativeProps extends ViewProps {\n textAndInputPrivacy?: string;\n imagePrivacy?: string;\n touchPrivacy?: string;\n hide?: boolean;\n nativeID?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewProps } from 'react-native';
|
|
3
|
+
type MaskAllViewProps = ViewProps & {
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
showTouch?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function MaskAllView({ children, showTouch, ...props }: MaskAllViewProps): React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewProps } from 'react-native';
|
|
3
|
+
import type { ImagePrivacyLevel, TextAndInputPrivacyLevel, TouchPrivacyLevel } from '../../ft_session_replay';
|
|
4
|
+
export interface PrivacyViewProps extends ViewProps {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
textAndInputPrivacy?: TextAndInputPrivacyLevel;
|
|
7
|
+
imagePrivacy?: ImagePrivacyLevel;
|
|
8
|
+
touchPrivacy?: TouchPrivacyLevel;
|
|
9
|
+
hide?: boolean;
|
|
10
|
+
nativeID?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function PrivacyView({ children, textAndInputPrivacy, imagePrivacy, touchPrivacy, nativeID, hide, ...props }: PrivacyViewProps): React.JSX.Element;
|