@office-iss/react-native-win32 0.66.4 → 0.67.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/.eslintignore +2 -0
- package/.flowconfig +1 -1
- package/CHANGELOG.json +228 -46
- package/CHANGELOG.md +102 -25
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
- package/Libraries/Animated/AnimatedEvent.js +23 -4
- package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
- package/Libraries/Animated/components/AnimatedImage.js +3 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
- package/Libraries/Animated/components/AnimatedText.js +3 -3
- package/Libraries/Animated/components/AnimatedView.js +1 -3
- package/Libraries/Animated/createAnimatedComponent.js +3 -34
- package/Libraries/Components/Button/ButtonWin32.js +2 -2
- package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
- package/Libraries/Components/EnterString.win32.js +3 -3
- package/Libraries/Components/EnterString.win32.js.map +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +2 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
- package/Libraries/Components/ScrollView/ScrollView.js +17 -16
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
- package/Libraries/Components/Text/Tests/TextWin32Test.d.ts +0 -1
- package/Libraries/Components/Text/TextWin32.Props.d.ts +2 -2
- package/Libraries/Components/Text/TextWin32.Props.js.map +1 -1
- package/Libraries/Components/Text/TextWin32.js +1 -1
- package/Libraries/Components/Text/TextWin32.js.map +1 -1
- package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +0 -1
- package/Libraries/Components/TextInput/TextInput.win32.js +6 -6
- package/Libraries/Components/TextInput/TextInput.win32.js.map +1 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +0 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +1 -1
- package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +2 -2
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js.map +1 -1
- package/Libraries/Components/Touchable/TouchableWin32.js +2 -2
- package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
- package/Libraries/Components/View/Tests/ViewWin32Test.d.ts +0 -1
- package/Libraries/Components/View/View.js +1 -1
- package/Libraries/Components/View/View.win32.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +1 -1
- package/Libraries/Components/View/ViewWin32.Props.d.ts +3 -6
- package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
- package/Libraries/Components/View/ViewWin32.js +5 -5
- package/Libraries/Components/View/ViewWin32.js.map +1 -1
- package/Libraries/Core/ExceptionsManager.js +45 -80
- package/Libraries/Core/ExtendedError.js +0 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpBatchedBridge.js +1 -1
- package/Libraries/Core/setUpGlobals.js +2 -4
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/Image/Image.ios.js +6 -0
- package/Libraries/Image/Image.win32.js +6 -0
- package/Libraries/Image/ImageBackground.js +10 -8
- package/Libraries/Image/ImageProps.js +28 -0
- package/Libraries/Image/Tests/ImageWin32Test.d.ts +0 -1
- package/Libraries/LogBox/Data/LogBoxData.js +18 -19
- package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
- package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
- package/Libraries/NewAppScreen/components/logo.png +0 -0
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
- package/Libraries/PersonaCoin/PersonaCoin.js +3 -2
- package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
- package/Libraries/Pressability/Pressability.js +13 -13
- package/Libraries/Pressability/Pressability.win32.js +13 -13
- package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
- package/Libraries/ReactNative/AppRegistry.js +4 -2
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/normalizeColor.js +2 -2
- package/Libraries/Text/TextProps.js +1 -7
- package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/flow/global.js +45 -0
- package/index.js +15 -10
- package/index.win32.js +15 -10
- package/jest/mockModal.js +31 -0
- package/jest/preprocessor.js +7 -75
- package/jest/setup.js +5 -3
- package/overrides.json +8 -14
- package/package.json +19 -17
- package/rntypes/BatchedBridge.d.ts +23 -0
- package/rntypes/Devtools.d.ts +20 -0
- package/rntypes/LaunchScreen.d.ts +9 -0
- package/rntypes/globals.d.ts +496 -0
- package/rntypes/index.d.ts +9966 -0
- package/rntypes/legacy-properties.d.ts +266 -0
- package/src/Libraries/Components/Text/TextWin32.Props.ts +2 -2
- package/src/Libraries/Components/View/ViewWin32.Props.ts +6 -12
- package/src/rntypes/BatchedBridge.d.ts +23 -0
- package/src/rntypes/Devtools.d.ts +20 -0
- package/src/rntypes/LaunchScreen.d.ts +9 -0
- package/src/rntypes/globals.d.ts +496 -0
- package/src/rntypes/index.d.ts +9966 -0
- package/src/rntypes/legacy-properties.d.ts +266 -0
- package/src/typings-index.ts +11 -4
- package/typings-index.d.ts +3 -1
- package/typings-index.js +7 -5
- package/typings-index.js.map +1 -1
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.win32.js +0 -30
- package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
- package/Libraries/Components/StaticContainer.react.js +0 -51
- package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
- package/Libraries/Interaction/InteractionMixin.js +0 -54
- package/Libraries/ReactNative/queryLayoutByID.js +0 -58
package/Libraries/Share/Share.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
/* eslint no-bitwise: 0 */
|
|
12
12
|
|
|
13
|
-
import
|
|
13
|
+
import _normalizeColor from '@react-native/normalize-color';
|
|
14
14
|
|
|
15
15
|
import type {ColorValue} from './StyleSheet';
|
|
16
16
|
import type {ProcessedColorValue} from './processColor';
|
|
@@ -27,7 +27,7 @@ function normalizeColor(
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
if (typeof color === 'string' || typeof color === 'number') {
|
|
30
|
-
return
|
|
30
|
+
return _normalizeColor(color);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -66,13 +66,7 @@ export type TextProps = $ReadOnly<{|
|
|
|
66
66
|
* Set hyphenation strategy on Android.
|
|
67
67
|
*
|
|
68
68
|
*/
|
|
69
|
-
android_hyphenationFrequency?: ?(
|
|
70
|
-
| 'normal'
|
|
71
|
-
| 'none'
|
|
72
|
-
| 'full'
|
|
73
|
-
| 'high'
|
|
74
|
-
| 'balanced'
|
|
75
|
-
),
|
|
69
|
+
android_hyphenationFrequency?: ?('normal' | 'none' | 'full'),
|
|
76
70
|
children?: ?Node,
|
|
77
71
|
|
|
78
72
|
/**
|
|
@@ -16,7 +16,7 @@ const turboModuleProxy = global.__turboModuleProxy;
|
|
|
16
16
|
|
|
17
17
|
function requireModule<T: TurboModule>(name: string): ?T {
|
|
18
18
|
// Bridgeless mode requires TurboModules
|
|
19
|
-
if (
|
|
19
|
+
if (global.RN$Bridgeless !== true) {
|
|
20
20
|
// Backward compatibility layer during migration.
|
|
21
21
|
const legacyModule = NativeModules[name];
|
|
22
22
|
if (legacyModule != null) {
|
|
@@ -119,7 +119,7 @@ const HMRClient: HMRClientNativeInterface = {
|
|
|
119
119
|
JSON.stringify({
|
|
120
120
|
type: 'log',
|
|
121
121
|
level,
|
|
122
|
-
mode: global.RN$Bridgeless ? 'NOBRIDGE' : 'BRIDGE',
|
|
122
|
+
mode: global.RN$Bridgeless === true ? 'NOBRIDGE' : 'BRIDGE',
|
|
123
123
|
data: data.map(item =>
|
|
124
124
|
typeof item === 'string'
|
|
125
125
|
? item
|
package/flow/global.js
CHANGED
|
@@ -16,8 +16,53 @@
|
|
|
16
16
|
* writeability (`+`) when defining types.
|
|
17
17
|
*/
|
|
18
18
|
declare var global: {
|
|
19
|
+
// setUpGlobals
|
|
20
|
+
+window: typeof global,
|
|
21
|
+
+self: typeof global,
|
|
22
|
+
|
|
23
|
+
// setXHR
|
|
24
|
+
+XMLHttpRequest: typeof XMLHttpRequest,
|
|
25
|
+
+FormData: typeof FormData,
|
|
26
|
+
+fetch: typeof fetch,
|
|
27
|
+
+Headers: typeof Headers,
|
|
28
|
+
+Request: typeof Request,
|
|
29
|
+
+Response: typeof Response,
|
|
30
|
+
+WebSocket: typeof WebSocket,
|
|
31
|
+
+Blob: typeof Blob,
|
|
32
|
+
+File: typeof File,
|
|
33
|
+
+FileReader: typeof FileReader,
|
|
34
|
+
+URL: typeof URL,
|
|
35
|
+
+URLSearchParams: typeof URLSearchParams,
|
|
36
|
+
+AbortController: typeof AbortController,
|
|
37
|
+
+AbortSignal: typeof AbortSignal,
|
|
38
|
+
|
|
39
|
+
// setUpAlert
|
|
40
|
+
+alert: typeof alert,
|
|
41
|
+
|
|
42
|
+
// setUpTimers
|
|
43
|
+
+clearInterval: typeof clearInterval,
|
|
44
|
+
+clearTimeout: typeof clearTimeout,
|
|
45
|
+
+setInterval: typeof setInterval,
|
|
46
|
+
+setTimeout: typeof setTimeout,
|
|
47
|
+
+requestAnimationFrame: typeof requestAnimationFrame,
|
|
48
|
+
+cancelAnimationFrame: typeof cancelAnimationFrame,
|
|
49
|
+
+requestIdleCallback: typeof requestIdleCallback,
|
|
50
|
+
+cancelIdleCallback: typeof cancelIdleCallback,
|
|
51
|
+
+setTimeout: typeof setTimeout,
|
|
52
|
+
// TODO(T97509743): use `typeof` when the next Flow release is available.
|
|
53
|
+
+queueMicrotask: <TArguments: Array<mixed>>(
|
|
54
|
+
jobCallback: (...args: TArguments) => mixed,
|
|
55
|
+
) => void,
|
|
56
|
+
|
|
57
|
+
+console: typeof console,
|
|
58
|
+
|
|
59
|
+
// JavaScript environments specific
|
|
19
60
|
+HermesInternal: ?$HermesInternalType,
|
|
20
61
|
|
|
62
|
+
// Internal-specific
|
|
63
|
+
+__DEV__?: boolean,
|
|
64
|
+
+RN$Bridgeless?: boolean,
|
|
65
|
+
|
|
21
66
|
// Undeclared properties are implicitly `any`.
|
|
22
67
|
[string | symbol]: any,
|
|
23
68
|
};
|
package/index.js
CHANGED
|
@@ -55,7 +55,6 @@ import typeof AppState from './Libraries/AppState/AppState';
|
|
|
55
55
|
import typeof AsyncStorage from './Libraries/Storage/AsyncStorage';
|
|
56
56
|
import typeof BackHandler from './Libraries/Utilities/BackHandler';
|
|
57
57
|
import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
|
|
58
|
-
import typeof DatePickerAndroid from './Libraries/Components/DatePickerAndroid/DatePickerAndroid';
|
|
59
58
|
import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';
|
|
60
59
|
import typeof DevSettings from './Libraries/Utilities/DevSettings';
|
|
61
60
|
import typeof Dimensions from './Libraries/Utilities/Dimensions';
|
|
@@ -297,15 +296,6 @@ module.exports = {
|
|
|
297
296
|
);
|
|
298
297
|
return require('./Libraries/Components/Clipboard/Clipboard');
|
|
299
298
|
},
|
|
300
|
-
get DatePickerAndroid(): DatePickerAndroid {
|
|
301
|
-
warnOnce(
|
|
302
|
-
'DatePickerAndroid-merged',
|
|
303
|
-
'DatePickerAndroid has been merged with DatePickerIOS and will be removed in a future release. ' +
|
|
304
|
-
"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. " +
|
|
305
|
-
'See https://github.com/react-native-datetimepicker/datetimepicker',
|
|
306
|
-
);
|
|
307
|
-
return require('./Libraries/Components/DatePickerAndroid/DatePickerAndroid');
|
|
308
|
-
},
|
|
309
299
|
get DeviceInfo(): DeviceInfo {
|
|
310
300
|
return require('./Libraries/Utilities/DeviceInfo');
|
|
311
301
|
},
|
|
@@ -717,4 +707,19 @@ if (__DEV__) {
|
|
|
717
707
|
);
|
|
718
708
|
},
|
|
719
709
|
});
|
|
710
|
+
/* $FlowFixMe[prop-missing] This is intentional: Flow will error when
|
|
711
|
+
* attempting to access DatePickerAndroid. */
|
|
712
|
+
/* $FlowFixMe[invalid-export] This is intentional: Flow will error when
|
|
713
|
+
* attempting to access DatePickerAndroid. */
|
|
714
|
+
Object.defineProperty(module.exports, 'DatePickerAndroid', {
|
|
715
|
+
configurable: true,
|
|
716
|
+
get() {
|
|
717
|
+
invariant(
|
|
718
|
+
false,
|
|
719
|
+
'DatePickerAndroid has been removed from React Native. ' +
|
|
720
|
+
"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. " +
|
|
721
|
+
'See https://github.com/react-native-datetimepicker/datetimepicker',
|
|
722
|
+
);
|
|
723
|
+
},
|
|
724
|
+
});
|
|
720
725
|
}
|
package/index.win32.js
CHANGED
|
@@ -55,7 +55,6 @@ import typeof AppState from './Libraries/AppState/AppState';
|
|
|
55
55
|
import typeof AsyncStorage from './Libraries/Storage/AsyncStorage';
|
|
56
56
|
import typeof BackHandler from './Libraries/Utilities/BackHandler';
|
|
57
57
|
import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard';
|
|
58
|
-
import typeof DatePickerAndroid from './Libraries/Components/DatePickerAndroid/DatePickerAndroid';
|
|
59
58
|
import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo';
|
|
60
59
|
import typeof DevSettings from './Libraries/Utilities/DevSettings';
|
|
61
60
|
import typeof Dimensions from './Libraries/Utilities/Dimensions';
|
|
@@ -303,15 +302,6 @@ module.exports = {
|
|
|
303
302
|
);
|
|
304
303
|
return require('./Libraries/Components/Clipboard/Clipboard');
|
|
305
304
|
},
|
|
306
|
-
get DatePickerAndroid(): DatePickerAndroid {
|
|
307
|
-
warnOnce(
|
|
308
|
-
'DatePickerAndroid-merged',
|
|
309
|
-
'DatePickerAndroid has been merged with DatePickerIOS and will be removed in a future release. ' +
|
|
310
|
-
"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. " +
|
|
311
|
-
'See https://github.com/react-native-datetimepicker/datetimepicker',
|
|
312
|
-
);
|
|
313
|
-
return require('./Libraries/Components/DatePickerAndroid/DatePickerAndroid');
|
|
314
|
-
},
|
|
315
305
|
get DeviceInfo(): DeviceInfo {
|
|
316
306
|
return require('./Libraries/Utilities/DeviceInfo');
|
|
317
307
|
},
|
|
@@ -758,4 +748,19 @@ if (__DEV__) {
|
|
|
758
748
|
);
|
|
759
749
|
},
|
|
760
750
|
});
|
|
751
|
+
/* $FlowFixMe[prop-missing] This is intentional: Flow will error when
|
|
752
|
+
* attempting to access DatePickerAndroid. */
|
|
753
|
+
/* $FlowFixMe[invalid-export] This is intentional: Flow will error when
|
|
754
|
+
* attempting to access DatePickerAndroid. */
|
|
755
|
+
Object.defineProperty(module.exports, 'DatePickerAndroid', {
|
|
756
|
+
configurable: true,
|
|
757
|
+
get() {
|
|
758
|
+
invariant(
|
|
759
|
+
false,
|
|
760
|
+
'DatePickerAndroid has been removed from React Native. ' +
|
|
761
|
+
"It can now be installed and imported from '@react-native-community/datetimepicker' instead of 'react-native'. " +
|
|
762
|
+
'See https://github.com/react-native-datetimepicker/datetimepicker',
|
|
763
|
+
);
|
|
764
|
+
},
|
|
765
|
+
});
|
|
761
766
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/* eslint-env jest */
|
|
12
|
+
|
|
13
|
+
'use strict';
|
|
14
|
+
|
|
15
|
+
const React = require('react');
|
|
16
|
+
const Modal = require('../Libraries/Modal/Modal');
|
|
17
|
+
|
|
18
|
+
function mockModal(BaseComponent: $FlowFixMe) {
|
|
19
|
+
class ModalMock extends BaseComponent {
|
|
20
|
+
render(): React.Element<typeof Modal> {
|
|
21
|
+
return (
|
|
22
|
+
<BaseComponent {...this.props}>
|
|
23
|
+
{this.props.visible !== true ? null : this.props.children}
|
|
24
|
+
</BaseComponent>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return ModalMock;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = (mockModal: $FlowFixMe);
|
package/jest/preprocessor.js
CHANGED
|
@@ -13,42 +13,10 @@
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
15
|
const babelRegisterOnly = require('metro-babel-register');
|
|
16
|
-
const nullthrows = require('nullthrows');
|
|
17
16
|
const createCacheKeyFunction = require('@jest/create-cache-key-function')
|
|
18
17
|
.default;
|
|
19
|
-
const t = require('@babel/types');
|
|
20
|
-
const {statements} = require('@babel/template').default;
|
|
21
18
|
|
|
22
|
-
const
|
|
23
|
-
const importAll = '__importAll__';
|
|
24
|
-
|
|
25
|
-
// prelude
|
|
26
|
-
const importPrelude = statements(`
|
|
27
|
-
function ${importDefault}(moduleId) {
|
|
28
|
-
const exports = require(moduleId);
|
|
29
|
-
|
|
30
|
-
if (exports && exports.__esModule) {
|
|
31
|
-
return exports.default;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return exports;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
function ${importAll}(moduleId) {
|
|
38
|
-
const exports = require(moduleId);
|
|
39
|
-
|
|
40
|
-
if (exports && exports.__esModule) {
|
|
41
|
-
return exports;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return Object.assign({}, exports, {default: exports});
|
|
45
|
-
};
|
|
46
|
-
`);
|
|
47
|
-
|
|
48
|
-
const {
|
|
49
|
-
transformSync: babelTransformSync,
|
|
50
|
-
transformFromAstSync: babelTransformFromAstSync,
|
|
51
|
-
} = require('@babel/core');
|
|
19
|
+
const {transformSync: babelTransformSync} = require('@babel/core');
|
|
52
20
|
const generate = require('@babel/generator').default;
|
|
53
21
|
|
|
54
22
|
const nodeFiles = new RegExp(
|
|
@@ -73,13 +41,13 @@ module.exports = {
|
|
|
73
41
|
}).code;
|
|
74
42
|
}
|
|
75
43
|
|
|
76
|
-
|
|
44
|
+
const {ast} = transformer.transform({
|
|
77
45
|
filename: file,
|
|
78
46
|
options: {
|
|
79
47
|
ast: true, // needed for open source (?) https://github.com/facebook/react-native/commit/f8d6b97140cffe8d18b2558f94570c8d1b410d5c#r28647044
|
|
80
48
|
dev: true,
|
|
81
49
|
enableBabelRuntime: false,
|
|
82
|
-
experimentalImportSupport:
|
|
50
|
+
experimentalImportSupport: false,
|
|
83
51
|
globalPrefix: '',
|
|
84
52
|
hot: false,
|
|
85
53
|
inlineRequires: true,
|
|
@@ -111,6 +79,10 @@ module.exports = {
|
|
|
111
79
|
[require('@babel/plugin-transform-regenerator')],
|
|
112
80
|
[require('@babel/plugin-transform-sticky-regex')],
|
|
113
81
|
[require('@babel/plugin-transform-unicode-regex')],
|
|
82
|
+
[
|
|
83
|
+
require('@babel/plugin-transform-modules-commonjs'),
|
|
84
|
+
{strict: false, allowTopLevelThis: true},
|
|
85
|
+
],
|
|
114
86
|
[require('@babel/plugin-transform-classes')],
|
|
115
87
|
[require('@babel/plugin-transform-arrow-functions')],
|
|
116
88
|
[require('@babel/plugin-transform-spread')],
|
|
@@ -127,46 +99,6 @@ module.exports = {
|
|
|
127
99
|
],
|
|
128
100
|
});
|
|
129
101
|
|
|
130
|
-
// We're not using @babel/plugin-transform-modules-commonjs so
|
|
131
|
-
// we need to add 'use strict' manually
|
|
132
|
-
const directives = ast.program.directives;
|
|
133
|
-
|
|
134
|
-
if (
|
|
135
|
-
ast.program.sourceType === 'module' &&
|
|
136
|
-
(directives == null ||
|
|
137
|
-
directives.findIndex(d => d.value.value === 'use strict') === -1)
|
|
138
|
-
) {
|
|
139
|
-
ast.program.directives = [
|
|
140
|
-
...(directives || []),
|
|
141
|
-
t.directive(t.directiveLiteral('use strict')),
|
|
142
|
-
];
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Postprocess the transformed module to handle ESM and inline requires.
|
|
146
|
-
// We need to do this in a separate pass to avoid issues tracking references.
|
|
147
|
-
const babelTransformResult = babelTransformFromAstSync(ast, src, {
|
|
148
|
-
ast: true,
|
|
149
|
-
retainLines: true,
|
|
150
|
-
plugins: [
|
|
151
|
-
[
|
|
152
|
-
require('metro-transform-plugins').importExportPlugin,
|
|
153
|
-
{importDefault, importAll},
|
|
154
|
-
],
|
|
155
|
-
[
|
|
156
|
-
require('babel-preset-fbjs/plugins/inline-requires.js'),
|
|
157
|
-
{inlineableCalls: [importDefault, importAll]},
|
|
158
|
-
],
|
|
159
|
-
],
|
|
160
|
-
sourceType: 'module',
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
ast = nullthrows(babelTransformResult.ast);
|
|
164
|
-
|
|
165
|
-
// Inject import helpers *after* running the inline-requires transform,
|
|
166
|
-
// because otherwise it will assume they are user code and bail out of
|
|
167
|
-
// inlining calls to them.
|
|
168
|
-
ast.program.body.unshift(...importPrelude());
|
|
169
|
-
|
|
170
102
|
return generate(
|
|
171
103
|
ast,
|
|
172
104
|
// $FlowFixMe[prop-missing] Error found when improving flow typing for libs
|
package/jest/setup.js
CHANGED
|
@@ -110,9 +110,11 @@ jest
|
|
|
110
110
|
getNativeRef: jest.fn(),
|
|
111
111
|
}),
|
|
112
112
|
)
|
|
113
|
-
.mock('../Libraries/Modal/Modal', () =>
|
|
114
|
-
mockComponent('../Libraries/Modal/Modal')
|
|
115
|
-
|
|
113
|
+
.mock('../Libraries/Modal/Modal', () => {
|
|
114
|
+
const baseComponent = mockComponent('../Libraries/Modal/Modal');
|
|
115
|
+
const mockModal = jest.requireActual('./mockModal');
|
|
116
|
+
return mockModal(baseComponent);
|
|
117
|
+
})
|
|
116
118
|
.mock('../Libraries/Components/View/View', () =>
|
|
117
119
|
mockComponent('../Libraries/Components/View/View', MockNativeMethods),
|
|
118
120
|
)
|
package/overrides.json
CHANGED
|
@@ -4,21 +4,22 @@
|
|
|
4
4
|
"src/**"
|
|
5
5
|
],
|
|
6
6
|
"excludePatterns": [
|
|
7
|
-
"**/__snapshots__/**"
|
|
7
|
+
"**/__snapshots__/**",
|
|
8
|
+
"src/rntypes/**"
|
|
8
9
|
],
|
|
9
|
-
"baseVersion": "0.
|
|
10
|
+
"baseVersion": "0.67.1",
|
|
10
11
|
"overrides": [
|
|
11
12
|
{
|
|
12
13
|
"type": "derived",
|
|
13
14
|
"file": ".flowconfig",
|
|
14
15
|
"baseFile": ".flowconfig",
|
|
15
|
-
"baseHash": "
|
|
16
|
+
"baseHash": "1920d4cf4c839eb21889eb28e4596fbbfcc4a0cd"
|
|
16
17
|
},
|
|
17
18
|
{
|
|
18
19
|
"type": "derived",
|
|
19
20
|
"file": "src/index.win32.js",
|
|
20
21
|
"baseFile": "index.js",
|
|
21
|
-
"baseHash": "
|
|
22
|
+
"baseHash": "3f55b3104a728f68008ba473bb64bbe8fc7ad8c9"
|
|
22
23
|
},
|
|
23
24
|
{
|
|
24
25
|
"type": "patch",
|
|
@@ -55,13 +56,6 @@
|
|
|
55
56
|
"baseHash": "a9a4a6c92de922a11f8b81642b1bf1270d0b7b96",
|
|
56
57
|
"issue": 4378
|
|
57
58
|
},
|
|
58
|
-
{
|
|
59
|
-
"type": "copy",
|
|
60
|
-
"file": "src/Libraries/Components/DatePickerAndroid/DatePickerAndroid.win32.js",
|
|
61
|
-
"baseFile": "Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js",
|
|
62
|
-
"baseHash": "09d82215c57ca5873a53523a63006daebf07ffbc",
|
|
63
|
-
"issue": 4378
|
|
64
|
-
},
|
|
65
59
|
{
|
|
66
60
|
"type": "copy",
|
|
67
61
|
"file": "src/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js",
|
|
@@ -196,7 +190,7 @@
|
|
|
196
190
|
"type": "patch",
|
|
197
191
|
"file": "src/Libraries/Components/View/View.win32.js",
|
|
198
192
|
"baseFile": "Libraries/Components/View/View.js",
|
|
199
|
-
"baseHash": "
|
|
193
|
+
"baseHash": "689895e8755aed42e913460d1fa964907a74f06c"
|
|
200
194
|
},
|
|
201
195
|
{
|
|
202
196
|
"type": "patch",
|
|
@@ -230,7 +224,7 @@
|
|
|
230
224
|
"type": "derived",
|
|
231
225
|
"file": "src/Libraries/Image/Image.win32.js",
|
|
232
226
|
"baseFile": "Libraries/Image/Image.ios.js",
|
|
233
|
-
"baseHash": "
|
|
227
|
+
"baseHash": "c8d495e707fc61bbfb929b9a343f5460c3b60c28",
|
|
234
228
|
"issue": 4320
|
|
235
229
|
},
|
|
236
230
|
{
|
|
@@ -395,7 +389,7 @@
|
|
|
395
389
|
"type": "patch",
|
|
396
390
|
"file": "src/Libraries/Pressability/Pressability.win32.js",
|
|
397
391
|
"baseFile": "Libraries/Pressability/Pressability.js",
|
|
398
|
-
"baseHash": "
|
|
392
|
+
"baseHash": "05c53428a4b7b142fabb6833ecf54ba88c0aa05d",
|
|
399
393
|
"issue": 6240
|
|
400
394
|
},
|
|
401
395
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@office-iss/react-native-win32",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.0",
|
|
4
4
|
"description": "Implementation of react native on top of Office's Win32 platform.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./index.win32.js",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"@react-native-community/cli": "^6.0.0",
|
|
26
26
|
"@react-native-community/cli-platform-android": "^6.0.0",
|
|
27
27
|
"@react-native-community/cli-platform-ios": "^6.0.0",
|
|
28
|
-
"@react-native-windows/virtualized-list": "0.
|
|
28
|
+
"@react-native-windows/virtualized-list": "0.67.0",
|
|
29
29
|
"@react-native/assets": "1.0.0",
|
|
30
|
-
"@react-native/normalize-color": "
|
|
30
|
+
"@react-native/normalize-color": "2.0.0",
|
|
31
31
|
"@react-native/polyfills": "2.0.0",
|
|
32
32
|
"abort-controller": "^3.0.0",
|
|
33
33
|
"anser": "^1.4.9",
|
|
@@ -37,7 +37,6 @@
|
|
|
37
37
|
"hermes-engine": "~0.9.0",
|
|
38
38
|
"invariant": "^2.2.4",
|
|
39
39
|
"jsc-android": "^250230.2.1",
|
|
40
|
-
"metro-babel-register": "0.66.2",
|
|
41
40
|
"metro-react-native-babel-transformer": "0.66.2",
|
|
42
41
|
"metro-runtime": "0.66.2",
|
|
43
42
|
"metro-source-map": "0.66.2",
|
|
@@ -46,8 +45,8 @@
|
|
|
46
45
|
"promise": "^8.0.3",
|
|
47
46
|
"prop-types": "^15.7.2",
|
|
48
47
|
"react-clone-referenced-element": "^1.0.1",
|
|
49
|
-
"react-devtools-core": "
|
|
50
|
-
"react-native-codegen": "^0.0.
|
|
48
|
+
"react-devtools-core": "4.19.1",
|
|
49
|
+
"react-native-codegen": "^0.0.8",
|
|
51
50
|
"react-refresh": "^0.4.0",
|
|
52
51
|
"regenerator-runtime": "^0.13.2",
|
|
53
52
|
"scheduler": "^0.20.2",
|
|
@@ -57,36 +56,39 @@
|
|
|
57
56
|
"ws": "^6.1.4"
|
|
58
57
|
},
|
|
59
58
|
"devDependencies": {
|
|
60
|
-
"@rnw-scripts/eslint-config": "1.1.
|
|
61
|
-
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.0.
|
|
59
|
+
"@rnw-scripts/eslint-config": "1.1.8",
|
|
60
|
+
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.0.2",
|
|
62
61
|
"@rnx-kit/jest-preset": "^0.1.0",
|
|
63
62
|
"@types/node": "^14.14.22",
|
|
64
63
|
"@types/prop-types": "15.7.1",
|
|
65
|
-
"@types/react": "
|
|
66
|
-
"@types/react-native": "^0.
|
|
64
|
+
"@types/react": "^17.0.21",
|
|
65
|
+
"@types/react-native": "^0.65.0",
|
|
67
66
|
"babel-eslint": "^10.1.0",
|
|
68
67
|
"eslint": "7.12.0",
|
|
69
|
-
"flow-bin": "^0.
|
|
68
|
+
"flow-bin": "^0.162.0",
|
|
70
69
|
"jscodeshift": "^0.11.0",
|
|
71
70
|
"just-scripts": "^1.3.3",
|
|
72
71
|
"prettier": "1.19.1",
|
|
73
72
|
"react": "17.0.2",
|
|
74
|
-
"react-native": "0.
|
|
75
|
-
"react-native-platform-override": "^1.
|
|
73
|
+
"react-native": "0.67.1",
|
|
74
|
+
"react-native-platform-override": "^1.5.1",
|
|
76
75
|
"react-shallow-renderer": "16.14.1",
|
|
77
|
-
"typescript": "^
|
|
76
|
+
"typescript": "^4.4.4"
|
|
78
77
|
},
|
|
79
78
|
"peerDependencies": {
|
|
80
79
|
"react": "17.0.2",
|
|
81
|
-
"react-native": "^0.
|
|
80
|
+
"react-native": "^0.67.0"
|
|
82
81
|
},
|
|
83
82
|
"beachball": {
|
|
84
|
-
"defaultNpmTag": "
|
|
83
|
+
"defaultNpmTag": "latest",
|
|
85
84
|
"disallowedChangeTypes": [
|
|
86
85
|
"major",
|
|
87
86
|
"minor",
|
|
88
87
|
"prerelease"
|
|
89
88
|
]
|
|
90
89
|
},
|
|
91
|
-
"promoteRelease": true
|
|
90
|
+
"promoteRelease": true,
|
|
91
|
+
"engines": {
|
|
92
|
+
"node": ">= 12.0.0"
|
|
93
|
+
}
|
|
92
94
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
interface SpyData {
|
|
2
|
+
type: number;
|
|
3
|
+
module?: string | undefined;
|
|
4
|
+
method: string | number;
|
|
5
|
+
args: any[];
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
declare class MessageQueue {
|
|
9
|
+
static spy(spyOrToggle: boolean | ((data: SpyData) => void)): void;
|
|
10
|
+
|
|
11
|
+
getCallableModule(name: string): Object;
|
|
12
|
+
registerCallableModule(name: string, module: Object): void;
|
|
13
|
+
registerLazyCallableModule(name: string, factory: () => Object): void;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare module 'react-native/Libraries/BatchedBridge/BatchedBridge' {
|
|
17
|
+
const BatchedBridge: MessageQueue;
|
|
18
|
+
export default BatchedBridge;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare module 'react-native/Libraries/BatchedBridge/MessageQueue' {
|
|
22
|
+
export default MessageQueue;
|
|
23
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
declare module 'react-native/Libraries/Core/Devtools/parseErrorStack' {
|
|
2
|
+
export type StackFrame = {
|
|
3
|
+
file: string;
|
|
4
|
+
methodName: string;
|
|
5
|
+
lineNumber: number;
|
|
6
|
+
column: number | null;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export interface ExtendedError extends Error {
|
|
10
|
+
framesToPop?: number | undefined;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default function parseErrorStack(error: ExtendedError): StackFrame[];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare module 'react-native/Libraries/Core/Devtools/symbolicateStackTrace' {
|
|
17
|
+
import { StackFrame } from 'react-native/Libraries/Core/Devtools/parseErrorStack';
|
|
18
|
+
|
|
19
|
+
export default function symbolicateStackTrace(stack: ReadonlyArray<StackFrame>): Promise<StackFrame[]>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Adds the JSX elements used in the launch screen.
|
|
2
|
+
|
|
3
|
+
declare module 'react-native/Libraries/NewAppScreen' {
|
|
4
|
+
export const Header: any;
|
|
5
|
+
export const LearnMoreLinks: any;
|
|
6
|
+
export const Colors: any;
|
|
7
|
+
export const DebugInstructions: any;
|
|
8
|
+
export const ReloadInstructions: any;
|
|
9
|
+
}
|