From aa84a8793fb00fdf10c34e3fb8f05933000f191b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E9=98=B3?= Date: Tue, 2 Apr 2024 14:26:02 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E5=90=8C=E6=AD=A5harmony=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E5=BC=80=E5=8F=91=E5=88=86=E6=94=AF=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../build/config/harmony-definition.json | 920 +++++++++++++----- .../taro-platform-harmony-hybrid/package.json | 3 +- .../src/api/apis/NativeApi.ts | 510 +++++++++- .../src/api/apis/base/crypto.ts | 12 + .../src/api/apis/base/performance.ts | 156 +++ .../src/api/apis/base/system.ts | 95 +- .../api/apis/base/update/getUpdateManager.ts | 14 + .../src/api/apis/base/update/index.ts | 9 + .../src/api/apis/base/weapp/app-event.ts | 251 +++++ .../src/api/apis/canvas/canvasGetImageData.ts | 35 + .../src/api/apis/canvas/canvasPutImageData.ts | 30 + .../src/api/apis/canvas/index.ts | 64 +- .../api/apis/device/accelerometer/index.ts | 4 + .../accelerometer/offAccelerometerChange.ts | 24 + .../accelerometer/onAccelerometerChange.ts | 28 + .../accelerometer/startAccelerometer.ts | 42 + .../device/accelerometer/stopAccelerometer.ts | 35 + .../src/api/apis/device/accessibility.ts | 6 + .../src/api/apis/device/battery.ts | 14 + .../bluetooth-ble/closeBLEConnection.ts | 60 ++ .../bluetooth-ble/createBLEConnection.ts | 62 ++ .../getBLEDeviceCharacteristics.ts | 70 ++ .../device/bluetooth-ble/getBLEDeviceRSSI.ts | 55 ++ .../bluetooth-ble/getBLEDeviceServices.ts | 56 ++ .../api/apis/device/bluetooth-ble/index.ts | 45 + .../notifyBLECharacteristicValueChange.ts | 97 ++ .../onBLECharacteristicValueChange.ts | 24 + .../onBLEConnectionStateChange.ts | 24 + .../readBLECharacteristicValue.ts | 89 ++ .../apis/device/bluetooth-ble/setBLEMTU.ts | 86 ++ .../writeBLECharacteristicValue.ts | 106 ++ .../api/apis/device/bluetooth-peripheral.ts | 26 + .../device/bluetooth/closeBluetoothAdapter.ts | 41 + .../bluetooth/getBluetoothAdapterState.ts | 43 + .../device/bluetooth/getBluetoothDevices.ts | 37 + .../bluetooth/getConnectedBluetoothDevices.ts | 42 + .../src/api/apis/device/bluetooth/index.ts | 24 + .../offBluetoothAdapterStateChange.ts | 23 + .../bluetooth/offBluetoothDeviceFound.ts | 30 + .../onBluetoothAdapterStateChange.ts | 25 + .../bluetooth/onBluetoothDeviceFound.ts | 31 + .../device/bluetooth/openBluetoothAdapter.ts | 41 + .../startBluetoothDevicesDiscovery.ts | 52 + .../stopBluetoothDevicesDiscovery.ts | 42 + .../src/api/apis/device/calendar.ts | 15 + .../src/api/apis/device/clipboard.ts | 21 + .../src/api/apis/device/compass/index.ts | 4 + .../apis/device/compass/offCompassChange.ts | 33 + .../apis/device/compass/onCompassChange.ts | 42 + .../api/apis/device/compass/startCompass.ts | 39 + .../api/apis/device/compass/stopCompass.ts | 40 + .../apis/device/contact/addPhoneContact.ts | 112 +++ .../src/api/apis/device/contact/index.ts | 7 + .../src/api/apis/device/crypto.ts | 6 + .../src/api/apis/device/gyroscope/index.ts | 9 + .../device/gyroscope/onGyroscopeChange.ts | 14 + .../apis/device/gyroscope/startGyroscope.ts | 39 + .../apis/device/gyroscope/stopGyroscope.ts | 37 + .../src/api/apis/device/iBeacon.ts | 53 + .../src/api/apis/device/index.ts | 23 +- .../src/api/apis/device/keyBoard/index.ts | 8 + .../keyBoard/offKeyboardHeightChange.ts | 22 + .../device/keyBoard/onKeyboardHeightChange.ts | 27 + .../src/api/apis/device/memory/index.ts | 4 + .../apis/device/memory/offMemoryWarning.ts | 17 + .../api/apis/device/memory/onMemoryWarning.ts | 20 + .../src/api/apis/device/motion.ts | 29 + .../src/api/apis/device/network.ts | 47 + .../src/api/apis/device/nfc.ts | 102 ++ .../src/api/apis/device/scan.ts | 43 + .../apis/device/screen/getScreenBrightness.ts | 35 + .../src/api/apis/device/screen/index.ts | 31 + .../device/screen/offUserCaptureScreen.ts | 33 + .../apis/device/screen/setScreenBrightness.ts | 51 + .../src/api/apis/device/sms.ts | 7 + .../src/api/apis/device/vibrate.ts | 43 + .../src/api/apis/device/wifi/connectWifi.ts | 79 ++ .../api/apis/device/wifi/getConnectedWifi.ts | 33 + .../src/api/apis/device/wifi/getWifiList.ts | 32 + .../src/api/apis/device/wifi/index.ts | 24 + .../api/apis/device/wifi/offGetWifiList.ts | 22 + .../api/apis/device/wifi/offWifiConnected.ts | 39 + .../wifi/offWifiConnectedWithPartialInfo.ts | 28 + .../src/api/apis/device/wifi/onGetWifiList.ts | 23 + .../api/apis/device/wifi/onWifiConnected.ts | 40 + .../wifi/onWifiConnectedWithPartialInfo.ts | 29 + .../src/api/apis/device/wifi/startWifi.ts | 32 + .../src/api/apis/device/wifi/stopWifi.ts | 32 + .../src/api/apis/files/getFileInfo.ts | 64 ++ .../api/apis/files/getFileSystemManager.ts | 23 + .../src/api/apis/files/getSavedFileInfo.ts | 60 ++ .../src/api/apis/files/getSavedFileList.ts | 44 + .../src/api/apis/files/index.ts | 20 +- .../src/api/apis/files/openDocument.ts | 51 + .../src/api/apis/files/removeSavedFile.ts | 51 + .../src/api/apis/files/saveFile.ts | 60 ++ .../src/api/apis/framework/index.ts | 5 + .../src/api/apis/index.ts | 59 ++ .../api/apis/interface/NativeUpdateManager.ts | 32 + .../src/api/apis/location/getLocation.ts | 2 +- .../src/api/apis/location/index.ts | 14 + .../api/apis/location/offLocationChange.ts | 43 + .../apis/location/offLocationChangeError.ts | 20 + .../src/api/apis/location/onLocationChange.ts | 40 + .../apis/location/onLocationChangeError.ts | 21 + .../api/apis/location/startLocationUpdate.ts | 31 + .../location/startLocationUpdateBackground.ts | 31 + .../api/apis/location/stopLocationUpdate.ts | 31 + .../src/api/apis/media/EditorContext.ts | 304 ++++++ .../src/api/apis/media/audio/index.ts | 71 ++ .../api/apis/media/background-audio/index.ts | 71 ++ .../src/api/apis/media/camera.ts | 24 + .../src/api/apis/media/image/compressImage.ts | 61 ++ .../src/api/apis/media/image/index.ts | 28 +- .../src/api/apis/media/image/previewMedia.ts | 115 +++ .../src/api/apis/media/index.ts | 22 + .../api/apis/media/live/LivePlayerContext.ts | 141 +++ .../src/api/apis/media/live/index.ts | 16 + .../src/api/apis/media/map/MapContext.ts | 479 +++++++++ .../src/api/apis/media/map/index.ts | 16 + .../src/api/apis/media/media-recorder.ts | 12 + .../src/api/apis/media/recorder.ts | 34 + .../src/api/apis/media/video-decoder.ts | 12 + .../src/api/apis/media/video-processing.ts | 18 + .../src/api/apis/media/video/chooseVideo.ts | 91 ++ .../src/api/apis/media/video/compressVideo.ts | 108 ++ .../src/api/apis/media/video/index.ts | 17 + .../api/apis/media/video/openVideoEditor.ts | 60 ++ .../media/video/saveVideoToPhotosAlbum.ts | 47 + .../src/api/apis/media/voip.ts | 111 +++ .../src/api/apis/network/index.ts | 4 + .../src/api/apis/network/mdns.ts | 69 ++ .../src/api/apis/network/request/index.ts | 14 + .../src/api/apis/network/tcp.ts | 12 + .../src/api/apis/network/udp.ts | 12 + .../src/api/apis/network/websocket/index.ts | 56 ++ .../src/api/apis/open-api/account.ts | 12 + .../src/api/apis/open-api/address.ts | 6 + .../src/api/apis/open-api/authorize.ts | 14 + .../src/api/apis/open-api/card.ts | 13 + .../src/api/apis/open-api/channels-live.ts | 56 ++ .../src/api/apis/open-api/customer-service.ts | 6 + .../src/api/apis/open-api/device-voip.ts | 14 + .../src/api/apis/open-api/facial.ts | 20 + .../src/api/apis/open-api/favorites.ts | 20 + .../src/api/apis/open-api/group.ts | 6 + .../src/api/apis/open-api/index.ts | 40 + .../src/api/apis/open-api/invoice.ts | 13 + .../src/api/apis/open-api/license-plate.ts | 6 + .../src/api/apis/open-api/login/index.ts | 13 + .../src/api/apis/open-api/red-package.ts | 6 + .../src/api/apis/open-api/settings/index.ts | 17 +- .../soter/checkIsSoterEnrolledInDevice.ts | 55 ++ .../checkIsSupportSoterAuthentication.ts | 39 + .../src/api/apis/open-api/soter/index.ts | 3 + .../soter/startSoterAuthentication.ts | 66 ++ .../api/apis/open-api/subscribe-message.ts | 30 + .../apis/open-api/user-info/getUserInfo.ts | 7 + .../src/api/apis/open-api/user-info/index.ts | 7 + .../src/api/apis/open-api/werun.ts | 13 + .../src/api/apis/osChannelApi.ts | 389 ++++++++ .../src/api/apis/payment/index.ts | 15 + .../src/api/apis/payment/requestPayment.ts | 18 + .../src/api/apis/qq/index.ts | 6 + .../src/api/apis/request.ts | 219 +++++ .../src/api/apis/route/index.ts | 6 + .../src/api/apis/share/index.ts | 72 ++ .../src/api/apis/storage/background-fetch.ts | 15 + .../apis/storage/getBackgroundFetchData.ts | 18 + .../src/api/apis/storage/index.ts | 279 ++++++ .../apis/storage/setBackgroundFetchToken.ts | 50 + .../src/api/apis/storage/util.ts | 21 + .../src/api/apis/swan/index.ts | 33 + .../src/api/apis/ui/animation/index.ts | 17 + .../src/api/apis/ui/background.ts | 13 + .../src/api/apis/ui/fonts.ts | 8 + .../src/api/apis/ui/index.ts | 11 +- .../src/api/apis/ui/interaction/index.ts | 72 ++ .../src/api/apis/ui/navigation-bar/index.ts | 101 +- .../src/api/apis/ui/pull-down-refresh.ts | 13 + .../src/api/apis/ui/scroll/index.ts | 14 + .../src/api/apis/ui/sticky.ts | 7 + .../src/api/apis/ui/tab-bar.ts | 65 ++ .../src/api/apis/ui/window.ts | 27 + .../src/api/apis/worker/index.ts | 12 + .../src/api/apis/wxml/index.ts | 28 + .../src/api/apis/wxml/nodesRef.ts | 7 + .../src/api/index.ts | 7 +- 188 files changed, 9408 insertions(+), 253 deletions(-) create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/base/update/getUpdateManager.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/base/update/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasGetImageData.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasPutImageData.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/offAccelerometerChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/onAccelerometerChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/stopAccelerometer.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLECharacteristicValueChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLEConnectionStateChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/setBLEMTU.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/closeBluetoothAdapter.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothAdapterState.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothDevices.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getConnectedBluetoothDevices.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothAdapterStateChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/openBluetoothAdapter.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/offCompassChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/startCompass.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/stopCompass.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/addPhoneContact.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/startGyroscope.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/stopGyroscope.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/offKeyboardHeightChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/onKeyboardHeightChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/getScreenBrightness.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/offUserCaptureScreen.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/setScreenBrightness.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/vibrate.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/connectWifi.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getConnectedWifi.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getWifiList.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offGetWifiList.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onGetWifiList.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnected.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnectedWithPartialInfo.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/startWifi.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/stopWifi.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileInfo.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileInfo.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileList.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/files/openDocument.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/files/removeSavedFile.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/files/saveFile.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/background-audio/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/camera.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/image/compressImage.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/image/previewMedia.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/live/LivePlayerContext.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/live/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/map/MapContext.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/map/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/media-recorder.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/recorder.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/video-decoder.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/video-processing.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/video/chooseVideo.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/video/compressVideo.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/video/openVideoEditor.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/video/saveVideoToPhotosAlbum.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/media/voip.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/network/mdns.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/network/tcp.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/network/udp.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/network/websocket/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/account.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/address.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/authorize.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/card.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/channels-live.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/customer-service.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/device-voip.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/facial.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/favorites.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/group.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/invoice.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/license-plate.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/red-package.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSoterEnrolledInDevice.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSupportSoterAuthentication.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/startSoterAuthentication.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/subscribe-message.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/open-api/werun.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/osChannelApi.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/payment/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/payment/requestPayment.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/qq/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/request.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/share/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/storage/background-fetch.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/storage/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/swan/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/animation/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/background.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/fonts.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/interaction/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/pull-down-refresh.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/scroll/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/sticky.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/tab-bar.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ui/window.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/worker/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/wxml/nodesRef.ts diff --git a/packages/taro-platform-harmony-hybrid/build/config/harmony-definition.json b/packages/taro-platform-harmony-hybrid/build/config/harmony-definition.json index eee4abb63daf..4b37aaee8b10 100644 --- a/packages/taro-platform-harmony-hybrid/build/config/harmony-definition.json +++ b/packages/taro-platform-harmony-hybrid/build/config/harmony-definition.json @@ -71,7 +71,11 @@ "onTimeUpdate": true }, "CacheManager": false, - "CameraContext": false, + "CameraContext": { + "startRecord": true, + "stopRecord": true, + "takePhoto": true + }, "CameraFrameListener": false, "Canvas": { "cancelAnimationFrame": true, @@ -131,7 +135,21 @@ }, "Color": false, "DB": false, - "EditorContext": false, + "EditorContext": { + "blur": true, + "clear": true, + "format": true, + "getContents": true, + "getSelectionText": true, + "insertDivider": true, + "insertImage": true, + "insertText": true, + "redo": true, + "removeFormat": true, + "scrollIntoView": true, + "setContents": true, + "undo": true + }, "EntryList": false, "EventChannel": false, "FileSystemManager": { @@ -212,12 +230,40 @@ "relativeTo": true, "relativeToViewport": true }, - "InterstitialAd": false, + "InterstitialAd": true, "IsoDep": false, - "LivePlayerContext": false, + "LivePlayerContext": { + "exitFullScreen": true, + "exitPictureInPicture": true, + "mute": true, + "pause": true, + "play": true, + "requestFullScreen": true, + "requestPictureInPicture": true, + "resume": true, + "snapshot": true, + "stop": true + }, "LivePusherContext": false, - "LogManager": false, - "MapContext": false, + "LogManager": true, + "MapContext": { + "getCenterLocation": true, + "setLocMarkerIcon": true, + "translateMarker": true, + "moveAlong": true, + "includePoints": true, + "getRegion": true, + "getRotate": true, + "getSkew": true, + "getScale": true, + "setCenterOffset": true, + "addGroundOverlay": true, + "setBoundary": true, + "updateGroundOverlay": true, + "removeGroundOverlay": true, + "addMarkers": true, + "removeMarkers": true + }, "MediaAudioPlayer": false, "MediaContainer": false, "MediaQueryObserver": { @@ -238,18 +284,35 @@ "boundingClientRect": true, "context": true, "node": true, - "fields": true, - "scrollOffset": true + "boundingClientRect": true, + "scrollOffset": true, + "fields": true }, "OffscreenCanvas": false, "Path2D": true, - "Performance": false, + "Performance": true, "PerformanceEntry": false, "PerformanceObserver": false, - "ReadResult": false, - "RealtimeLogManager": false, - "RealtimeTagLogManager": false, - "RecorderManager": false, + "ReadResult": { + "bytesRead": true, + "arrayBuffer": true + }, + "RealtimeLogManager": true, + "RealtimeTagLogManager": true, + "RecorderManager": { + "onError": true, + "onFrameRecorded": true, + "onInterruptionBegin": true, + "onInterruptionEnd": true, + "onPause": true, + "onResume": true, + "onStart": true, + "onStop": true, + "pause": true, + "resume": true, + "start": true, + "stop": true + }, "RenderingContext": true, "RequestTask": { "abort": true, @@ -257,7 +320,10 @@ "offHeadersReceived": true }, "RewardedVideoAd": false, - "ScrollViewContext": false, + "ScrollViewContext": { + "scrollTo": true, + "scrollIntoView": true + }, "SelectorQuery": { "in": true, "select": true, @@ -275,10 +341,12 @@ "onMessage": true }, "Stats": false, - "SubscriptionsSetting": false, + "SubscriptionsSetting": { + "mainSwitch": true, + "itemSettings": true + }, "TCPSocket": false, "UDPSocket": false, - "UpdateManager": false, "UploadTask": { "abort": true, "onProgressUpdate": true, @@ -312,27 +380,86 @@ "VideoDecoder": false, "WebAudioContext": false, "WebAudioContextNode": false, - "WifiInfo": false, + "WifiInfo": { + "SSID": true, + "BSSID": true, + "secure": true, + "signalStrength": true, + "frequency": true + }, "Worker": false, "WriteResult": false, "addCard": false, "addFileToFavorites": false, "addInterceptor": false, - "addPhoneCalendar": false, - "addPhoneContact": false, - "addPhoneRepeatCalendar": false, - "addRecentColorSign": false, + "addPhoneCalendar": { + "object": { + "title": true, + "startTime": true, + "allDay": true, + "description": true, + "location": true, + "endTime": true, + "alarm": true, + "alarmOffset": true + } + }, + "addPhoneContact": { + "object": { + "firstName": true, + "photoFilePath": true, + "nickName": true, + "middleName": true, + "lastName": true, + "remark": true, + "mobilePhoneNumber": true, + "weChatNumber": true, + "addressCountry": true, + "addressState": true, + "addressCity": true, + "addressStreet": true, + "addressPostalCode": true, + "organization": true, + "title": true, + "workFaxNumber": true, + "workPhoneNumber": true, + "hostNumber": true, + "email": true, + "url": true, + "workAddressCountry": true, + "workAddressState": true, + "workAddressCity": true, + "workAddressStreet": true, + "workAddressPostalCode": true, + "homeFaxNumber": true, + "homePhoneNumber": true, + "homeAddressCountry": true, + "homeAddressState": true, + "homeAddressCity": true, + "homeAddressStreet": true, + "homeAddressPostalCode": true + } + }, + "addPhoneRepeatCalendar": { + "object": { + "title": true, + "startTime": true, + "allDay": true, + "description": true, + "location": true, + "endTime": true, + "alarm": true, + "alarmOffset": true, + "repeatInterval": true, + "repeatEndTime": true + } + }, "addVideoToFavorites": false, - "applyAddToMyApps": false, "arrayBufferToBase64": true, "authPrivateMessage": false, "authorize": false, - "authorizeForMiniProgram": false, + "authorizeForMiniProgram": true, "base64ToArrayBuffer": true, - "batchGetStorage": false, - "batchGetStorageSync": false, - "batchSetStorage": false, - "batchSetStorageSync": false, "canIUseWebp": true, "canvasGetImageData": { "object": { @@ -379,9 +506,21 @@ "checkIsAddedToMyMiniProgram": false, "checkIsOpenAccessibility": false, "checkIsPictureInPictureActive": false, - "checkIsSoterEnrolledInDevice": false, + "checkIsSoterEnrolledInDevice": { + "object": { + "checkAuthMode": true + }, + "success": { + "isEnrolled": true, + "errMsg": true + } + }, "checkIsSupportFacialRecognition": false, - "checkIsSupportSoterAuthentication": false, + "checkIsSupportSoterAuthentication": { + "success": { + "supportMode": true + } + }, "checkSession": false, "chooseAddress": false, "chooseContact": false, @@ -442,16 +581,50 @@ }, "chooseMessageFile": false, "choosePoi": false, - "chooseVideo": false, + "chooseVideo": { + "object": { + "camera": { + "back": true, + "front": true + }, + "compressed": true, + "maxDuration": true, + "sourceType": { + "album": true, + "camera": true + } + }, + "success": { + "tempFilePath": true, + "duration": true, + "size": true, + "height": true, + "width": true + } + }, "cleanInterceptors": false, "clearStorage": true, "clearStorageSync": true, - "closeBLEConnection": false, - "closeBluetoothAdapter": false, + "closeBLEConnection": { + "object": { + "deviceId": true + } + }, + "closeBluetoothAdapter": true, "closeSocket": false, - "cloud": false, - "compressImage": false, - "compressVideo": false, + "cloud": true, + "compressImage": { + "object": { + "src": true, + "quality": true, + "compressedWidth": true, + "compressHeight": true + }, + "success": { + "tempFilePath": true + } + }, + "compressVideo": true, "connectSocket": { "object": { "url": true, @@ -460,7 +633,13 @@ "tcpNoDelay": true } }, - "connectWifi": false, + "connectWifi": { + "object": { + "SSID": true, + "password": true, + "BSSID": true + } + }, "console": { "debug": true, "error": true, @@ -488,19 +667,24 @@ } }, "createAudioContext": true, - "createBLEConnection": false, + "createBLEConnection": { + "object": { + "deviceId": true, + "timeout": true + } + }, "createBLEPeripheralServer": false, "createBufferURL": false, "createCacheManager": false, - "createCameraContext": false, + "createCameraContext": true, "createCanvasContext": true, "createInferenceSession": false, "createInnerAudioContext": true, "createIntersectionObserver": true, - "createInterstitialAd": false, - "createLivePlayerContext": false, + "createInterstitialAd": true, + "createLivePlayerContext": true, "createLivePusherContext": false, - "createMapContext": false, + "createMapContext": true, "createMediaAudioPlayer": false, "createMediaContainer": false, "createMediaQueryObserver": true, @@ -516,8 +700,7 @@ "createWebAudioContext": false, "createWorker": false, "cropImage": false, - "deleteBookshelf": false, - "disableAlertBeforeUnload": false, + "disableAlertBeforeUnload": true, "downloadFile": { "object": { "url": true, @@ -536,10 +719,8 @@ "profile": true } }, - "downloadPackage": false, - "downloadPackages": false, "editImage": false, - "enableAlertBeforeUnload": false, + "enableAlertBeforeUnload": true, "env": { "FRAMEWORK": true, "TARO_ENV": true, @@ -549,7 +730,7 @@ "exitVoIPChat": false, "faceDetect": false, "faceVerifyForPay": false, - "getAccountInfoSync": false, + "getAccountInfoSync": true, "getAppAuthorizeSetting": { "return": { "albumAuthorized": true, @@ -578,13 +759,35 @@ } }, "getAvailableAudioSources": false, - "getBLEDeviceCharacteristics": false, - "getBLEDeviceRSSI": false, - "getBLEDeviceServices": false, + "getBLEDeviceCharacteristics": { + "object": { + "deviceId": true, + "serviceId": true + }, + "success": { + "characteristics": true + } + }, + "getBLEDeviceRSSI": { + "object": { + "deviceId": true + }, + "success": { + "RSSI": true + } + }, + "getBLEDeviceServices": { + "object": { + "deviceId": true + }, + "success": { + "services": true + } + }, "getBLEMTU": false, "getBackgroundAudioManager": true, "getBackgroundAudioPlayerState": false, - "getBackgroundFetchData": false, + "getBackgroundFetchData": true, "getBackgroundFetchToken": false, "getBatteryInfo": { "success": { @@ -594,8 +797,17 @@ }, "getBatteryInfoSync": false, "getBeacons": false, - "getBluetoothAdapterState": false, - "getBluetoothDevices": false, + "getBluetoothAdapterState": { + "success": { + "available": true, + "discovering": true + } + }, + "getBluetoothDevices": { + "success": { + "devices": true + } + }, "getChannelsLiveInfo": false, "getChannelsLiveNoticeInfo": false, "getChannelsShareKey": false, @@ -604,17 +816,52 @@ "data": true } }, - "getCommonConfig": false, - "getConnectedBluetoothDevices": false, - "getConnectedWifi": false, - "getDeviceInfo": false, + "getConnectedBluetoothDevices": { + "object": { + "services": true + }, + "success": { + "devices": true + } + }, + "getConnectedWifi": { + "success": { + "wifi": true + } + }, + "getDeviceInfo": { + "return": { + "benchmarkLevel": true, + "brand": true, + "model": true, + "system": true, + "platform": true + } + }, "getDeviceVoIPList": false, - "getEnterOptionsSync": false, - "getExptInfoSync": false, + "getEnterOptionsSync": { + "return": { + "path": true, + "query": true, + "scene": true, + "shareTicket": true, + "referrerInfo": true, + "apiCategory": true + } + }, + "getExptInfoSync": true, "getExtConfig": false, "getExtConfigSync": false, - "getFavorStatus": false, - "getFileInfo": false, + "getFileInfo": { + "object": { + "filePath": true, + "digestAlgorithm": true + }, + "success": { + "size": true, + "digest": true + } + }, "getFileSystemManager": true, "getFuzzyLocation": { "object": { @@ -626,7 +873,6 @@ } }, "getGroupEnterInfo": false, - "getGuildInfo": false, "getHCEState": false, "getImageInfo": { "object": { @@ -678,7 +924,7 @@ "verticalAccuracy": true } }, - "getLogManager": false, + "getLogManager": true, "getMenuButtonBoundingClientRect": { "return": { "left": true, @@ -704,17 +950,31 @@ } }, "getOpenUserInfo": false, - "getOptimalPriceInfo": false, - "getPerformance": false, + "getPerformance": true, "getPrivacySetting": false, - "getQQRunData": false, "getRandomValues": false, - "getRealtimeLogManager": false, - "getRecorderManager": false, + "getRealtimeLogManager": true, + "getRecorderManager": true, "getRendererUserAgent": false, - "getSavedFileInfo": false, - "getSavedFileList": false, - "getScreenBrightness": false, + "getSavedFileInfo": { + "object": { + "filePath": true + }, + "success": { + "createTime": true, + "size": true + } + }, + "getSavedFileList": { + "success": { + "fileList": true + } + }, + "getScreenBrightness": { + "success": { + "value": true + } + }, "getScreenRecordingState": false, "getSelectedTextRange": false, "getSetting": { @@ -727,7 +987,7 @@ "miniprogramAuthSetting": true } }, - "getShareInfo": false, + "getShareInfo": true, "getSkylineInfo": false, "getSkylineInfoSync": false, "getStorage": { @@ -802,7 +1062,55 @@ } } }, - "getSystemInfoAsync": false, + "getSystemInfoAsync": { + "success": { + "brand": true, + "model": true, + "pixelRatio": true, + "screenWidth": true, + "screenHeight": true, + "windowWidth": true, + "windowHeight": true, + "statusBarHeight": true, + "language": true, + "version": true, + "system": true, + "platform": true, + "fontSizeSetting": true, + "SDKVersion": true, + "benchmarkLevel": true, + "albumAuthorized": true, + "cameraAuthorized": true, + "locationAuthorized": true, + "microphoneAuthorized": true, + "notificationAuthorized": true, + "phoneCalendarAuthorized": true, + "bluetoothEnabled": true, + "locationEnabled": true, + "wifiEnabled": true, + "safeArea": { + "bottom": true, + "height": true, + "left": true, + "right": true, + "top": true, + "width": true + }, + "locationReducedAccuracy": true, + "theme": { + "dark": true, + "light": true + }, + "host": { + "appId": true + }, + "enableDebug": true, + "deviceOrientation": { + "portrait": true, + "landscape": true + } + } + }, "getSystemInfoSync": { "return": { "brand": true, @@ -852,7 +1160,6 @@ } } }, - "getSystemRiskInfo": false, "getSystemSetting": { "return": { "bluetoothEnabled": true, @@ -864,8 +1171,7 @@ } } }, - "getTopStatus": false, - "getUpdateManager": false, + "getUpdateManager": true, "getUserCryptoManager": false, "getUserInfo": { "object": { @@ -902,7 +1208,7 @@ } }, "getWeRunData": false, - "getWifiList": false, + "getWifiList": true, "getWindowInfo": { "return": { "pixelRatio": true, @@ -921,15 +1227,15 @@ } } }, - "hideHomeButton": false, + "hideHomeButton": true, "hideKeyboard": true, "hideLoading": { "object": { "noConflict": true } }, - "hideNavigationBarLoading": false, - "hideShareMenu": false, + "hideNavigationBarLoading": true, + "hideShareMenu": true, "hideTabBar": { "object": { "animation": true @@ -946,9 +1252,6 @@ } }, "initFaceDetect": false, - "initTabBarApis": false, - "insertBookshelf": false, - "isAddedToMyApps": false, "isBluetoothDevicePaired": false, "isVKSupport": false, "join1v1Chat": false, @@ -968,7 +1271,6 @@ "status": true } }, - "loadSubPackage": false, "login": { "object": { "timeout": true @@ -983,19 +1285,7 @@ "phoneNumber": true } }, - "navigateBack": { - "object": { - "delta": true - } - }, "navigateBackMiniProgram": false, - "navigateTo": { - "object": { - "url": true, - "events": true - } - }, - "navigateToBookshelf": false, "navigateToMiniProgram": { "object": { "appId": true, @@ -1004,8 +1294,15 @@ } }, "nextTick": true, - "notifyBLECharacteristicValueChange": false, - "offAccelerometerChange": false, + "notifyBLECharacteristicValueChange": { + "object": { + "characteristicId": true, + "deviceId": true, + "serviceId": true, + "state": true + } + }, + "offAccelerometerChange": true, "offAppHide": true, "offAppShow": true, "offAudioInterruptionBegin": false, @@ -1016,39 +1313,45 @@ "offBLEPeripheralConnectionStateChanged": false, "offBeaconServiceChange": false, "offBeaconUpdate": false, - "offBluetoothAdapterStateChange": false, - "offBluetoothDeviceFound": false, - "offCompassChange": false, + "offBluetoothAdapterStateChange": true, + "offBluetoothDeviceFound": true, + "offCompassChange": true, "offCopyUrl": false, - "offDeviceMotionChange": false, + "offDeviceMotionChange": true, "offError": true, - "offGetWifiList": false, + "offGetWifiList": true, "offGyroscopeChange": false, "offHCEMessage": false, - "offKeyboardHeightChange": false, + "offKeyboardHeightChange": true, "offLocalServiceDiscoveryStop": false, "offLocalServiceFound": false, "offLocalServiceLost": false, "offLocalServiceResolveFail": false, - "offLocationChange": false, - "offLocationChangeError": false, - "offMemoryWarning": false, + "offLocationChange": true, + "offLocationChangeError": true, + "offMemoryWarning": true, "offNetworkStatusChange": true, "offNetworkWeakChange": false, "offPageNotFound": true, "offScreenRecordingStateChanged": false, - "offThemeChange": false, + "offThemeChange": true, "offUnhandledRejection": true, - "offUserCaptureScreen": false, + "offUserCaptureScreen": true, "offVoIPChatInterrupted": false, "offVoIPChatMembersChanged": false, "offVoIPChatSpeakersChanged": false, "offVoIPChatStateChanged": false, "offVoIPVideoMembersChanged": false, - "offWifiConnected": false, - "offWifiConnectedWithPartialInfo": false, + "offWifiConnected": true, + "offWifiConnectedWithPartialInfo": true, "offWindowResize": true, - "onAccelerometerChange": false, + "onAccelerometerChange": { + "callback": { + "x": true, + "y": true, + "z": true + } + }, "onAppHide": true, "onAppShow": { "callback": { @@ -1061,8 +1364,20 @@ }, "onAudioInterruptionBegin": false, "onAudioInterruptionEnd": false, - "onBLECharacteristicValueChange": false, - "onBLEConnectionStateChange": false, + "onBLECharacteristicValueChange": { + "callback": { + "characteristicId": true, + "deviceId": true, + "serviceId": true, + "value": true + } + }, + "onBLEConnectionStateChange": { + "callback": { + "connected": true, + "deviceId": true + } + }, "onBLEMTUChange": false, "onBLEPeripheralConnectionStateChanged": false, "onBackgroundAudioPause": false, @@ -1071,23 +1386,71 @@ "onBackgroundFetchData": false, "onBeaconServiceChange": false, "onBeaconUpdate": false, - "onBluetoothAdapterStateChange": false, - "onBluetoothDeviceFound": false, - "onCompassChange": false, + "onBluetoothAdapterStateChange": { + "callback": { + "available": true, + "discovering": true + } + }, + "onBluetoothDeviceFound": { + "callback": { + "devices": true + } + }, + "onCompassChange": { + "callback": { + "accuracy": true, + "direction": true + } + }, "onCopyUrl": false, - "onDeviceMotionChange": false, + "onDeviceMotionChange": { + "callback": { + "alpha": true, + "beta": true, + "gamma": true + } + }, "onError": true, - "onGetWifiList": false, - "onGyroscopeChange": false, + "onGetWifiList": { + "callback": { + "wifiList": true + } + }, + "onGyroscopeChange": { + "callback": { + "x": true, + "y": true, + "z": true + } + }, "onHCEMessage": false, - "onKeyboardHeightChange": false, + "onKeyboardHeightChange": { + "callback": { + "height": true + } + }, "onLocalServiceDiscoveryStop": false, "onLocalServiceFound": false, "onLocalServiceLost": false, "onLocalServiceResolveFail": false, - "onLocationChange": false, - "onLocationChangeError": false, - "onMemoryWarning": false, + "onLocationChange": { + "callback": { + "accuracy": true, + "altitude": true, + "horizontalAccuracy": true, + "atitude": true, + "longitude": true, + "speed": true, + "verticalAccuracy": true + } + }, + "onLocationChangeError": { + "callback": { + "errCode": true + } + }, + "onMemoryWarning": true, "onNeedPrivacyAuthorization": false, "onNetworkStatusChange": { "success": { @@ -1116,7 +1479,14 @@ "onSocketError": false, "onSocketMessage": false, "onSocketOpen": false, - "onThemeChange": false, + "onThemeChange": { + "callback": { + "theme": { + "light": true, + "dark": true + } + } + }, "onUnhandledRejection": { "callback": { "reason": true, @@ -1129,20 +1499,27 @@ "onVoIPChatSpeakersChanged": false, "onVoIPChatStateChanged": false, "onVoIPVideoMembersChanged": false, - "onWifiConnected": false, - "onWifiConnectedWithPartialInfo": false, + "onWifiConnected": { + "callback": { + "wifi": true + } + }, + "onWifiConnectedWithPartialInfo": { + "callback": { + "wifi": true + } + }, "onWindowResize": true, - "openAppAuthorizeSetting": false, - "openBdboxWebview": false, - "openBluetoothAdapter": false, + "openAppAuthorizeSetting": true, + "openBluetoothAdapter": true, "openBusinessView": false, "openCard": false, "openChannelsActivity": false, "openChannelsEvent": false, "openChannelsLive": false, - "openChannelsUserProfile": false, + "openChannelsUserProfile": true, "openCustomerServiceChat": false, - "openDocument": false, + "openDocument": true, "openEmbeddedMiniProgram": false, "openLocation": { "object": { @@ -1163,11 +1540,18 @@ "subscriptionsSetting": true } }, - "openSingleStickerView": false, - "openStickerIPView": false, - "openStickerSetView": false, "openSystemBluetoothSetting": false, - "openVideoEditor": false, + "openVideoEditor": { + "object": { + "filePath": true + }, + "success": { + "duration": true, + "size": true, + "tempFilePath": true, + "tempThumbPath": true + } + }, "pageScrollTo": { "object": { "duration": true, @@ -1198,15 +1582,18 @@ "current": true } }, - "queryBookshelf": false, - "reLaunch": { + "readBLECharacteristicValue": { "object": { - "url": true + "characteristicId": true, + "deviceId": true, + "serviceId": true + } + }, + "removeSavedFile": { + "object": { + "filePath": true } }, - "readBLECharacteristicValue": false, - "redirectTo": true, - "removeSavedFile": false, "removeStorage": { "object": { "key": true @@ -1218,7 +1605,7 @@ "index": true } }, - "reportAnalytics": false, + "reportAnalytics": true, "reportEvent": false, "reportMonitor": false, "reportPerformance": false, @@ -1240,10 +1627,10 @@ "CONNECT": true }, "dataType": { - "json": true, "text": true, - "base64": true, - "arraybuffer": true + "json": true, + "arraybuffer": true, + "base64": true }, "responseType": { "text": true, @@ -1260,47 +1647,100 @@ }, "requestDeviceVoIP": false, "requestOrderPayment": false, - "requestPayment": false, - "requestPolymerPayment": false, + "requestPayment": true, "requestSubscribeDeviceMessage": false, - "requestSubscribeMessage": false, + "requestSubscribeMessage": { + "object": { + "tmplIds": true + }, + "success": { + "errMsg": true, + "TEMPLATE_ID": true + } + }, "requirePrivacyAuthorize": false, "reserveChannelsLive": false, "revokeBufferURL": false, - "saveFile": false, + "saveFile": { + "object": { + "tempFilePath": true, + "filePath": true + }, + "success": { + "savedFilePath": true + } + }, "saveFileToDisk": false, "saveImageToPhotosAlbum": { "object": { "filePath": true } }, - "saveVideoToPhotosAlbum": false, - "scanCode": false, + "saveVideoToPhotosAlbum": { + "object": { + "filePath": true + } + }, + "scanCode": { + "object": { + "onlyFromCamera": true, + "scanType": { + "barCode": true, + "qrCode": true, + "datamatrix": true, + "pdf417": true + } + }, + "success": { + "charSet": true, + "rawData": true, + "result": true, + "scanType": { + "QR_CODE": true, + "AZTEC": true, + "CODABAR": true, + "CODE_39": true, + "CODE_93": true, + "CODE_128": true, + "DATA_MATRIX": true, + "EAN_8": true, + "EAN_13": true, + "ITF": true, + "PDF_417": true, + "UPC_A": true, + "UPC_E": true + } + } + }, "seekBackgroundAudio": false, "sendHCEMessage": false, "sendSms": false, "sendSocketMessage": false, - "setBLEMTU": false, + "setBLEMTU": { + "object": { + "deviceId": true, + "mtu": true + }, + "success": { + "mtu": true + } + }, "setBackgroundColor": false, - "setBackgroundFetchToken": false, + "setBackgroundFetchToken": true, "setBackgroundTextStyle": false, "setClipboardData": { "object": { "data": true } }, - "setCustomDress": false, - "setDocumentTitle": false, "setEnable1v1Chat": false, - "setEnableDebug": false, + "setEnableDebug": true, "setInnerAudioOption": false, "setKeepScreenOn": { "object": { "keepScreenOn": true } }, - "setMetaDescription": false, - "setMetaKeywords": false, "setNavigationBarColor": { "object": { "backgroundColor": true, @@ -1313,9 +1753,12 @@ "title": true } }, - "setOfficialDress": false, "setPageInfo": false, - "setScreenBrightness": false, + "setScreenBrightness": { + "object": { + "value": true + } + }, "setStorage": { "object": { "data": true, @@ -1350,7 +1793,7 @@ "selectedColor": true } }, - "setTopBarText": false, + "setTopBarText": true, "setVisualEffectOnCapture": false, "setWifiList": false, "setWindowSize": false, @@ -1388,10 +1831,10 @@ "confirm": true } }, - "showNavigationBarLoading": false, + "showNavigationBarLoading": true, "showRedPackage": false, "showShareImageMenu": false, - "showShareMenu": false, + "showShareMenu": true, "showTabBar": { "object": { "animation": true @@ -1416,48 +1859,81 @@ "mask": true } }, - "startAccelerometer": false, + "startAccelerometer": { + "object": { + "interval": { + "game": true, + "ui": true, + "normal": true + } + } + }, "startBeaconDiscovery": false, - "startBluetoothDevicesDiscovery": false, - "startCompass": false, - "startDeviceMotionListening": false, + "startBluetoothDevicesDiscovery": { + "object": { + "allowDuplicatesKey": true, + "interval": true, + "services": true + } + }, + "startCompass": true, + "startDeviceMotionListening": { + "object": { + "interval": { + "game": true, + "ui": true, + "normal": true + } + } + }, "startFacialRecognitionVerify": false, "startFacialRecognitionVerifyAndUploadVideo": false, - "startGyroscope": false, + "startGyroscope": { + "object": { + "interval": { + "game": true, + "ui": true, + "normal": true + } + } + }, "startHCE": false, "startLocalServiceDiscovery": false, - "startLocationUpdate": false, - "startLocationUpdateBackground": false, + "startLocationUpdate": true, + "startLocationUpdateBackground": true, "startPullDownRefresh": true, "startRecord": false, - "startSoterAuthentication": false, - "startWifi": false, - "stopAccelerometer": false, + "startSoterAuthentication": { + "object": { + "challenge": true, + "requestAuthModes": true, + "authContent": true + }, + "success": { + "authMode": true, + "errCode": true, + "resultJSON": true, + "resultJSONSignature": true + } + }, + "startWifi": true, + "stopAccelerometer": true, "stopBackgroundAudio": false, "stopBeaconDiscovery": false, - "stopBluetoothDevicesDiscovery": false, - "stopCompass": false, - "stopDeviceMotionListening": false, + "stopBluetoothDevicesDiscovery": true, + "stopCompass": true, + "stopDeviceMotionListening": true, "stopFaceDetect": false, - "stopGyroscope": false, + "stopGyroscope": true, "stopHCE": false, "stopLocalServiceDiscovery": false, - "stopLocationUpdate": false, + "stopLocationUpdate": true, "stopPullDownRefresh": true, "stopRecord": false, "stopVoice": false, - "stopWifi": false, - "subscribeService": false, + "stopWifi": true, "subscribeVoIPVideoMembers": false, - "switchTab": { - "object": { - "url": true - } - }, "tradePay": false, - "unsubscribeMessage": false, - "updateBookshelfReadTime": false, - "updateQQApp": false, "updateShareMenu": false, "updateVoIPChatMuteConfig": false, "updateWeChatApp": false, @@ -1479,9 +1955,16 @@ "cookies": true } }, - "vibrateLong": false, - "vibrateShort": false, - "writeBLECharacteristicValue": false + "vibrateLong": true, + "vibrateShort": true, + "writeBLECharacteristicValue": { + "object": { + "characteristicId": true, + "deviceId": true, + "serviceId": true, + "value": true + } + } }, "components": { "ad": { @@ -1542,10 +2025,7 @@ "openSetting": false, "feedback": false, "chooseAvatar": false, - "agreePrivacyAuthorization": false, - "['getPhoneNumber|agreePrivacyAuthorization']": false, - "['getRealtimePhoneNumber|agreePrivacyAuthorization']": false, - "['getUserInfo|agreePrivacyAuthorization']": false + "agreePrivacyAuthorization": false }, "hover-class": true, "hover-stop-propagation": false, @@ -1742,8 +2222,7 @@ "safe-password-time-stamp": false, "safe-password-nonce": false, "safe-password-salt": false, - "safe-password-custom-hash": false, - "default-value": false + "safe-password-custom-hash": false }, "keyboard-accessory": false, "label": { @@ -2038,8 +2517,7 @@ "selector": { "range": true, "range-key": true, - "value": true, - "default-value": false + "value": true }, "multiSelector": { "range": true, @@ -2049,8 +2527,7 @@ "time": { "value": true, "start": true, - "end": true, - "default-value": false + "end": true }, "date": { "value": true, @@ -2060,8 +2537,7 @@ "year": true, "month": true, "day": true - }, - "default-value": false + } }, "region": { "value": false, @@ -2071,12 +2547,10 @@ "city": false, "region": false, "sub-district": false - }, - "default-value": false + } } }, - "disabled": true, - "header-text": false + "disabled": true }, "picker-view": { "value": true, @@ -2084,8 +2558,7 @@ "indicator-class": true, "mask-style": true, "mask-class": true, - "immediate-change": false, - "default-value": false + "immediate-change": false }, "picker-view-column": false, "progress": { @@ -2125,10 +2598,6 @@ }, "rtc-room": false, "rtc-room-item": false, - "script": { - "src": false, - "module": false - }, "scroll-view": { "scroll-x": true, "scroll-y": true, @@ -2164,18 +2633,7 @@ "center": true, "end": true, "nearest": true - }, - "clip": false, - "min-drag-distance": false, - "padding": false, - "refresher-two-level-enabled": false, - "refresher-two-level-triggered": false, - "refresher-two-level-threshold": false, - "refresher-two-level-close-threshold": false, - "refresher-two-level-scroll-enabled": false, - "refresher-ballistic-refresh-enabled": false, - "refresher-two-level-pinned": false, - "using-sticky": false + } }, "share-element": { "key": false, @@ -2214,13 +2672,11 @@ "background-color": true, "block-size": true, "block-color": true, - "show-value": true, - "default-value": false + "show-value": true }, "slot": { "name": false }, - "snapshot": false, "sticky-header": false, "sticky-section": { "push-pinned-header": false @@ -2260,8 +2716,7 @@ "switch": true, "checkbox": true }, - "color": true, - "default-checked": false + "color": true }, "tab-item": false, "tabs": false, @@ -2304,8 +2759,7 @@ "return": false }, "confirm-hold": false, - "adjust-keyboard-to": false, - "default-value": false + "adjust-keyboard-to": false }, "video": { "src": true, diff --git a/packages/taro-platform-harmony-hybrid/package.json b/packages/taro-platform-harmony-hybrid/package.json index 719ecd2d5b0a..87d731ef8941 100644 --- a/packages/taro-platform-harmony-hybrid/package.json +++ b/packages/taro-platform-harmony-hybrid/package.json @@ -51,7 +51,8 @@ "jsonp-retry": "^1.0.3", "whatwg-fetch": "^3.4.0", "change-case": "^4.1.2", - "base64-js": "^1.3.0" + "base64-js": "^1.3.0", + "axios": "^1.6.8" }, "devDependencies": { "@rollup/plugin-commonjs": "^20.0.0", diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts index 37a0a785d5de..5c46bdfeb564 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts @@ -1,4 +1,7 @@ -// @proxyClassSign('') +import osChannelApi from './osChannelApi' +import { RequestTask } from './request' + + class NativeApi { // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) @@ -6,6 +9,12 @@ class NativeApi { return '' } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getDeviceInfo (): any { + return '' + } + // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) getSystemInfoSync (): any { @@ -66,6 +75,72 @@ class NativeApi { return options } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + startAccelerometer (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + stopAccelerometer (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onAccelerometerChange (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offAccelerometerChange (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + startCompass (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + stopCompass (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onCompassChange (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offCompassChange (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + startGyroscope (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + stopGyroscope (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onGyroscopeChange (options: any): any { + return options + } + // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) saveImageToPhotosAlbum (options: any): any { @@ -90,12 +165,24 @@ class NativeApi { return options } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + compressVideo (options: any): any { + return options + } + // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) getLocation (options: any): any { return options } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + openDocument (options: any): any { + return options + } + // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) login (options: any): any { @@ -138,18 +225,137 @@ class NativeApi { return options } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offUserCaptureScreen (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onLocationChange (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offLocationChange (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + setScreenBrightness (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getScreenBrightness (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onMemoryWarning (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offMemoryWarning (options: any): any { + return options + } + // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) hideKeyboard (options?: any): any { return options } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + onKeyboardHeightChange (options?: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offKeyboardHeightChange (options?: any): any { + return options + } + // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) makePhoneCall (options: any): any { return options } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getSavedFileList (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + removeSavedFile (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getSavedFileInfo (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + addPhoneContact (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + scanCode (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + vibrateShort (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + vibrateLong (options: any): any { + return options + } + + // NativeUpdateManager + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + applyUpdate (): any {} + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + onCheckForUpdate (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + onUpdateFailed (options: any): any { + return options + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + onUpdateReady (options: any): any { + return options + } + // NativeAContextApi // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) @@ -378,6 +584,12 @@ class NativeApi { return option } + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + saveFile (option: any): any { + return option + } + // @ts-ignore @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) getFileInfo (option: any): any { @@ -395,10 +607,304 @@ class NativeApi { readFileSync (option: any): any { return option } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + openAppAuthorizeSetting (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + requestSubscribeMessage (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + closeBLEConnection (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + createBLEConnection (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getBLEDeviceCharacteristics (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getBLEDeviceRSSI (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getBLEDeviceServices (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + notifyBLECharacteristicValueChange (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onBLECharacteristicValueChange (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onBLEConnectionStateChange (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + readBLECharacteristicValue (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + setBLEMTU (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + writeBLECharacteristicValue (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + closeBluetoothAdapter (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getBluetoothAdapterState (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getBluetoothDevices (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getConnectedBluetoothDevices (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offBluetoothAdapterStateChange (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + offBluetoothDeviceFound (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onBluetoothAdapterStateChange (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + onBluetoothDeviceFound (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + openBluetoothAdapter (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + startBluetoothDevicesDiscovery (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + stopBluetoothDevicesDiscovery (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + getExecStatus (option: any): any { // 获取缓存数据 + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) + setStorage (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) + removeStorage (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) + getStorage (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) + getStorageInfo (option: any): any { + return option + } + + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) + clearStorage (option: any): any { + return option + } } -const native = new NativeApi() +export interface Status { + done: boolean + data: string + errorMsg: string +} + +class CacheStorageProxy { + private cacheMap: Map + private readonly nativeApi: NativeApi + private readonly asyncToSyncProxy: any + + constructor (nativeApi: NativeApi) { + this.nativeApi = nativeApi + this.cacheMap = new Map() + this.asyncToSyncProxy = new Proxy(nativeApi, new AsyncToSyncProxy(this.nativeApi)) + } + + // @ts-ignore + get (target: { [x: string]: any }, prop: string) { + if (prop === 'getStorageSync') { + return (...args: any[]) => { + const key = args[0].key + if (this.cacheMap.has(key)) { + return this.cacheMap.get(key) + } else { + const status = this.asyncToSyncProxy.getStorageSync({ key }) + if (status.done && status.errMsg === '') { + this.cacheMap.set(key, status) + } + return status + } + } + } + if (prop === 'setStorageSync') { + return (...args: any[]) => { + const { key, data } = args[0] + const status = this.asyncToSyncProxy.setStorageSync({ key,data }) + if (status.done && status.errMsg === '') { + this.cacheMap.set(key, status) + } + return status + } + } + return (...args: any[]) => { + return this.asyncToSyncProxy[prop](...args) + } + } +} + +class AsyncToSyncProxy { + private readonly nativeApi: NativeApi + private readonly STATUS: Status = { done: false, data: '', errorMsg: `search timeout` } + private methods = + [ + 'setStorageSync', + 'removeStorageSync', + 'getStorageSync', + 'getStorageInfoSync', + 'clearStorageSync' + ] + + constructor (nativeApi: NativeApi) { + this.nativeApi = nativeApi + } + + get (target: { [x: string]: any }, prop: string) { + if (this.methods.includes(prop)) { + return (...args: any[]) => { + const asyncFunc = prop.substring(0, prop.length - 'Sync'.length) + this.nativeApi[asyncFunc](...args) + + let count = 0 + while (count < 20000) { + count++ + if (count % 2000 === 0) { + const status = this.nativeApi.getExecStatus({ method: prop, key: args[0].key } ) + if (status.done || status.errorMsg) { + return status + } + } + } + return this.STATUS + } + } + return target[prop] + } +} + +class HybridProxy { + private readonly useAxios: boolean + private readonly useOsChannel: boolean + private readonly cacheProxy: any + private readonly requestApi = 'request' + + constructor (useAxios: boolean, useOsChannel: boolean, nativeApi: NativeApi) { + this.useAxios = useAxios + this.useOsChannel = useOsChannel + this.cacheProxy = new Proxy(nativeApi, new CacheStorageProxy(nativeApi)) + } + + get (_target:any, prop:string) { + return (...args: any) => { + if ( this.useAxios && prop === this.requestApi ) { + // @ts-ignore + return new RequestTask(...args) + } + if (this.useOsChannel && osChannelApi.hasOwnProperty(prop)) { + return osChannelApi[prop](...args) + } + return this.cacheProxy[prop](...args) + } + } +} +const nativeApi = new NativeApi() +const native = new Proxy(nativeApi, new HybridProxy(false, false, nativeApi)) // 第一个false是默认走jsb,true是走纯js, 第二个false是不走osChannel export default native diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts new file mode 100644 index 000000000000..5ad8869292a3 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts @@ -0,0 +1,12 @@ +/** + * 获取用户加密模块 + * + * @canNotUse getUserCryptoManager + */ +export { getUserCryptoManager } from '@tarojs/taro-h5' + +/** + * 用户加密模块类 + * + * @canNotUse UserCryptoManager + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts new file mode 100644 index 000000000000..51d44c88d3f3 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts @@ -0,0 +1,156 @@ +import Taro from '@tarojs/taro' + +/** + * 程序测速上报 + * + * @canNotUse reportPerformance + */ +export { reportPerformance } from '@tarojs/taro-h5' + +/** + * 预加载下个页面的 WebView + * + * @canNotUse preloadWebview + */ +export { preloadWebview } from '@tarojs/taro-h5' + +/** + * 预加载下个页面所需要的 Skyline 运行环境 + * + * @canNotUse preloadSkylineView + */ +export { preloadSkylineView } from '@tarojs/taro-h5' + +/** + * 为视图层预加载媒体资源文件 + * + * @canNotUse preloadAssets + */ +export { preloadAssets } from '@tarojs/taro-h5' + +/** + * 程序测速上报 + * + * @canUse getPerformance + * @null_implementation + */ +export const getPerformance: typeof Taro.getPerformance = () => { + return new Performance() +} + +/** + * 获取性能数据及创建性能监听器 + * + * @canUse Performance + * @null_implementation + */ +class Performance implements Taro.Performance { + _res = { + /** 开始时间,不同指标的具体含义会有差异 */ + startTime: 0, + /** 耗时 ms。仅对于表示阶段的指标有效。 */ + duration: 0, + /** 页面路径。仅 render 和 navigation 类型指标有效。 */ + path: '', + /** 路由真正响应开始时间。仅 navigation 类型指标有效。 */ + navigationStart: 0, + /** 路由详细类型,与小程序路由方法对应。仅 navigation 类型指标有效。 */ + navigationType: '', + /** 分包名,主包表示为 APP。仅 evaluateScript 指标有效。 */ + moduleName: '', + /** 注入文件列表。仅 evaluateScript 指标有效。 */ + fileList: [''], + /** 渲染层代码注入完成时间。仅 firstRender 指标有效。 */ + viewLayerReadyTime: 0, + /** 首次渲染参数从逻辑层发出的时间。仅 firstRender 指标有效。 */ + initDataSendTime: 0, + /** 首次渲染参数在渲染层收到的时间。仅 firstRender 指标有效。 */ + initDataRecvTime: 0, + /** 渲染层执行渲染开始时间。仅 firstRender 指标有效。 */ + viewLayerRenderStartTime: 0, + /** 渲染层执行渲染结束时间。仅 firstRender 指标有效。 */ + viewLayerRenderEndTime: 0, + } + + createObserver (callback): Taro.PerformanceObserver { + if (typeof callback === 'function') { + // do nothing + } + const result: Taro.PerformanceEntry = { + /** 指标类型 */ + entryType: 'navigation', + /** 指标名称 */ + name: 'appLaunch', + ...this._res, + } + const disconnect = () => {} + const observe = (option: Taro.PerformanceObserver.observe.Option) => { + if (typeof option === 'object') { + // do nothing + } + } + const performanceObserver: Taro.PerformanceObserver = { + supportedEntryTypes: [result], + disconnect, + observe, + } + return performanceObserver + } + + getEntries (): Taro.PerformanceEntry[] { + const result: Taro.PerformanceEntry = { + /** 指标类型 */ + entryType: 'navigation', + /** 指标名称 */ + name: 'appLaunch', + ...this._res, + } + return [result] + } + + getEntriesByName (name: string, entryType: string): Taro.PerformanceEntry[] { + const result: Taro.PerformanceEntry = { + /** 指标类型 */ + entryType: entryType as keyof Taro.PerformanceEntry.EntryType, + /** 指标名称 */ + name: name as keyof Taro.PerformanceEntry.EntryName, + ...this._res, + } + return [result] + } + + getEntriesByType (entryType: string): Taro.PerformanceEntry[] { + const result: Taro.PerformanceEntry = { + /** 指标类型 */ + entryType: entryType as keyof Taro.PerformanceEntry.EntryType, + /** 指标名称 */ + name: 'appLaunch', + ...this._res, + } + return [result] + } + + setBufferSize (size: number): void { + if (typeof size === 'number') { + // do nothing + } + } +} + +/** + * EntryList 对象 + * + * @canNotUse EntryList + */ + +/** + * 单条性能数据 + * + * @canNotUse PerformanceEntry + */ + +/** + * PerformanceObserver 对象,用于监听性能相关事件 + * + * @canNotUse PerformanceObserver + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts index 17a7ebc3d5eb..7650faaac88f 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts @@ -1,7 +1,46 @@ import Taro from '@tarojs/api' -import native from '../NativeApi' +import { shouldBeObject } from '../utils' import { MethodHandler } from '../utils/handler' +import native from '../NativeApi' + +/** + * 跳转系统蓝牙设置页 + * + * @canNotUse openSystemBluetoothSetting + */ +export { openSystemBluetoothSetting } from '@tarojs/taro-h5' + +/** + * 跳转系统授权管理页 + * + * @canUse openAppAuthorizeSetting + */ +export const openAppAuthorizeSetting: typeof Taro.openAppAuthorizeSetting = (options) => { + const name = 'openAppAuthorizeSetting' + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options as Exclude + + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.openAppAuthorizeSetting({ + success: (res: any) => { + return handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + return handle.fail(err, { resolve, reject }) + }, + }) + }) +} + /** * 获取窗口信息 * @@ -11,6 +50,7 @@ import { MethodHandler } from '../utils/handler' * bottom, height, left, right, top, width]] */ export const getWindowInfo: typeof Taro.getWindowInfo = () => { + // @ts-ignore const info = native.getWindowInfo() const windowInfo: Taro.getWindowInfo.Result = { pixelRatio: info.pixelRatio, @@ -52,6 +92,7 @@ export const getSystemSetting: typeof Taro.getSystemSetting = () => { if (currentTime - lastGetSystemSettingTime < 500) { return lastSystemSettingResult } + // @ts-ignore const info = native.getSystemSetting() lastSystemSettingResult.bluetoothEnabled = info.bluetoothEnabled lastSystemSettingResult.locationEnabled = info.locationEnabled @@ -61,6 +102,31 @@ export const getSystemSetting: typeof Taro.getSystemSetting = () => { return lastSystemSettingResult } +/** + * 获取设备基础信息 + * + * @canUse getDeviceInfo + * @__return [benchmarkLevel, brand, model, system, platform] + */ +export const getDeviceInfo: typeof Taro.getDeviceInfo = () => { + // @ts-ignore + const info = native.getDeviceInfo() + // @ts-ignore + const deviceInfo: Taro.getDeviceInfo.Result = { + /** 设备性能等级(仅Android支持,HOS默认返回-1)。取值为:-2 或 0(该设备无法运行小游戏),-1(性能未知),>=1(设备性能值,该值越高,设备性能越好,目前最高不到50) */ + benchmarkLevel: -1, + /** 设备品牌 */ + brand: info.brand, + /** 设备型号 */ + model: info.model, + /** 操作系统及版本 */ + system: info.system, + /** 客户端平台 */ + platform: info.platform + } + return deviceInfo +} + /** * 获取APP基础信息 * @@ -68,7 +134,9 @@ export const getSystemSetting: typeof Taro.getSystemSetting = () => { * @__return [SDKVersion, enableDebug, host[appId], language, version, theme[dark, light]] */ export const getAppBaseInfo: typeof Taro.getAppBaseInfo = () => { + // @ts-ignore const info = native.getAppBaseInfo() + // @ts-ignore const sdkApiVersion = native.getSystemInfoSync().ohosAPILevel.toString() const appBaseInfo: Taro.getAppBaseInfo.Result = { SDKVersion: sdkApiVersion, @@ -125,6 +193,7 @@ export const getAppAuthorizeSetting: typeof Taro.getAppAuthorizeSetting = () => * locationReducedAccuracy, theme[dark, light], host[appId], enableDebug, deviceOrientation[portrait, landscape]] */ export const getSystemInfoSync: typeof Taro.getSystemInfoSync = () => { + // @ts-ignore const info = native.getSystemInfoSync() const windowInfo = getWindowInfo() const systemSetting = getSystemSetting() @@ -197,6 +266,30 @@ export const getSystemInfoSync: typeof Taro.getSystemInfoSync = () => { return systemInfoSync } +/** + * 异步获取系统信息 + * + * @canUse getSystemInfoAsync + * @__success + * [brand, model, pixelRatio, screenWidth, screenHeight, windowWidth, windowHeight, statusBarHeight,\ + * language, version, system, platform, fontSizeSetting, SDKVersion, benchmarkLevel, albumAuthorized,\ + * cameraAuthorized, locationAuthorized, microphoneAuthorized, notificationAuthorized, phoneCalendarAuthorized,\ + * bluetoothEnabled, locationEnabled, wifiEnabled, safeArea[bottom, height, left, right, top, width],\ + * locationReducedAccuracy, theme[dark, light], host[appId], enableDebug, deviceOrientation[portrait, landscape]] + */ +export const getSystemInfoAsync: typeof Taro.getSystemInfoAsync = async (options = {}) => { + const { success, fail, complete } = options + const handle = new MethodHandler({ name: 'getSystemInfoAsync', success, fail, complete }) + try { + const info = await getSystemInfoSync() + return handle.success(info) + } catch (error) { + return handle.fail({ + errMsg: error, + }) + } +} + /** * 获取系统信息 * diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/update/getUpdateManager.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/update/getUpdateManager.ts new file mode 100644 index 000000000000..8a2b6bf1831f --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/update/getUpdateManager.ts @@ -0,0 +1,14 @@ +import Taro from '@tarojs/api' + +import { NativeUpdateManager } from '../../interface/NativeUpdateManager' + +/** + * 获取全局唯一的版本更新管理器 + * + * @canUse getUpdateManager + * @null_implementation + */ +export const getUpdateManager: typeof Taro.getUpdateManager = () => { + // 使用native方法 + return NativeUpdateManager.getUpdateManager() +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/update/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/update/index.ts new file mode 100644 index 000000000000..7c62d77d070a --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/update/index.ts @@ -0,0 +1,9 @@ +/** + * 更新客户端版本 + * + * @canNotUse updateWeChatApp + */ +export { updateWeChatApp } from '@tarojs/taro-h5' + +// 获取全局唯一的版本更新管理器,用于管理小程序更新 +export * from './getUpdateManager' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts new file mode 100644 index 000000000000..c606f0829821 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts @@ -0,0 +1,251 @@ +import Taro from '@tarojs/api' +import { safeExecute } from '@tarojs/runtime' +import { isNil } from 'lodash' +import { parse } from 'query-string' + +import { CallbackManager } from '../../utils/handler' + +const unhandledRejectionCallbackManager = new CallbackManager<[Taro.onUnhandledRejection.Result]>() +const themeChangeCallbackManager = new CallbackManager<[Taro.onThemeChange.Result]>() +const pageNotFoundCallbackManager = new CallbackManager<[Taro.onPageNotFound.Result]>() +const errorCallbackManager = new CallbackManager>() +const appShowCallbackManager = new CallbackManager<[Taro.onAppShow.CallbackResult]>() +const appHideCallbackManager = new CallbackManager<[Taro.onAppShow.CallbackResult]>() + +const unhandledRejectionListener = (res: PromiseRejectionEvent) => { + unhandledRejectionCallbackManager.trigger(res) +} + +let themeMatchMedia: MediaQueryList | null = null +const themeChangeListener = (res: MediaQueryListEvent) => { + themeChangeCallbackManager.trigger({ + theme: res.matches ? 'dark' : 'light', + }) +} + +const pageNotFoundListener = (res: Taro.onPageNotFound.Result) => { + pageNotFoundCallbackManager.trigger(res) +} + +const errorListener = (res: ErrorEvent) => { + // @ts-ignore + errorCallbackManager.trigger(res.stack || res.message || res) +} + +const getApp = () => { + const path = Taro.Current.page?.path + return { + /** 小程序切前台的路径 */ + path: path?.substring(0, path.indexOf('?')) || '', + /** 小程序切前台的 query 参数 */ + query: parse(location.search), + /** 来源信息。 */ + referrerInfo: {}, + /** 小程序切前台的[场景值](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html) */ + scene: 0, + /** shareTicket,详见[获取更多转发信息](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html) */ + shareTicket: '', + } +} + +/** + * 监听未处理的Promise拒绝事件 + * + * @canUse onUnhandledRejection + * @__callback [reason, promise] + */ +export const onUnhandledRejection: typeof Taro.onUnhandledRejection = (callback) => { + unhandledRejectionCallbackManager.add(callback) + if (unhandledRejectionCallbackManager.count() === 1) { + window.addEventListener('unhandledrejection', unhandledRejectionListener) + } +} + +/** + * 监听系统主题改变事件 + * + * @canUse onThemeChange + * @__callback [theme[light, dark]] + */ +export const onThemeChange: typeof Taro.onThemeChange = (callback) => { + themeChangeCallbackManager.add(callback) + if (themeChangeCallbackManager.count() === 1) { + if (isNil(themeMatchMedia)) { + themeMatchMedia = window.matchMedia('(prefers-color-scheme: light)') + } + themeMatchMedia.addEventListener('change', themeChangeListener) + } +} + +/** + * 监听程序要打开的页面不存在事件 + * + * @canUse onPageNotFound + * @__callback [isEntryPage, path, query] + */ +export const onPageNotFound: typeof Taro.onPageNotFound = (callback) => { + pageNotFoundCallbackManager.add(callback) + if (pageNotFoundCallbackManager.count() === 1) { + Taro.eventCenter.on('__taroRouterNotFound', pageNotFoundListener) + } +} + +/** + * 监听小程序错误事件 + * + * @canUse onError + */ +export const onError: typeof Taro.onError = (callback) => { + errorCallbackManager.add(callback) + if (errorCallbackManager.count() === 1) { + window.addEventListener('error', errorListener) + } +} + +/** + * 监听音频中断结束事件 + * + * @canNotUse onAudioInterruptionEnd + */ +export { onAudioInterruptionEnd } from '@tarojs/taro-h5' + +/** + * 监听音频因为受到系统占用而被中断开始事件 + * + * @canNotUse onAudioInterruptionBegin + */ +export { onAudioInterruptionBegin } from '@tarojs/taro-h5' + + +// app 以及 page onShow/onHide 生命周期回调处理 +// --------------------------------------------------- +const appPageShowListener = () => { + if (document.visibilityState !== 'hidden') { + appShowCallbackManager.trigger(getApp()) + Taro.Current.page?.onShow?.() + } +} + +const appPageHideListener = () => { + if (document.visibilityState === 'hidden') { + if (Taro.Current.page?.path) { + safeExecute(Taro.Current.page?.path, 'onHide') + } + appHideCallbackManager.trigger(getApp()) + } +} + +window.addEventListener('visibilitychange', appPageShowListener) +window.addEventListener('visibilitychange', appPageHideListener) + +appShowCallbackManager.add((opt: any) => { + Taro.Current.app?.onShow?.(opt) +}) + +appHideCallbackManager.add(() => { + Taro.Current.app?.onHide?.() +}) + +/** + * 监听小程序切前台事件 + * + * @canUse onAppShow + * @__callback [path, query, scene, shareTicket, referrerInfo] + */ +export const onAppShow: typeof Taro.onAppShow = (callback) => { + appShowCallbackManager.insert(-1, callback) +} + +/** + * 监听小程序切后台事件 + * + * @canUse onAppHide + */ +export const onAppHide: typeof Taro.onAppHide = (callback) => { + appHideCallbackManager.insert(-1, callback) +} + +/** + * 取消监听小程序切前台事件 + * + * @canUse offAppShow + */ +export const offAppShow: typeof Taro.offAppShow = (callback) => { + appShowCallbackManager.removeEvery(callback) +} + +/** + * 取消监听小程序切后台事件 + * + * @canUse offAppHide + */ +export const offAppHide: typeof Taro.offAppHide = (callback) => { + appHideCallbackManager.removeEvery(callback) +} + + +/** + * 取消监听未处理的 Promise 拒绝事件 + * + * @canUse offUnhandledRejection + */ +export const offUnhandledRejection: typeof Taro.offUnhandledRejection = (callback) => { + unhandledRejectionCallbackManager.remove(callback) + if (unhandledRejectionCallbackManager.count() === 0) { + window.removeEventListener('unhandledrejection', unhandledRejectionListener) + } +} + +/** + * 取消监听系统主题改变事件 + * + * @canUse offThemeChange + */ +export const offThemeChange: typeof Taro.offThemeChange = (callback) => { + themeChangeCallbackManager.remove(callback) + if (themeChangeCallbackManager.count() === 0) { + if (isNil(themeMatchMedia)) { + themeMatchMedia = window.matchMedia('(prefers-color-scheme: light)') + } + themeMatchMedia.removeEventListener('change', themeChangeListener) + themeMatchMedia = null + } +} + +/** + * 取消监听小程序要打开的页面不存在事件 + * + * @canUse offPageNotFound + */ +export const offPageNotFound: typeof Taro.offPageNotFound = (callback) => { + pageNotFoundCallbackManager.remove(callback) + if (pageNotFoundCallbackManager.count() === 0) { + Taro.eventCenter.off('__taroRouterNotFound', pageNotFoundListener) + } +} + +/** + * 取消监听音频播放错误事件 + * + * @canUse offError + */ +export const offError: typeof Taro.offError = (callback) => { + errorCallbackManager.remove(callback) + if (errorCallbackManager.count() === 0) { + window.removeEventListener('error', errorListener) + } +} + +/** + * 取消监听音频中断结束事件 + * + * @canNotUse offAudioInterruptionEnd + */ +export { offAudioInterruptionEnd } from '@tarojs/taro-h5' + +/** + * 取消监听音频因为受到系统占用而被中断开始事件 + * + * @canNotUse offAudioInterruptionBegin + */ +export { offAudioInterruptionBegin } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasGetImageData.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasGetImageData.ts new file mode 100644 index 000000000000..dbf9204bebd6 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasGetImageData.ts @@ -0,0 +1,35 @@ +import Taro from '@tarojs/api' + +import { findDOM } from '../utils' +import { MethodHandler } from '../utils/handler' + +/** + * 获取 canvas 区域隐含的像素数据。 + * + * @canUse canvasGetImageData + * @__object [canvasId, x, y, height, width] + * @__success [data, height, width] + */ +export const canvasGetImageData: typeof Taro.canvasGetImageData = ( + { canvasId, success, fail, complete, x, y, width, height }, + inst +) => { + const handle = new MethodHandler({ name: 'canvasGetImageData', success, fail, complete }) + const el = findDOM(inst) as HTMLElement + const canvas = el?.querySelector(`canvas[canvas-id="${canvasId}"]`) as HTMLCanvasElement + + try { + const ctx = canvas?.getContext('2d') + // TODO ImageData => Uint8ClampedArray + const data = ctx?.getImageData(x, y, width, height) as unknown as Uint8ClampedArray + return handle.success({ + width, + height, + data, + }) + } catch (e) { + return handle.fail({ + errMsg: e.message, + }) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasPutImageData.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasPutImageData.ts new file mode 100644 index 000000000000..453f54afd05f --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasPutImageData.ts @@ -0,0 +1,30 @@ +import Taro from '@tarojs/api' + +import { findDOM } from '../utils' +import { MethodHandler } from '../utils/handler' + +/** + * 将像素数据绘制到画布 + * + * @canUse canvasPutImageData + * @__object [canvasId, data, x, y] + */ +export const canvasPutImageData: typeof Taro.canvasPutImageData = ( + { canvasId, data, x, y, success, fail, complete }, + inst +) => { + const handle = new MethodHandler({ name: 'canvasPutImageData', success, fail, complete }) + const el = findDOM(inst) as HTMLElement + const canvas = el?.querySelector(`canvas[canvas-id="${canvasId}"]`) as HTMLCanvasElement + + try { + const ctx = canvas.getContext('2d') + // TODO Uint8ClampedArray => ImageData + ctx?.putImageData(data as unknown as ImageData, x, y) + return handle.success() + } catch (e) { + return handle.fail({ + errMsg: e.message, + }) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/index.ts index 37ceb8eea2f9..32bb19421d75 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/index.ts @@ -1,12 +1,70 @@ +/** + * 创建离屏 canvas 实例 + * + * @canNotUse createOffscreenCanvas + */ +export { createOffscreenCanvas } from '@tarojs/taro-h5' + /** 创建 canvas 的绘图上下文 CanvasContext 对象 */ export * from './createCanvasContext' /** 把当前画布指定区域的内容导出生成指定大小的图片 */ export * from './canvasToTempFilePath' +/** 将像素数据绘制到画布 */ +export * from './canvasPutImageData' + +/** 获取 canvas 区域隐含的像素数据 */ +export * from './canvasGetImageData' + +/** + * CanvasGradient对象 + * + * @canUse CanvasGradient + * @__class [addColorStop] + */ + +/** + * Color实例 + * + * @canNotUse Color + */ + +/** + * Image实例 + * + * @canUse Image + * @__class [src, height, width, referrerPolicy, onerror, onload] + */ + +/** + * ImageData对象 + * + * @canUse ImageData + * @__class [width, height, data] + */ + +/** + * 离屏 canvas 实例,可通过 Taro.createOffscreenCanvas 创建 + * + * @canNotUse OffscreenCanvas + */ + +/** + * Path2D + * + * @canUse Path2D + */ + +/** + * RenderingContext + * + * @canUse RenderingContext + */ + /** - * Canvas 实例, 可通过 SelectorQuery 获取。 - * + * Canvas 实例 + * * @canUse Canvas * @__class [cancelAnimationFrame, createImageData, createImage, createPath2D, getContext, requestAnimationFrame, toDataURL] - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/index.ts new file mode 100644 index 000000000000..9aede9db09ba --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/index.ts @@ -0,0 +1,4 @@ +export * from './offAccelerometerChange' +export * from './onAccelerometerChange' +export * from './startAccelerometer' +export * from './stopAccelerometer' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/offAccelerometerChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/offAccelerometerChange.ts new file mode 100644 index 000000000000..e340c58e3591 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/offAccelerometerChange.ts @@ -0,0 +1,24 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 取消监听加速度数据事件,参数为空,则取消所有的事件监听 + * + * @canUse offAccelerometerChange + */ +export const offAccelerometerChange: typeof Taro.offAccelerometerChange = (callback) => { + const name = 'offAccelerometerChange' + + // callback must be an Function or undefined + const isValid = shouldBeFunction(callback).flag || typeof callback === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.offAccelerometerChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/onAccelerometerChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/onAccelerometerChange.ts new file mode 100644 index 000000000000..124f6bc2ae11 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/onAccelerometerChange.ts @@ -0,0 +1,28 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 监听加速度数据事件。频率根据 Taro.startAccelerometer() 的 interval 参数。可使用 Taro.stopAccelerometer() 停止监听。 + * + * @canUse onAccelerometerChange + * @__callback [x, y, z] + */ +export const onAccelerometerChange: typeof Taro.onAccelerometerChange = (callback) => { + const name = 'onAccelerometerChange' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + if (!callback.name) { + Object.defineProperty(callback, 'name', { value: `${name}` }) + } + // @ts-ignore + native.onAccelerometerChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts new file mode 100644 index 000000000000..9f449e86974f --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts @@ -0,0 +1,42 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 开始监听加速度数据。 + * + * @canUse startAccelerometer + * @__object [interval[game, ui, normal]] + */ +export const startAccelerometer: typeof Taro.startAccelerometer = (options) => { + const name = 'startAccelerometer' + + return new Promise((resolve, reject) => { + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return reject(res) + } + const { + interval = 'normal', + success, + fail, + complete + } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + // @ts-ignore + native.startAccelerometer({ + interval: interval, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (res: any) => { + handle.fail(res, { resolve, reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/stopAccelerometer.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/stopAccelerometer.ts new file mode 100644 index 000000000000..1930c1baba50 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/stopAccelerometer.ts @@ -0,0 +1,35 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 停止监听加速度数据。 + * + * @canUse stopAccelerometer + */ +export const stopAccelerometer: typeof Taro.stopAccelerometer = (options) => { + const name = 'stopAccelerometer' + + return new Promise((resolve, reject) => { + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + // @ts-ignore + native.stopAccelerometer({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (res: any) => { + handle.fail(res, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts new file mode 100644 index 000000000000..fabb804ba783 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts @@ -0,0 +1,6 @@ +/** + * 检测是否开启视觉无障碍功能 + * + * @canNotUse checkIsOpenAccessibility + */ +export { checkIsOpenAccessibility } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts new file mode 100644 index 000000000000..05ddc74267db --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts @@ -0,0 +1,14 @@ +/** + * Taro.getBatteryInfo 的同步版本 Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用 + * + * @canNotUse getBatteryInfoSync + */ +export { getBatteryInfoSync } from '@tarojs/taro-h5' + +/** + * 获取设备电量 + * + * @canUse getBatteryInfo + * @__success [isCharging, level] + */ +export { getBatteryInfo } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts new file mode 100644 index 000000000000..0464e21960db --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts @@ -0,0 +1,60 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 断开与低功耗蓝牙设备的连接 + * + * @canUse closeBLEConnection + * @__object [deviceId] + */ +export const closeBLEConnection: typeof Taro.closeBLEConnection = (options) => { + const name = 'closeBLEConnection' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { deviceId, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + // options.deviceId must be string + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId + }) + }, + { resolve, reject } + ) + } + + native.closeBLEConnection({ + deviceId: deviceId, + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: '', + /** 错误码 */ + errCode: res[0] + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts new file mode 100644 index 000000000000..a6a75a6a53d1 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts @@ -0,0 +1,62 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 连接低功耗蓝牙设备 + * + * @canUse createBLEConnection + * @__object [deviceId, timeout] + */ +export const createBLEConnection: typeof Taro.createBLEConnection = (options) => { + const name = 'createBLEConnection' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { deviceId, timeout, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + // options.deviceId must be string + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId + }) + }, + { resolve, reject } + ) + } + + + native.createBLEConnection({ + deviceId: deviceId, + timeout: timeout, + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: '', + /** 错误码 */ + errCode: res[0] + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts new file mode 100644 index 000000000000..44957ba66eef --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts @@ -0,0 +1,70 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 获取蓝牙设备某个服务中所有特征值 + * + * @canUse getBLEDeviceCharacteristics + * @__object [deviceId, serviceId] + * @__success [characteristics] + */ +export const getBLEDeviceCharacteristics: typeof Taro.getBLEDeviceCharacteristics = (options) => { + const name = 'getBLEDeviceCharacteristics' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { deviceId, serviceId, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + characteristics?: object + errMsg?: string + }>({ name, success, fail, complete }) + + // options.deviceId must be string + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId + }) + }, + { resolve, reject } + ) + } + + if (typeof serviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'serviceId', + correct: 'string', + wrong: serviceId + }) + }, + { resolve, reject } + ) + } + + native.getBLEDeviceCharacteristics({ + deviceId: deviceId, + serviceId: serviceId, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts new file mode 100644 index 000000000000..fa77b43d37f6 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts @@ -0,0 +1,55 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 获取蓝牙低功耗设备的信号强度 + * + * @canUse getBLEDeviceRSSI + * @__object [deviceId] + * @__success [RSSI] + */ +export const getBLEDeviceRSSI: typeof Taro.getBLEDeviceRSSI = (options) => { + const name = 'getBLEDeviceRSSI' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { deviceId, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + RSSI?: number + }>({ name, success, fail, complete }) + + // options.deviceId must be string + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId + }) + }, + { resolve, reject } + ) + } + + native.getBLEDeviceRSSI({ + deviceId: deviceId, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts new file mode 100644 index 000000000000..97087ff2ba08 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts @@ -0,0 +1,56 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 获取蓝牙设备所有服务(service) + * + * @canUse getBLEDeviceServices + * @__object [deviceId] + * @__success [services] + */ +export const getBLEDeviceServices: typeof Taro.getBLEDeviceServices = (options) => { + const name = 'getBLEDeviceServices' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { deviceId, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + services?: object + erMsg?: string + }>({ name, success, fail, complete }) + + // options.deviceId must be string + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId + }) + }, + { resolve, reject } + ) + } + + native.getBLEDeviceServices({ + deviceId: deviceId, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts new file mode 100644 index 000000000000..ccac7d4ae365 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts @@ -0,0 +1,45 @@ +/** + * 监听蓝牙低功耗的最大传输单元变化事件 + * + * @canNotUse onBLEMTUChange + */ +export { onBLEMTUChange } from '@tarojs/taro-h5' + +/** + * 取消监听蓝牙低功耗的最大传输单元变化事件 + * + * @canNotUse offBLEMTUChange + */ +export { offBLEMTUChange } from '@tarojs/taro-h5' + +/** + * 取消监听蓝牙低功耗连接状态的改变事件 + * + * @canNotUse offBLEConnectionStateChange + */ +export { offBLEConnectionStateChange } from '@tarojs/taro-h5' + +/** + * 取消监听蓝牙低功耗设备的特征值变化事件 + * + * @canNotUse offBLECharacteristicValueChange + */ +export { offBLECharacteristicValueChange } from '@tarojs/taro-h5' + +/** + * 获取蓝牙低功耗的最大传输单元 + * + * @canNotUse getBLEMTU + */ +export * from './closeBLEConnection' +export * from './createBLEConnection' +export * from './getBLEDeviceCharacteristics' +export * from './getBLEDeviceRSSI' +export * from './getBLEDeviceServices' +export * from './notifyBLECharacteristicValueChange' +export * from './onBLECharacteristicValueChange' +export * from './onBLEConnectionStateChange' +export * from './readBLECharacteristicValue' +export * from './setBLEMTU' +export * from './writeBLECharacteristicValue' +export { getBLEMTU } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts new file mode 100644 index 000000000000..8775729fddb3 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts @@ -0,0 +1,97 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 启用低功耗蓝牙设备特征值变化时的 notify 功能,订阅特征值 + * + * @canUse notifyBLECharacteristicValueChange + * @__object [characteristicId, deviceId, serviceId, state] + */ +export const notifyBLECharacteristicValueChange: typeof Taro.notifyBLECharacteristicValueChange = (options) => { + const name = 'notifyBLECharacteristicValueChange' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { characteristicId, deviceId, serviceId, state, success, fail, complete } = options as Exclude< + typeof options, + undefined + > + + const handle = new MethodHandler({ name, success, fail, complete }) + + // options.characteristicId must be string + if (typeof characteristicId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'characteristicId', + correct: 'string', + wrong: characteristicId + }) + }, + { resolve, reject } + ) + } + + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId + }) + }, + { resolve, reject } + ) + } + + if (typeof serviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'serviceId', + correct: 'string', + wrong: serviceId + }) + }, + { resolve, reject } + ) + } + + if (typeof state !== 'boolean') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'state', + correct: 'boolean', + wrong: state + }) + }, + { resolve, reject } + ) + } + + native.notifyBLECharacteristicValueChange({ + characteristicId: characteristicId, + deviceId: deviceId, + serviceId: serviceId, + state: state, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLECharacteristicValueChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLECharacteristicValueChange.ts new file mode 100644 index 000000000000..e368f4f83ebd --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLECharacteristicValueChange.ts @@ -0,0 +1,24 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 监听低功耗蓝牙设备的特征值变化事件 + * + * @canUse onBLECharacteristicValueChange + * @__callback [characteristicId, deviceId, serviceId, value] + */ +export const onBLECharacteristicValueChange: typeof Taro.onBLECharacteristicValueChange = (callback) => { + const name = 'onBLECharacteristicValueChange' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + native.onBLECharacteristicValueChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLEConnectionStateChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLEConnectionStateChange.ts new file mode 100644 index 000000000000..fbc15529c52b --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/onBLEConnectionStateChange.ts @@ -0,0 +1,24 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 监听低功耗蓝牙连接状态的改变事件 + * + * @canUse onBLEConnectionStateChange + * @__callback [connected, deviceId] + */ +export const onBLEConnectionStateChange: typeof Taro.onBLEConnectionStateChange = (callback) => { + const name = 'onBLEConnectionStateChange' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + native.onBLEConnectionStateChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts new file mode 100644 index 000000000000..b364f4fdab10 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts @@ -0,0 +1,89 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 读取低功耗蓝牙设备的特征值的二进制数据值 + * + * @canUse readBLECharacteristicValue + * @__object [characteristicId, deviceId, serviceId] + */ +export const readBLECharacteristicValue: typeof Taro.readBLECharacteristicValue = (options) => { + const name = 'readBLECharacteristicValue' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { characteristicId, deviceId, serviceId, success, fail, complete } = options as Exclude< + typeof options, + undefined + > + + const handle = new MethodHandler({ name, success, fail, complete }) + + // options.characteristicId must be string + if (typeof characteristicId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'characteristicId', + correct: 'string', + wrong: characteristicId, + }), + }, + { resolve, reject } + ) + } + + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId, + }), + }, + { resolve, reject } + ) + } + + if (typeof serviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'serviceId', + correct: 'string', + wrong: serviceId, + }), + }, + { resolve, reject } + ) + } + + native.readBLECharacteristicValue({ + characteristicId: characteristicId, + deviceId: deviceId, + serviceId: serviceId, + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: '', + /** 错误码 */ + errCode: res[0], + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/setBLEMTU.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/setBLEMTU.ts new file mode 100644 index 000000000000..4217545ff288 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/setBLEMTU.ts @@ -0,0 +1,86 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 协商设置蓝牙低功耗的最大传输单元 + * + * @canUse setBLEMTU + * @__object [deviceId, mtu] + * @__success [mtu] + */ +export const setBLEMTU: typeof Taro.setBLEMTU = (options) => { + const name = 'setBLEMTU' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { deviceId, mtu, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + mtu?: string + }>({ name, success, fail, complete }) + + // options.deviceId must be string + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId, + }), + }, + { resolve, reject } + ) + } + + if (typeof mtu !== 'number') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'mtu', + correct: 'number', + wrong: mtu, + }), + }, + { resolve, reject } + ) + } + + if (mtu > 512 || mtu < 22) { + console.error('invalid input') + return handle.fail() + } + + native.setBLEMTU({ + deviceId: deviceId, + mtu: mtu, + success: (res: any) => { + const result: Taro.setBLEMTU.SuccessCallbackResult = { + /** 最终协商的 MTU 值,与传入参数一致。 */ + mtu: `${mtu}`, + errMsg: res.errMsg, + errCode: res.errCode, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + const result: Taro.setBLEMTU.FailCallbackResult = { + /** 最终协商的 MTU 值。协商失败则无此参数。 */ + mtu: '', + errMsg: err.errMsg, + errCode: err.errCode, + } + handle.fail(result, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts new file mode 100644 index 000000000000..add7769b65ba --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts @@ -0,0 +1,106 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 向低功耗蓝牙设备特征值中写入二进制数据 + * + * @canUse writeBLECharacteristicValue + * @__object [characteristicId, deviceId, serviceId, value] + */ +export const writeBLECharacteristicValue: typeof Taro.writeBLECharacteristicValue = (options) => { + const name = 'writeBLECharacteristicValue' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { characteristicId, deviceId, serviceId, value, success, fail, complete } = options as Exclude< + typeof options, + undefined + > + + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + // options.object must be object + if (typeof characteristicId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'characteristicId', + correct: 'string', + wrong: characteristicId, + }), + }, + { resolve, reject } + ) + } + + if (typeof deviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'deviceId', + correct: 'string', + wrong: deviceId, + }), + }, + { resolve, reject } + ) + } + + if (typeof serviceId !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'serviceId', + correct: 'string', + wrong: serviceId, + }), + }, + { resolve, reject } + ) + } + + // options.value must be object + if (typeof value !== 'object') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'value', + correct: 'object', + wrong: value, + }), + }, + { resolve, reject } + ) + } + + native.writeBLECharacteristicValue({ + characteristicId: characteristicId, + deviceId: deviceId, + serviceId: serviceId, + value: value, + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: '', + /** 错误码 */ + errCode: res[0], + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts new file mode 100644 index 000000000000..591c67b45aae --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts @@ -0,0 +1,26 @@ +/** + * 监听当前外围设备被连接或断开连接事件 + * + * @canNotUse onBLEPeripheralConnectionStateChanged + */ +export { onBLEPeripheralConnectionStateChanged } from '@tarojs/taro-h5' + +/** + * 取消监听当前外围设备被连接或断开连接事件 + * + * @canNotUse offBLEPeripheralConnectionStateChanged + */ +export { offBLEPeripheralConnectionStateChanged } from '@tarojs/taro-h5' + +/** + * 建立本地作为蓝牙低功耗外围设备的服务端,可创建多个 + * + * @canNotUse createBLEPeripheralServer + */ +export { createBLEPeripheralServer } from '@tarojs/taro-h5' + +/** + * 外围设备的服务端 + * + * @canNotUse BLEPeripheralServer + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/closeBluetoothAdapter.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/closeBluetoothAdapter.ts new file mode 100644 index 000000000000..a417f49e2946 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/closeBluetoothAdapter.ts @@ -0,0 +1,41 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 关闭蓝牙模块 + * + * @canUse closeBluetoothAdapter + */ +export const closeBluetoothAdapter: typeof Taro.closeBluetoothAdapter = (options) => { + const name = 'closeBluetoothAdapter' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + native.closeBluetoothAdapter({ + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: res[0] === 'ok' ? `${name}:${res[0]}` : res[0], + /** 错误码 */ + errCode: 0, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothAdapterState.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothAdapterState.ts new file mode 100644 index 000000000000..563741846e39 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothAdapterState.ts @@ -0,0 +1,43 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 获取本机蓝牙适配器状态 + * + * @canUse getBluetoothAdapterState + * @__success [available, discovering] + */ +export const getBluetoothAdapterState: typeof Taro.getBluetoothAdapterState = (options) => { + const name = 'getBluetoothAdapterState' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler<{ + available?: boolean + discovering?: boolean + errMsg?: string + }>({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + native.getBluetoothAdapterState({ + success: (res: any) => { + const result: Taro.getBluetoothAdapterState.SuccessCallbackResult = { + available: res[0].available, + discovering: res[0].discovering, + errMsg: '', + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothDevices.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothDevices.ts new file mode 100644 index 000000000000..d32d37899e0e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getBluetoothDevices.ts @@ -0,0 +1,37 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 获取在蓝牙模块生效期间所有已发现的蓝牙设备 + * + * @canUse getBluetoothDevices + * @__success [devices] + */ +export const getBluetoothDevices: typeof Taro.getBluetoothDevices = (options) => { + const name = 'getBluetoothDevices' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler<{ + devices?: object + errMsg?: string + }>({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + native.getBluetoothDevices({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getConnectedBluetoothDevices.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getConnectedBluetoothDevices.ts new file mode 100644 index 000000000000..394656af4e83 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/getConnectedBluetoothDevices.ts @@ -0,0 +1,42 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 根据 uuid 获取处于已连接状态的设备 + * + * @canUse getConnectedBluetoothDevices + * @__object [services] + * @__success [devices] + */ +export const getConnectedBluetoothDevices: typeof Taro.getConnectedBluetoothDevices = (options) => { + const name = 'getConnectedBluetoothDevices' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { services, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + devices?: object + errMsg?: string + }>({ name, success, fail, complete }) + + native.getConnectedBluetoothDevices({ + services: services, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts new file mode 100644 index 000000000000..d712cae3b3d1 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts @@ -0,0 +1,24 @@ +/** + * 蓝牙配对接口 + * + * @canNotUse makeBluetoothPair + */ +export { makeBluetoothPair } from '@tarojs/taro-h5' + +/** + * 查询蓝牙设备是否配对 + * + * @canNotUse isBluetoothDevicePaired + */ +export * from './closeBluetoothAdapter' +export * from './getBluetoothAdapterState' +export * from './getBluetoothDevices' +export * from './getConnectedBluetoothDevices' +export * from './offBluetoothAdapterStateChange' +export * from './offBluetoothDeviceFound' +export * from './onBluetoothAdapterStateChange' +export * from './onBluetoothDeviceFound' +export * from './openBluetoothAdapter' +export * from './startBluetoothDevicesDiscovery' +export * from './stopBluetoothDevicesDiscovery' +export { isBluetoothDevicePaired } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothAdapterStateChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothAdapterStateChange.ts new file mode 100644 index 000000000000..6f79e2507652 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothAdapterStateChange.ts @@ -0,0 +1,23 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 取消监听蓝牙适配器状态变化事件 + * + * @canUse offBluetoothAdapterStateChange + */ +export const offBluetoothAdapterStateChange: typeof Taro.offBluetoothAdapterStateChange = (callback) => { + const name = 'offBluetoothAdapterStateChange' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + native.offBluetoothAdapterStateChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts new file mode 100644 index 000000000000..c1c5122b6722 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts @@ -0,0 +1,30 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 取消监听寻找到新设备的事件 + * + * @canUse offBluetoothDeviceFound + */ +export const offBluetoothDeviceFound: typeof Taro.offBluetoothDeviceFound = (callback) => { + const name = 'offBluetoothDeviceFound' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + + native.offBluetoothDeviceFound((res: any) => { + const result: Taro.onBluetoothDeviceFound.CallbackResult = { + /** 新搜索到的设备列表 */ + devices: res, + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts new file mode 100644 index 000000000000..75a25864af18 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts @@ -0,0 +1,25 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 监听蓝牙适配器状态变化事件 + * + * @canUse onBluetoothAdapterStateChange + * @__callback [available, discovering] + */ +export const onBluetoothAdapterStateChange: typeof Taro.onBluetoothAdapterStateChange = (callback) => { + const name = 'onBluetoothAdapterStateChange' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + + native.onBluetoothAdapterStateChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts new file mode 100644 index 000000000000..068166753b6d --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts @@ -0,0 +1,31 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 监听寻找到新设备的事件 + * + * @canUse onBluetoothDeviceFound + * @__callback [devices] + */ +export const onBluetoothDeviceFound: typeof Taro.onBluetoothDeviceFound = (callback) => { + const name = 'onBluetoothDeviceFound' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + + native.onBluetoothDeviceFound((res: any) => { + const result: Taro.onBluetoothDeviceFound.CallbackResult = { + /** 新搜索到的设备列表 */ + devices: res, + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/openBluetoothAdapter.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/openBluetoothAdapter.ts new file mode 100644 index 000000000000..0abfe6f50a20 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/openBluetoothAdapter.ts @@ -0,0 +1,41 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 初始化蓝牙模块 + * + * @canUse openBluetoothAdapter + */ +export const openBluetoothAdapter: typeof Taro.openBluetoothAdapter = (options) => { + const name = 'openBluetoothAdapter' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + native.openBluetoothAdapter({ + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: res[0] === 'ok' ? `${name}:${res[0]}` : `${res[0]}`, + /** 错误码 */ + errCode: 0, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts new file mode 100644 index 000000000000..79fb44dd5b03 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts @@ -0,0 +1,52 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 开始搜寻附近的蓝牙外围设备 + * + * @canUse startBluetoothDevicesDiscovery + * @__object [allowDuplicatesKey, interval, services] + */ +export const startBluetoothDevicesDiscovery: typeof Taro.startBluetoothDevicesDiscovery = (options) => { + const name = 'startBluetoothDevicesDiscovery' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { allowDuplicatesKey, interval, services, success, fail, complete } = options as Exclude< + typeof options, + undefined + > + + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + + native.startBluetoothDevicesDiscovery({ + allowDuplicatesKey: allowDuplicatesKey, + interval: interval, + services: services, + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: res[0] === 0 ? `${name}:ok` : `${res[0]}`, + /** 错误码 */ + errCode: 0, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts new file mode 100644 index 000000000000..9ee233b4e853 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts @@ -0,0 +1,42 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 停止搜寻附近的蓝牙外围设备 + * + * @canUse stopBluetoothDevicesDiscovery + */ +export const stopBluetoothDevicesDiscovery: typeof Taro.stopBluetoothDevicesDiscovery = (options) => { + const name = 'stopBluetoothDevicesDiscovery' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + + native.stopBluetoothDevicesDiscovery({ + success: (res: any) => { + const result: TaroGeneral.BluetoothError = { + /** 错误信息 */ + errMsg: res[0] === 0 ? `${name}:ok` : `${res[0]}`, + /** 错误码 */ + errCode: 0, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts new file mode 100644 index 000000000000..7d232c4b75f4 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts @@ -0,0 +1,15 @@ +/** + * 向系统日历添加重复事件 + * + * @canUse addPhoneRepeatCalendar + * @__object [title, startTime, allDay, description, location, endTime, alarm, alarmOffset, repeatInterval, repeatEndTime] + */ +export { addPhoneRepeatCalendar } from '@tarojs/taro-h5' + +/** + * 向系统日历添加事件 + * + * @canUse addPhoneCalendar + * @__object [title, startTime, allDay, description, location, endTime, alarm, alarmOffset] + */ +export { addPhoneCalendar } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts new file mode 100644 index 000000000000..13130e977f96 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts @@ -0,0 +1,21 @@ +/** + * 剪贴板部分的api参考了Chameleon项目的实现: + * + * setClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/setClipBoardData + * getClipboardData: https://github.com/chameleon-team/chameleon-api/tree/master/src/interfaces/getClipBoardData + */ +/** + * 设置系统剪贴板的内容 + * + * @canUse setClipboardData + * @__object [data] + */ +export { setClipboardData } from '@tarojs/taro-h5' + +/** + * 获取系统剪贴板的内容 + * + * @canUse getClipboardData + * @__success [data] + */ +export { getClipboardData } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/index.ts new file mode 100644 index 000000000000..7ce56e758492 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/index.ts @@ -0,0 +1,4 @@ +export * from './offCompassChange' +export * from './onCompassChange' +export * from './startCompass' +export * from './stopCompass' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/offCompassChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/offCompassChange.ts new file mode 100644 index 000000000000..1a1441b569db --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/offCompassChange.ts @@ -0,0 +1,33 @@ +import Taro from '@tarojs/api' +import { shouldBeFunction } from 'src/api/apis/utils' +import { taroCallbackMap } from 'src/api/apis/utils/callbakMap' + +import native from '../../NativeApi' + +/** + * 取消监听罗盘数据变化事件,参数为空,则取消所有的事件监听。 + * + * @canUse offCompassChange + */ +export const offCompassChange: typeof Taro.offCompassChange = (callback) => { + const name = 'offCompassChange' + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + try { + if (taroCallbackMap.has(callback)) { + // @ts-ignore + native.offCompassChange(taroCallbackMap.get(callback)) + taroCallbackMap.delete(callback) + } else { + console.error('Invalid callback.') + } + } catch (exception) { + console.error(JSON.stringify(exception)) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts new file mode 100644 index 000000000000..542d203a6e43 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts @@ -0,0 +1,42 @@ +import Taro from '@tarojs/api' +import { shouldBeFunction } from 'src/api/apis/utils' +import { taroCallbackMap } from 'src/api/apis/utils/callbakMap' + +import native from '../../NativeApi' + +/** + * 监听罗盘数据变化事件。频率:5 次/秒,接口调用后会自动开始监听,可使用 stopCompass 停止监听 + * + * @canUse onCompassChange + * @__callback [accuracy, direction] + */ +export const onCompassChange: typeof Taro.onCompassChange = callback => { + const name = 'onCompassChange' + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + try { + if (!taroCallbackMap.has(callback)) { + // eslint-disable-next-line no-inner-declarations + function newCallback (res: any) { + const result: Taro.onCompassChange.OnCompassChangeCallbackResult = { + /** 精度 */ + accuracy: res.accuracy === 3 ? 'high' : 'unreliable', + /** 面对的方向度数 */ + direction: res.direction + } + callback(result) + } + taroCallbackMap.set(callback, newCallback) + // @ts-ignore + native.onCompassChange(newCallback) + } + } catch (exception) { + console.error(JSON.stringify(exception)) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/startCompass.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/startCompass.ts new file mode 100644 index 000000000000..d3192e438088 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/startCompass.ts @@ -0,0 +1,39 @@ +import Taro from '@tarojs/api' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 开始监听罗盘数据 + * + * @canUse startCompass + */ +export const startCompass: typeof Taro.startCompass = (options) => { + const name = 'startCompass' + return new Promise((resolve, reject) => { + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + native.startCompass({ + success: () => { + const result: TaroGeneral.CallbackResult = { + errMsg: `${name}:ok`, + } + handle.success(result, { resolve, reject }) + }, + fail: () => { + const result: TaroGeneral.CallbackResult = { + errMsg: `${name}:fail`, + } + handle.fail(result, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/stopCompass.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/stopCompass.ts new file mode 100644 index 000000000000..637cc9244278 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/stopCompass.ts @@ -0,0 +1,40 @@ +import Taro from '@tarojs/api' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 停止监听罗盘数据 + * + * @canUse stopCompass + */ +export const stopCompass: typeof Taro.stopCompass = (options) => { + const name = 'stopCompass' + return new Promise((resolve, reject) => { + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + // @ts-ignore + native.stopCompass({ + success: () => { + const result: TaroGeneral.CallbackResult = { + errMsg: `${name}:ok`, + } + handle.success(result, { resolve, reject }) + }, + fail: () => { + const result: TaroGeneral.CallbackResult = { + errMsg: `${name}:fail`, + } + handle.fail(result, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/addPhoneContact.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/addPhoneContact.ts new file mode 100644 index 000000000000..0c908be6438b --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/addPhoneContact.ts @@ -0,0 +1,112 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 添加手机通讯录联系人 + * + * @canUse addPhoneContact + * @__object [firstName, photoFilePath, nickName, middleName, lastName, remark, mobilePhoneNumber,\ + * weChatNumber, addressCountry, addressState, addressCity, addressStreet, addressPostalCode,\ + * organization, title, workFaxNumber, workPhoneNumber, hostNumber, email, url, workAddressCountry,\ + * workAddressState, workAddressCity, workAddressStreet, workAddressPostalCode, homeFaxNumber,\ + * homePhoneNumber, homeAddressCountry, homeAddressState, homeAddressCity, homeAddressStreet,\ + * homeAddressPostalCode] + */ +export const addPhoneContact: typeof Taro.addPhoneContact = (options) => { + const name = 'addPhoneContact' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { + firstName, + photoFilePath, + nickName, + middleName, + lastName, + remark, + mobilePhoneNumber, + weChatNumber, + addressCountry, + addressState, + addressCity, + addressStreet, + addressPostalCode, + organization, + title, + workFaxNumber, + workPhoneNumber, + hostNumber, + email, + url, + workAddressCountry, + workAddressState, + workAddressCity, + workAddressStreet, + workAddressPostalCode, + homeFaxNumber, + homePhoneNumber, + homeAddressCountry, + homeAddressState, + homeAddressCity, + homeAddressStreet, + homeAddressPostalCode, + success, + fail, + complete, + } = options as Exclude + + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.addPhoneContact({ + firstName: firstName, + photoFilePath: photoFilePath, + nickName: nickName, + middleName: middleName, + lastName: lastName, + remark: remark, + mobilePhoneNumber: mobilePhoneNumber, + weChatNumber: weChatNumber, + addressCountry: addressCountry, + addressState: addressState, + addressCity: addressCity, + addressStreet: addressStreet, + addressPostalCode: addressPostalCode, + organization: organization, + title: title, + workFaxNumber: workFaxNumber, + workPhoneNumber: workPhoneNumber, + hostNumber: hostNumber, + email: email, + url: url, + workAddressCountry: workAddressCountry, + workAddressState: workAddressState, + workAddressCity: workAddressCity, + workAddressStreet: workAddressStreet, + workAddressPostalCode: workAddressPostalCode, + homeFaxNumber: homeFaxNumber, + homePhoneNumber: homePhoneNumber, + homeAddressCountry: homeAddressCountry, + homeAddressState: homeAddressState, + homeAddressCity: homeAddressCity, + homeAddressStreet: homeAddressStreet, + homeAddressPostalCode: homeAddressPostalCode, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts new file mode 100644 index 000000000000..977e9126e77b --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts @@ -0,0 +1,7 @@ +/** + * 添加手机通讯录联系人 + * + * @canNotUse chooseContact + */ +export * from './addPhoneContact' +export { chooseContact } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts new file mode 100644 index 000000000000..e12bb7df2a82 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts @@ -0,0 +1,6 @@ +/** + * 获取密码学安全随机数 + * + * @canNotUse getRandomValues + */ +export { getRandomValues } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts new file mode 100644 index 000000000000..6d07027a3eed --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts @@ -0,0 +1,9 @@ +/** + * 取消监听陀螺仪数据变化事件。 + * + * @canNotUse offGyroscopeChange + */ +export * from './onGyroscopeChange' +export * from './startGyroscope' +export * from './stopGyroscope' +export { offGyroscopeChange } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts new file mode 100644 index 000000000000..71fcffc317e8 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts @@ -0,0 +1,14 @@ +import Taro from '@tarojs/taro' + +import native from '../../NativeApi' + +/** + * 监听陀螺仪数据变化事件。频率根据 Taro.startGyroscope() 的 interval 参数。可以使用 Taro.stopGyroscope() 停止监听。 + * + * @canUse onGyroscopeChange + * @__callback [x, y, z] + */ +export const onGyroscopeChange: typeof Taro.onGyroscopeChange = (callback) => { + // @ts-ignore + return native.onGyroscopeChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/startGyroscope.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/startGyroscope.ts new file mode 100644 index 000000000000..335c6d151305 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/startGyroscope.ts @@ -0,0 +1,39 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 开始监听陀螺仪数据 + * + * @canUse startGyroscope + * @__object [interval[game, ui, normal]] + */ +export const startGyroscope: typeof Taro.startGyroscope = (options) => { + const name = 'startGyroscope' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { interval, success, fail, complete } = options as Exclude + + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.startGyroscope({ + interval: interval, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/stopGyroscope.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/stopGyroscope.ts new file mode 100644 index 000000000000..c2343d003418 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/stopGyroscope.ts @@ -0,0 +1,37 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 停止监听陀螺仪数据 + * + * @canUse stopGyroscope + */ +export const stopGyroscope: typeof Taro.stopGyroscope = (options) => { + const name = 'stopGyroscope' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options as Exclude + + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.stopGyroscope({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts new file mode 100644 index 000000000000..5a975d13fb1a --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts @@ -0,0 +1,53 @@ +// 蓝牙-信标(Beacon) +/** + * 取消监听 iBeacon 设备更新事件 + * + * @canNotUse offBeaconUpdate + */ +export { offBeaconUpdate } from '@tarojs/taro-h5' + +/** + * 取消监听 iBeacon 服务状态变化事件 + * + * @canNotUse offBeaconServiceChange + */ +export { offBeaconServiceChange } from '@tarojs/taro-h5' + +/** + * 获取所有已搜索到的 iBeacon 设备 + * + * @canNotUse getBeacons + */ +export { getBeacons } from '@tarojs/taro-h5' + +/** + * 监听 iBeacon 服务状态变化事件,仅能注册一个监听 + * + * @canNotUse onBeaconServiceChange + */ +export { onBeaconServiceChange } from '@tarojs/taro-h5' + +/** + * 监听 iBeacon 设备更新事件,仅能注册一个监听 + * + * @canNotUse onBeaconUpdate + */ +export { onBeaconUpdate } from '@tarojs/taro-h5' + +/** + * 开始搜索附近的 iBeacon 设备 + * + * @canNotUse startBeaconDiscovery + */ +export { startBeaconDiscovery } from '@tarojs/taro-h5' + +/** + * 停止搜索附近的 iBeacon 设备 + * + * @canNotUse stopBeaconDiscovery + */ +export { stopBeaconDiscovery } from '@tarojs/taro-h5' + +/** + * @canNotUse IBeaconInfo + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/index.ts index 86769ae31369..5ae1f6c816d7 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/index.ts @@ -1,3 +1,24 @@ +export * from './accelerometer' +export * from './accessibility' +export * from './battery' +export * from './bluetooth' +export * from './bluetooth-ble' +export * from './bluetooth-peripheral' +export * from './calendar' +export * from './clipboard' +export * from './compass' +export * from './contact' +export * from './crypto' +export * from './gyroscope' +export * from './iBeacon' export * from './keyBoard' +export * from './memory' +export * from './motion' +export * from './network' +export * from './nfc' export * from './phone' -export * from './screen' \ No newline at end of file +export * from './scan' +export * from './screen' +export * from './sms' +export * from './vibrate' +export * from './wifi' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/index.ts index 842f5a07a69f..ae47ed1bbe91 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/index.ts @@ -1 +1,9 @@ +/** + * 在input、textarea等focus之后,获取输入框的光标位置 + * + * @canNotUse getSelectedTextRange + */ export * from './hideKeyboard' +export * from './offKeyboardHeightChange' +export * from './onKeyboardHeightChange' +export { getSelectedTextRange } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/offKeyboardHeightChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/offKeyboardHeightChange.ts new file mode 100644 index 000000000000..164ac123ab09 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/offKeyboardHeightChange.ts @@ -0,0 +1,22 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 取消监听键盘高度变化事件 + * + * @canUse offKeyboardHeightChange + */ +export const offKeyboardHeightChange: typeof Taro.offKeyboardHeightChange = (callback) => { + const name = 'offKeyboardHeightChange' + const isValid = shouldBeFunction(callback).flag || typeof callback === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.offKeyboardHeightChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/onKeyboardHeightChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/onKeyboardHeightChange.ts new file mode 100644 index 000000000000..90622f7aa76e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/keyBoard/onKeyboardHeightChange.ts @@ -0,0 +1,27 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +import native from '../../NativeApi' + +/** + * 监听键盘高度变化 + * + * @canUse onKeyboardHeightChange + * @__callback [height] + */ +export const onKeyboardHeightChange: typeof Taro.onKeyboardHeightChange = (callback) => { + const name = 'onKeyboardHeightChange' + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + if (!callback.name) { + Object.defineProperty(callback, 'name', { value: `${name}` }) + } + // @ts-ignore + native.onKeyboardHeightChange(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/index.ts new file mode 100644 index 000000000000..1c8297da37ae --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/index.ts @@ -0,0 +1,4 @@ +// 内存 + +export * from './offMemoryWarning' +export * from './onMemoryWarning' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts new file mode 100644 index 000000000000..92aa77d865f7 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts @@ -0,0 +1,17 @@ +import Taro from '@tarojs/taro' + +import native from '../../NativeApi' + +/** + * 取消监听内存不足告警事件 + * + * @canUse offMemoryWarning + * @null_implementation + */ +export const offMemoryWarning: typeof Taro.offMemoryWarning = (callback) => { + // @ts-ignore + if (native[offMemoryWarning]) { + // @ts-ignore + native.offMemoryWarning(callback) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts new file mode 100644 index 000000000000..3931b353797c --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts @@ -0,0 +1,20 @@ +import Taro from '@tarojs/taro' + +/** + * 监听内存不足告警事件 + * + * @canUse onMemoryWarning + * @null_implementation + */ +export const onMemoryWarning: typeof Taro.onMemoryWarning = (callback) => { + // @ts-ignore + if (native[onMemoryWarning]) { + // @ts-ignore + native.onMemoryWarning((res: any) => { + const ret: Taro.onMemoryWarning.CallbackResult = { + level: res.level + } + callback(ret) + }) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts new file mode 100644 index 000000000000..6e722bfb67fa --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts @@ -0,0 +1,29 @@ +/** + * 停止监听设备方向的变化。 + * + * @canUse stopDeviceMotionListening + */ +export { stopDeviceMotionListening } from '@tarojs/taro-h5' + +/** + * 开始监听设备方向的变化。 + * + * @canUse startDeviceMotionListening + * @__object [interval[game, ui, normal]] + */ +export { startDeviceMotionListening } from '@tarojs/taro-h5' + +/** + * 监听设备方向变化事件。 + * + * @canUse onDeviceMotionChange + * @__callback [alpha, beta, gamma] + */ +export { onDeviceMotionChange } from '@tarojs/taro-h5' + +/** + * 取消监听设备方向变化事件,参数为空,则取消所有的事件监听。 + * + * @canUse offDeviceMotionChange + */ +export { offDeviceMotionChange } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts new file mode 100644 index 000000000000..537f7698d260 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts @@ -0,0 +1,47 @@ +/** + * 获取网络类型 + * + * @canUse getNetworkType + * @__success [networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] + */ +export { getNetworkType } from '@tarojs/taro-h5' + +/** + * 在最近的八次网络请求中, 出现下列三个现象之一则判定弱网。 + * - 出现三次以上连接超时 + * - 出现三次 rtt 超过 400 + * - 出现三次以上的丢包 + * > 弱网事件通知规则是: 弱网状态变化时立即通知, 状态不变时 30s 内最多通知一次。 + * + * @canNotUse onNetworkWeakChange + */ +export { onNetworkWeakChange } from '@tarojs/taro-h5' + +/** + * 监听网络状态变化 + * + * @canUse onNetworkStatusChange + * @__success [isConnected, networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] + */ +export { onNetworkStatusChange } from '@tarojs/taro-h5' + +/** + * 取消监听弱网状态变化事件 + * + * @canNotUse offNetworkWeakChange + */ +export { offNetworkWeakChange } from '@tarojs/taro-h5' + +/** + * 取消监听网络状态变化事件,参数为空,则取消所有的事件监听 + * + * @canUse offNetworkStatusChange + */ +export { offNetworkStatusChange } from '@tarojs/taro-h5' + +/** + * 获取局域网IP地址 + * + * @canNotUse getLocalIPAddress + */ +export { getLocalIPAddress } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts new file mode 100644 index 000000000000..b9a3f1bd51a9 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts @@ -0,0 +1,102 @@ +/** + * 关闭 NFC 模块 + * + * @canNotUse stopHCE + */ +export { stopHCE } from '@tarojs/taro-h5' + +/** + * 初始化 NFC 模块 + * + * @canNotUse startHCE + */ +export { startHCE } from '@tarojs/taro-h5' + +/** + * 发送 NFC 消息 + * + * @canNotUse sendHCEMessage + */ +export { sendHCEMessage } from '@tarojs/taro-h5' + +/** + * 监听接收 NFC 设备消息事件,仅能注册一个监听 + * + * @canNotUse onHCEMessage + */ +export { onHCEMessage } from '@tarojs/taro-h5' + +/** + * 接收 NFC 设备消息事件,取消事件监听 + * + * @canNotUse offHCEMessage + */ +export { offHCEMessage } from '@tarojs/taro-h5' + +/** + * 获取 NFC 实例 + * + * @canNotUse getNFCAdapter + */ +export { getNFCAdapter } from '@tarojs/taro-h5' + +/** + * 判断当前设备是否支持 HCE 能力 + * + * @canNotUse getHCEState + */ +export { getHCEState } from '@tarojs/taro-h5' + +/** + * IsoDep 标签 + * + * @canNotUse IsoDep + */ + +/** + * MifareClassic 标签 + * + * @canNotUse MifareClassic + */ + +/** + * MifareUltralight 标签 + * + * @canNotUse MifareUltralight + */ + +/** + * Ndef 标签 + * + * @canNotUse Ndef + */ + +/** + * NfcA 标签 + * + * @canNotUse NfcA + */ + +/** + * NFCAdapter 实例 + * + * @canNotUse NFCAdapter + */ + +/** + * NfcB 标签 + * + * @canNotUse NfcB + */ + +/** + * NfcF 标签 + * + * @canNotUse NfcF + */ + +/** + * NfcV 标签 + * + * @canNotUse NfcV + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts new file mode 100644 index 000000000000..364c5c0f4f00 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts @@ -0,0 +1,43 @@ +import Taro from '@tarojs/api' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../NativeApi' + +/** + * 调起客户端扫码界面,扫码成功后返回对应的结果 + * + * @canUse scanCode + * @__object [onlyFromCamera, scanType[barCode, qrCode, datamatrix, pdf417]] + * @__success [charSet, rawData, result, scanType[QR_CODE, AZTEC, CODABAR, CODE_39, CODE_93, CODE_128,\ + * DATA_MATRIX, EAN_8, EAN_13, ITF, PDF_417, UPC_A, UPC_E]] + */ +export const scanCode: typeof Taro.scanCode = (options) => { + const name = 'scanCode' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + return Promise.reject(res) + } + const { + onlyFromCamera = false, + scanType = [], + success, + fail, + complete + } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + native.scanCode({ + onlyFromCamera, + scanType, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (res: any) => { + handle.fail(res, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/getScreenBrightness.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/getScreenBrightness.ts new file mode 100644 index 000000000000..47dc8f91850b --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/getScreenBrightness.ts @@ -0,0 +1,35 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 获取屏幕亮度 + * + * @canUse getScreenBrightness + * @__success [value] + */ +export const getScreenBrightness: typeof Taro.getScreenBrightness = (options) => { + const name = 'getScreenBrightness' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.getScreenBrightness({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/index.ts index ff8cba95be56..044b53ef4305 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/index.ts @@ -1,2 +1,33 @@ +/** + * 设置截屏/录屏时屏幕表现 + * + * @canNotUse setVisualEffectOnCapture + */ +export { setVisualEffectOnCapture } from '@tarojs/taro-h5' + +/** + * 监听用户录屏事件 + * + * @canNotUse onScreenRecordingStateChanged + */ +export { onScreenRecordingStateChanged } from '@tarojs/taro-h5' + +/** + * 取消用户录屏事件的监听函数 + * + * @canNotUse offScreenRecordingStateChanged + */ +export { offScreenRecordingStateChanged } from '@tarojs/taro-h5' + +/** + * + * 查询用户是否在录屏 + * + * @canNotUse getScreenRecordingState + */ +export * from './getScreenBrightness' +export * from './offUserCaptureScreen' export * from './onUserCaptureScreen' export * from './setKeepScreenOn' +export * from './setScreenBrightness' +export { getScreenRecordingState } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/offUserCaptureScreen.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/offUserCaptureScreen.ts new file mode 100644 index 000000000000..67027a9f4cea --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/offUserCaptureScreen.ts @@ -0,0 +1,33 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' +import { taroCallbackMap } from 'src/api/apis/utils/callbakMap' + +import native from '../../NativeApi' + +/** + * 取消用户主动截屏事件监听 + * + * @canUse offUserCaptureScreen + */ +export const offUserCaptureScreen: typeof Taro.offUserCaptureScreen = (callback) => { + const name = 'offUserCaptureScreen' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + try { + if (taroCallbackMap.has(callback)) { + native.offUserCaptureScreen(taroCallbackMap.get(callback)) + taroCallbackMap.delete(callback) + } else { + console.error('Invalid callback.') + } + } catch (exception) { + console.error(JSON.stringify(exception)) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/setScreenBrightness.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/setScreenBrightness.ts new file mode 100644 index 000000000000..420c4ded4600 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/setScreenBrightness.ts @@ -0,0 +1,51 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' + +/** + * 设置屏幕亮度 + * + * @canUse setScreenBrightness + * @__object [value] + */ +export const setScreenBrightness: typeof Taro.setScreenBrightness = (options) => { + const name = 'setScreenBrightness' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { value, success, fail, complete } = options as Exclude + + const handle = new MethodHandler({ name, success, fail, complete }) + if (typeof value !== 'number') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'value', + correct: 'number', + wrong: value, + }), + }, + { resolve, reject } + ) + } + + // @ts-ignore + native.setScreenBrightness({ + value: value, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts new file mode 100644 index 000000000000..aff50ff54889 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts @@ -0,0 +1,7 @@ +// 短信 +/** + * 拉起手机发送短信界面 + * + * @canNotUse sendSms + */ +export { sendSms } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/vibrate.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/vibrate.ts new file mode 100644 index 000000000000..e45e9ddfab42 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/vibrate.ts @@ -0,0 +1,43 @@ +import Taro from '@tarojs/api' + +import { MethodHandler } from '../utils/handler' +import native from '../NativeApi' + +/** + * 使手机发生较短时间的振动(15 ms)(harmony平台暂不支持入参type属性) + * + * @canUse vibrateShort + */ +export const vibrateShort: typeof Taro.vibrateShort = ({ success, fail, complete } = {}) => { + const handle = new MethodHandler({ name: 'vibrateShort', success, fail, complete }) + return new Promise((resolve, reject) => { + native.vibrateShort({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (res: any) => { + handle.fail(res, { resolve, reject }) + }, + }) + }) +} + +/** + * 使手机发生较长时间的振动(400 ms) + * + * @canUse vibrateLong + */ +export const vibrateLong: typeof Taro.vibrateLong = ({ success, fail, complete } = {}) => { + const handle = new MethodHandler({ name: 'vibrateLong', success, fail, complete }) + return new Promise((resolve, reject) => { + // @ts-ignore + native.vibrateLong({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (res: any) => { + handle.fail(res, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/connectWifi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/connectWifi.ts new file mode 100644 index 000000000000..869e6d73a97f --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/connectWifi.ts @@ -0,0 +1,79 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 连接 Wi-Fi + * + * @canUse connectWifi + * @__object [SSID, password, BSSID] + */ +export const connectWifi: typeof Taro.connectWifi = (options) => { + const name = 'connectWifi' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return reject(res) + } + const { SSID, password, BSSID, success, fail, complete } = options as Exclude + + const handle = new MethodHandler({ name, success, fail, complete }) + + // options.SSID must be string + if (typeof SSID !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'SSID', + correct: 'string', + wrong: SSID, + }), + }, + { resolve, reject } + ) + } + + if (typeof password !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'password', + correct: 'string', + wrong: password, + }), + }, + { resolve, reject } + ) + } + + if (typeof BSSID !== 'string') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'BSSID', + correct: 'string', + wrong: BSSID, + }), + }, + { resolve, reject } + ) + } + + // @ts-ignore + native.connectWifi({ + SSID: SSID, + password: password, + BSSID: BSSID, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getConnectedWifi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getConnectedWifi.ts new file mode 100644 index 000000000000..9d542268f1b1 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getConnectedWifi.ts @@ -0,0 +1,33 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 获取已连接中的 Wi-Fi 信息 + * + * @canUse getConnectedWifi + * @__success [wifi] + */ +export const getConnectedWifi: typeof Taro.getConnectedWifi = (options) => { + const name = 'getConnectedWifi' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.getConnectedWifi({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getWifiList.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getWifiList.ts new file mode 100644 index 000000000000..4182e9ff1eb5 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/getWifiList.ts @@ -0,0 +1,32 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 请求获取 Wi-Fi 列表 + * + * @canUse getWifiList + */ +export const getWifiList: typeof Taro.getWifiList = (options) => { + const name = 'getWifiList' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.getWifiList({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts new file mode 100644 index 000000000000..82b29da21fae --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts @@ -0,0 +1,24 @@ +/** + * 设置 wifiList 中 AP 的相关信息 + * + * @canNotUse setWifiList + */ +export * from './connectWifi' +export * from './getConnectedWifi' +export * from './getWifiList' +export * from './offGetWifiList' +export * from './offWifiConnected' +export * from './offWifiConnectedWithPartialInfo' +export * from './onGetWifiList' +export * from './onWifiConnected' +export * from './onWifiConnectedWithPartialInfo' +export * from './startWifi' +export * from './stopWifi' +export { setWifiList } from '@tarojs/taro-h5' + +/** + * Wifi 信息(native 返回) + * + * @canUse WifiInfo + * @__class [SSID, BSSID, secure, signalStrength, frequency] + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offGetWifiList.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offGetWifiList.ts new file mode 100644 index 000000000000..b5a64dd555f3 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offGetWifiList.ts @@ -0,0 +1,22 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +/** + * 取消监听获取到 Wi-Fi 列表数据事件 + * + * @canUse offGetWifiList + */ +export const offGetWifiList: typeof Taro.offGetWifiList = (callback) => { + const name = 'offGetWifiList' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.offGetWifiList(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts new file mode 100644 index 000000000000..5a34fb4fda0e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts @@ -0,0 +1,39 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +/** + * 取消监听连接上 Wi-Fi 的事件 + * + * @canUse offWifiConnected + */ +export const offWifiConnected: typeof Taro.offWifiConnected = (callback) => { + const name = 'offWifiConnected' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.offWifiConnected((res: any) => { + const result: Taro.onWifiConnected.CallbackResult = { + /** Wi-Fi 信息 */ + wifi: { + /** Wi-Fi 的 SSID */ + SSID: res.wifi.SSID, + /** Wi-Fi 的 BSSID */ + BSSID: res.wifi.BSSID, + /** Wi-Fi 是否安全 */ + secure: res.wifi.secure, + /** Wi-Fi 信号强度, 安卓取值 0 ~ 100 ,iOS 取值 0 ~ 1 ,值越大强度越大 */ + signalStrength: res.wifi.signalStrength, + /** Wi-Fi 频段单位 MHz */ + frequency: res.wifi.frequency, + }, + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts new file mode 100644 index 000000000000..faaaa4163892 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts @@ -0,0 +1,28 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +/** + * 取消监听连接上 Wi-Fi 的事件 + * + * @canUse offWifiConnectedWithPartialInfo + */ +export const offWifiConnectedWithPartialInfo: typeof Taro.offWifiConnectedWithPartialInfo = (callback) => { + const name = 'offWifiConnectedWithPartialInfo' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.offWifiConnectedWithPartialInfo((res: any) => { + const result: Taro.onWifiConnectedWithPartialInfo.CallbackResult = { + /** 只包含 SSID 属性的 WifiInfo 对象 */ + wifi: { SSID: res.wifi.SSID }, + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onGetWifiList.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onGetWifiList.ts new file mode 100644 index 000000000000..3d93ccedc90a --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onGetWifiList.ts @@ -0,0 +1,23 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +/** + * 监听获取到 Wi-Fi 列表数据事件 + * + * @canUse onGetWifiList + * @__callback [wifiList] + */ +export const onGetWifiList: typeof Taro.onGetWifiList = (callback) => { + const name = 'onGetWifiList' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.onGetWifiList(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnected.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnected.ts new file mode 100644 index 000000000000..9b5e5378598b --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnected.ts @@ -0,0 +1,40 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +/** + * 监听连接上 Wi-Fi 的事件 + * + * @canUse onWifiConnected + * @__callback [wifi] + */ +export const onWifiConnected: typeof Taro.onWifiConnected = (callback) => { + const name = 'onWifiConnected' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.onWifiConnected((res: any) => { + const result: Taro.onWifiConnected.CallbackResult = { + /** Wi-Fi 信息 */ + wifi: { + /** Wi-Fi 的 SSID */ + SSID: res.wifi.SSID, + /** Wi-Fi 的 BSSID */ + BSSID: res.wifi.BSSID, + /** Wi-Fi 是否安全 */ + secure: res.wifi.secure, + /** Wi-Fi 信号强度, 安卓取值 0 ~ 100 ,iOS 取值 0 ~ 1 ,值越大强度越大 */ + signalStrength: res.wifi.signalStrength, + /** Wi-Fi 频段单位 MHz */ + frequency: res.wifi.frequency, + }, + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnectedWithPartialInfo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnectedWithPartialInfo.ts new file mode 100644 index 000000000000..aae6f4df6cfc --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/onWifiConnectedWithPartialInfo.ts @@ -0,0 +1,29 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/api/apis/utils' + +/** + * 监听连接上 Wi-Fi 的事件 + * + * @canUse onWifiConnectedWithPartialInfo + * @__callback [wifi] + */ +export const onWifiConnectedWithPartialInfo: typeof Taro.onWifiConnectedWithPartialInfo = (callback) => { + const name = 'onBLECharacteristicValueChange' + + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + + // @ts-ignore + native.onWifiConnectedWithPartialInfo((res: any) => { + const result: Taro.onWifiConnectedWithPartialInfo.CallbackResult = { + /** 只包含 SSID 属性的 WifiInfo 对象 */ + wifi: { SSID: res.wifi.SSID }, + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/startWifi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/startWifi.ts new file mode 100644 index 000000000000..b1bae7d5eb7d --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/startWifi.ts @@ -0,0 +1,32 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 初始化 Wi-Fi 模块 + * + * @canUse startWifi + */ +export const startWifi: typeof Taro.startWifi = (options) => { + const name = 'startWifi' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.startWifi({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/stopWifi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/stopWifi.ts new file mode 100644 index 000000000000..b2b69c934e6c --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/stopWifi.ts @@ -0,0 +1,32 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 关闭 Wi-Fi 模块 + * + * @canUse stopWifi + */ +export const stopWifi: typeof Taro.stopWifi = (options) => { + const name = 'stopWifi' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + // @ts-ignore + native.stopWifi({ + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileInfo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileInfo.ts new file mode 100644 index 000000000000..a6857af89665 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileInfo.ts @@ -0,0 +1,64 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 关闭监听实时位置变化,前后台都停止消息接收 + * + * @canUse getFileInfo + * @__object [filePath, digestAlgorithm] + * @__success [size, digest] + */ +export const getFileInfo: typeof Taro.getFileInfo = (options) => { + const name = 'getFileInfo' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { filePath, digestAlgorithm, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + size?: number + digest?: string + errMsg?: string + }>({ name, success, fail, complete }) + + // options.url must be String + if (typeof filePath !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'filePath', + correct: 'string', + wrong: filePath, + }), + }) + } + + return new Promise( + (resolve, reject) => { + // @ts-ignore + native.getFileInfo({ + filePath: filePath, + digestAlgorithm: digestAlgorithm, + success: (res: any) => { + const result: Taro.getFileInfo.SuccessCallbackResult = { + size: res.size, + digest: res.digest, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + const errRet: Taro.getFileInfo.FailCallbackResult = { + errMsg: err.errMsg, + } + handle.fail(errRet, { resolve, reject }) + }, + }) + } + ) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileSystemManager.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileSystemManager.ts index d459e4c32d36..a9119f105277 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileSystemManager.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getFileSystemManager.ts @@ -9,3 +9,26 @@ import { NativeFileSystemManager } from '../interface/NativeFileSystemManager' export const getFileSystemManager: typeof Taro.getFileSystemManager = () => { return NativeFileSystemManager.getFileSystemManager() } + +/** + * 文件管理器 + * + * @canUse FileSystemManager + * @__class + * [access, accessSync, appendFile, appendFileSync, close, closeSync, copyFile, copyFileSync, fstat,\ + * ftruncate, ftruncateSync, getFileInfo, mkdir, mkdirSync, open, openSync, read, readdir, readdirSync,\ + * readFile, readFileSync, readSync, rename, renameSync, rmdir, rmdirSync, truncate, truncateSync] + */ + +/** + * 文件读取结果。 通过 FileSystemManager.readSync 接口返回 + * + * @canUse ReadResult + * @__class [bytesRead, arrayBuffer] + */ + +/** + * 文件写入结果。 通过 FileSystemManager.writeSync 接口返回 + * + * @canNotUse WriteResult + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileInfo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileInfo.ts new file mode 100644 index 000000000000..2d5636a6c03e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileInfo.ts @@ -0,0 +1,60 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../NativeApi' + +/** + * 获取本地文件的文件信息 + * + * @canUse getSavedFileInfo + * @__object [filePath] + * @__success [createTime, size] + */ +export const getSavedFileInfo: typeof Taro.getSavedFileInfo = (options) => { + const name = 'getSavedFileInfo' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { filePath, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + createTime?: number + size?: number + errMsg?: string + }>({ name, success, fail, complete }) + + // options.url must be String + if (typeof filePath !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'filePath', + correct: 'string', + wrong: filePath, + }), + }) + } + + return new Promise((resolve, reject) => { + native.getSavedFileInfo({ + filePath: filePath, + success: (res: any) => { + const result: Taro.getSavedFileInfo.SuccessCallbackResult = { + createTime: res.createTime, + size: res.size, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileList.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileList.ts new file mode 100644 index 000000000000..f770d66d893c --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/getSavedFileList.ts @@ -0,0 +1,44 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../NativeApi' + +/** + * 获取本地已保存的文件列表 + * + * @canUse getSavedFileList + * @__success [fileList] + */ +export const getSavedFileList: typeof Taro.getSavedFileList = (options) => { + const name = 'getSavedFileList' + + // options must be an Object + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + fileList?: object + errMsg?: string + }>({ name, success, fail, complete }) + + return new Promise((resolve, reject) => { + native.getSavedFileList({ + success: (res: any) => { + const result: Taro.getSavedFileList.SuccessCallbackResult = { + fileList: res.fileList, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/index.ts index b486ddbaeada..dcdae77e1079 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/files/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/index.ts @@ -1 +1,19 @@ -export * from './getFileSystemManager' \ No newline at end of file +/** + * 保存文件系统的文件到用户磁盘,仅在 PC 端支持 + * + * @canNotUse saveFileToDisk + */ +export * from './getFileInfo' +export * from './getFileSystemManager' +export * from './getSavedFileInfo' +export * from './getSavedFileList' +export * from './openDocument' +export * from './removeSavedFile' +export * from './saveFile' +export { saveFileToDisk } from '@tarojs/taro-h5' + +/** + * 描述文件状态的对象 + * + * @canNotUse Stats + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/openDocument.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/openDocument.ts new file mode 100644 index 000000000000..c28a2dcc84ba --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/openDocument.ts @@ -0,0 +1,51 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../NativeApi' +/** + * 新开页面打开文档,支持格式 + * + * @canUse openDocument + * @null_implementation + */ +export const openDocument: typeof Taro.openDocument = (options) => { + const name = 'openDocument' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { filePath, showMenu, fileType, success, fail, complete } = options as Exclude + + const handle = new MethodHandler({ name, success, fail, complete }) + + // options.url must be String + if (typeof filePath !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'filePath', + correct: 'string', + wrong: filePath, + }), + }) + } + + return new Promise((resolve, reject) => { + // @ts-ignore + native.openDocument({ + filePath: filePath, + showMenu: showMenu, + fileType: fileType, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/removeSavedFile.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/removeSavedFile.ts new file mode 100644 index 000000000000..0543f7672086 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/removeSavedFile.ts @@ -0,0 +1,51 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../NativeApi' + +/** + * 新开页面打开文档,支持格式 + * + * @canUse removeSavedFile + * @__object [filePath] + */ +export const removeSavedFile: typeof Taro.removeSavedFile = (options) => { + const name = 'removeSavedFile' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { filePath, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + errMsg?: string + }>({ name, success, fail, complete }) + + // options.url must be String + if (typeof filePath !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'filePath', + correct: 'string', + wrong: filePath, + }), + }) + } + + return new Promise((resolve, reject) => { + native.removeSavedFile({ + filePath: filePath, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/files/saveFile.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/files/saveFile.ts new file mode 100644 index 000000000000..8c079c0da157 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/files/saveFile.ts @@ -0,0 +1,60 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../NativeApi' +/** + * 保存文件到本地 + * + * @canUse saveFile + * @__object [tempFilePath, filePath] + * @__success [savedFilePath] + */ +export const saveFile: typeof Taro.saveFile = (options) => { + const name = 'saveFile' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { tempFilePath, filePath, success, fail, complete } = options as Exclude + + const handle = new MethodHandler<{ + savedFilePath?: string + errMsg?: string + }>({ name, success, fail, complete }) + + // options.url must be String + if (typeof tempFilePath !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'tempFilePath', + correct: 'string', + wrong: tempFilePath, + }), + }) + } + + return new Promise((resolve, reject) => { + native.saveFile({ + tempFilePath: tempFilePath, + filePath: filePath, + success: (res: any) => { + const result: Taro.saveFile.SuccessCallbackResult = { + savedFilePath: res.savedFilePath, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + const errRet: Taro.saveFile.FailCallbackResult = { + errMsg: err.errMsg, + } + handle.fail(errRet, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts index 6ae633477ceb..0aa360fc9155 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts @@ -5,6 +5,11 @@ export const getApp: typeof Taro.getApp = function { + if (typeof window !== 'undefined') { + native.setNavigationStyle({ style: style, textStyle: textStyle, backgroundColor: backgroundColor }) + // @ts-ignore + Object.assign(window.currentNavigation, { + style, + textStyle, + backgroundColor, + }) + // @ts-ignore + if (typeof window.originCapsuleState !== 'undefined') { + // @ts-ignore + window.native?.setCapsuleState?.(window.originCapsuleState) + } + } +}) + +Taro.eventCenter.on('__taroEnterFullScreen', () => { + native.setNavigationStyle({ style: 'custom', textStyle: 'black', backgroundColor: '#000000' }) + // @ts-ignore + if (typeof window.originCapsuleState === 'undefined') { + // @ts-ignore + window.originCapsuleState = window.native?.getCapsuleState().visible + } + // @ts-ignore + window.native?.setCapsuleState?.(false) +}) + +Taro.eventCenter.on('__taroExitFullScreen', () => { + // @ts-ignore + const { style, textStyle, backgroundColor } = window.currentNavigation + native.setNavigationStyle({ style: style, textStyle: textStyle, backgroundColor: backgroundColor }) + // @ts-ignore + if (typeof window.originCapsuleState !== 'undefined') { + // @ts-ignore + window.native?.setCapsuleState?.(window.originCapsuleState) + } +}) diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts new file mode 100644 index 000000000000..b28d97fa4f81 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts @@ -0,0 +1,32 @@ +import Taro from '@tarojs/api' + +import native from '../NativeApi' + +export class NativeUpdateManager implements Taro.UpdateManager { + + private static nativeUpdateManager: NativeUpdateManager + + static getUpdateManager () { + + if ( !NativeUpdateManager.nativeUpdateManager ) { + NativeUpdateManager.nativeUpdateManager = new NativeUpdateManager() + } + return NativeUpdateManager.nativeUpdateManager + } + + applyUpdate () { + native.applyUpdate() + } + + onCheckForUpdate (callback: Taro.UpdateManager.OnCheckForUpdateCallback) { + native.onCheckForUpdate(callback) + } + + onUpdateFailed (callback: (res: TaroGeneral.CallbackResult) => void) { + native.onUpdateFailed(callback) + } + + onUpdateReady (callback: (res: TaroGeneral.CallbackResult) => void) { + native.onUpdateReady(callback) + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/getLocation.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/getLocation.ts index 0af89ad4f6c0..5ac1c4f84438 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/getLocation.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/getLocation.ts @@ -79,7 +79,7 @@ export const getLocation: typeof Taro.getLocation = (options) => { /** 位置的精确度 */ accuracy: res.accuracy, /** 高度,单位 m */ - altitude: altitude ? res.altitude : 0, + altitude: JSON.parse(altitude) ? res.altitude : 0, /** 水平精度,单位 m */ horizontalAccuracy: res.accuracy, /** 纬度,范围为 -90~90,负数表示南纬 */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/index.ts index 2480851e627b..6c317ba53535 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/index.ts @@ -1,4 +1,18 @@ export * from './chooseLocation' export * from './getFuzzyLocation' export * from './getLocation' +export * from './offLocationChange' +export * from './offLocationChangeError' +export * from './onLocationChange' +export * from './onLocationChangeError' export * from './openLocation' +export * from './startLocationUpdate' +export * from './startLocationUpdateBackground' +export * from './stopLocationUpdate' + +/** + * 打开POI列表选择位置 + * + * @canNotUse choosePoi + */ +export { choosePoi } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts new file mode 100644 index 000000000000..157fd31a67b5 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts @@ -0,0 +1,43 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/utils' + +import native from '../NativeApi' + +/** + * 取消监听实时地理位置变化事件 + * + * @canUse offLocationChange + */ +export const offLocationChange: typeof Taro.offLocationChange = (callback) => { + const name = 'offLocationChange' + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + native.offLocationChange((res: any) => { + const cbResult: Taro.onLocationChange.CallbackResult = { + /** 位置的精确度 */ + accuracy: res.accuracy, + /** 高度,单位 m */ + altitude: res.altitude, + /** 水平精度,单位 m */ + horizontalAccuracy: res.accuracy, + /** 纬度,范围为 -90~90,负数表示南纬 */ + latitude: res.latitude, + /** 经度,范围为 -180~180,负数表示西经 */ + longitude: res.longitude, + /** 速度,单位 m/s */ + speed: res.speed, + /** 垂直精度,单位 m */ + verticalAccuracy: res.accuracy, + } + const result: TaroGeneral.CallbackResult = { + /** 错误信息 */ + errMsg: JSON.stringify(cbResult), + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts new file mode 100644 index 000000000000..f7c6223ff83d --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts @@ -0,0 +1,20 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/utils' + +/** + * 取消监听持续定位接口返回失败时触发 + * + * @canUse offLocationChangeError + */ +export const offLocationChangeError: typeof Taro.offLocationChangeError = (callback) => { + const name = 'offLocationChangeError' + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + // @ts-ignore + native.offLocationChangeError(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts new file mode 100644 index 000000000000..28e62344addf --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts @@ -0,0 +1,40 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/utils' + +import native from '../NativeApi' + +/** + * 监听实时地理位置变化事件 + * + * @canUse onLocationChange + * @__callback [accuracy, altitude, horizontalAccuracy, atitude, longitude, speed, verticalAccuracy] + */ +export const onLocationChange: typeof Taro.onLocationChange = (callback) => { + const name = 'onLocationChange' + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + native.onLocationChange((res: any) => { + const result: Taro.onLocationChange.CallbackResult = { + /** 位置的精确度 */ + accuracy: res.accuracy, + /** 高度,单位 m */ + altitude: res.altitude, + /** 水平精度,单位 m */ + horizontalAccuracy: res.accuracy, + /** 纬度,范围为 -90~90,负数表示南纬 */ + latitude: res.latitude, + /** 经度,范围为 -180~180,负数表示西经 */ + longitude: res.longitude, + /** 速度,单位 m/s */ + speed: res.speed, + /** 垂直精度,单位 m */ + verticalAccuracy: res.accuracy, + } + callback(result) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts new file mode 100644 index 000000000000..8bedc0660116 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts @@ -0,0 +1,21 @@ +import Taro from '@tarojs/taro' +import { shouldBeFunction } from 'src/utils' + +/** + * 监听持续定位接口返回失败时触发 + * + * @canUse onLocationChangeError + * @__callback [errCode] +*/ +export const onLocationChangeError: typeof Taro.onLocationChangeError = (callback) => { + const name = 'onLocationChangeError' + // callback must be an Function + const isFunction = shouldBeFunction(callback) + if (!isFunction.flag) { + const res = { errMsg: `${name}:fail ${isFunction.msg}` } + console.error(res.errMsg) + return + } + // @ts-ignore + native.onLocationChangeError(callback) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts new file mode 100644 index 000000000000..e46141f22c1f --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts @@ -0,0 +1,31 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/utils' +import { MethodHandler } from 'src/utils/handler' + +/** + * 开启小程序进入前台时接收位置消息 + * + * @canUse startLocationUpdate + */ +export const startLocationUpdate: typeof Taro.startLocationUpdate = (options) => { + const name = 'startLocationUpdate' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + // @ts-ignore + native.startLocationUpdate({ + success: (res: any) => { + handle.success(res) + }, + fail: (res: any) => { + handle.fail(res).catch((err) => { + console.error(err) + }) + }, + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts new file mode 100644 index 000000000000..88ae1df9266e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts @@ -0,0 +1,31 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/utils' +import { MethodHandler } from 'src/utils/handler' + +/** + * 开启小程序进入前后台时均接收位置消息 + * + * @canUse startLocationUpdateBackground + */ +export const startLocationUpdateBackground: typeof Taro.startLocationUpdateBackground = (options) => { + const name = 'startLocationUpdateBackground' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + // @ts-ignore + native.startLocationUpdateBackground({ + success: (res: any) => { + handle.success(res) + }, + fail: (res: any) => { + handle.fail(res).catch((err) => { + console.error(err) + }) + }, + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts new file mode 100644 index 000000000000..7eab28054507 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts @@ -0,0 +1,31 @@ +import Taro from '@tarojs/taro' +import { shouldBeObject } from 'src/utils' +import { MethodHandler } from 'src/utils/handler' + +/** + * 关闭监听实时位置变化,前后台都停止消息接收 + * + * @canUse stopLocationUpdate + */ +export const stopLocationUpdate: typeof Taro.stopLocationUpdate = (options) => { + const name = 'stopLocationUpdate' + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return + } + const { success, fail, complete } = options || {} + const handle = new MethodHandler({ name, success, fail, complete }) + // @ts-ignore + native.stopLocationUpdate({ + success: (res: any) => { + handle.success(res) + }, + fail: (res: any) => { + handle.fail(res).catch((err) => { + console.error(err) + }) + }, + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts new file mode 100644 index 000000000000..a126cc8b003d --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts @@ -0,0 +1,304 @@ +import Taro from '@tarojs/api' + +/** + * EditorContext 实例 + * + * @canUse EditorContext + * @__class + * [blur, clear, format, getContents, getSelectionText, insertDivider, insertImage, insertText, redo, removeFormat,\ + * scrollIntoView, setContents, undo] + */ +export class EditorContext implements Taro.EditorContext { + blur (option?: Taro.EditorContext.BlurOption | undefined): void { + try { + // 将焦点设置到页面上一个非输入元素(例如按钮)上 + const buttonName = document.getElementById('myButtonTest') + buttonName?.focus() + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + getContext (): Taro.EditorContext { + return this as Taro.EditorContext + } + + activeEditor (): any { + // @ts-ignore + return tinymce.activeEditor + } + + scrollIntoView (): void { + this.activeEditor()?.selection.scrollIntoView() + } + + getSelectionText (option?: Taro.EditorContext.getSelectionText.Option | undefined): void { + try { + const selection = this.activeEditor()?.selection + if (selection) { + const selectionText = selection.getContent({ format: 'text' }) + option?.success?.({ errMsg: 'ok', text: selectionText }) + } + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + clear (option?: Taro.EditorContext.ClearOption | undefined): void { + try { + this.activeEditor()?.setContent('') + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + format (name: string, value?: string | undefined): void { + // 微信: https://developers.weixin.qq.com/miniprogram/dev/api/media/editor/EditorContext.format.html + // tinymce: https://www.tiny.cloud/docs/tinymce/6/content-formatting/#formats + // NOT SUPPORT + // 1. ins + // 2. list check + + const editor = this.activeEditor() + if (!editor) { + console.error(`Editor fail get activeEditor in format.`) + return + } + + if (name === 'bold' || name === 'italic' || name === 'underline') { + editor.formatter.toggle(name) + return + } else if (name === 'strike') { + editor.formatter.toggle('strikethrough') + return + } else if (name === 'ins') { + console.error(`Editor not support format ins`) + return + } + + value = value || '' + if (value.length < 1) { + console.error(`Editor format ${name} value must be not empty.`) + return + } + + if (name === 'script') { + // value = sub / super + if (value === 'sub') { + editor.formatter.toggle('subscript') + } else if (value === 'super') { + editor.formatter.toggle('superscript') + } + } else if (name === 'header') { + // value = H1 / H2 / h3 / H4 / h5 / H6 + const levelMap: Map = new Map( + Object.entries({ + // H1 / H2 / h3 / H4 / h5 / H6 + h1: 'h1', + 1: 'h1', + h2: 'h2', + 2: 'h2', + h3: 'h3', + 3: 'h3', + h4: 'h4', + 4: 'h4', + h5: 'h5', + 5: 'h5', + h6: 'h6', + 6: 'h6', + }) + ) + + const formatName = levelMap.get(value) + if (formatName) { + editor.formatter.toggle(formatName) + } + } else if (name === 'align') { + // value = left / center / right / justify + editor.formatter.toggle(name + value.toLocaleLowerCase()) + } else if (name === 'direction') { + // value = rtl / ltf + if (value === 'ltr' || value === 'rtl') { + editor.getBody().dir = value + } + } else if (name === 'indent') { + // value = -1 / +1 + const num = Number(value) + if (num === 1) { + editor.execCommand('Indent') + } else if (num === -1) { + editor.execCommand('Outdent') + } + } else if (name === 'list') { + // value = ordered / bullet / check + // ordered = num list + // bullet = dot list + // check = checkbox list + // https://www.tiny.cloud/docs/plugins/opensource/lists/ + + const type = value.toLocaleLowerCase() + if (type === 'ordered') { + editor.execCommand('InsertOrderedList', false, { + 'list-style-type': 'decimal', + }) + } else if (type === 'bullet') { + editor.execCommand('InsertUnorderedList', false, { + 'list-style-type': 'disc', + }) + } else if (type === 'check') { + // https://www.tiny.cloud/docs/plugins/premium/checklist/ + console.error(`Editor not support format list with check`) + } else { + // 删除list + // editor.execCommand('RemoveList'); + } + } else if (name === 'color') { + editor.formatter.apply('forecolor', { value: value }) + } else if (name === 'backgroundColor') { + editor.formatter.apply('hilitecolor', { value: value }) + } else { + editor.formatter.apply(name, { value: value }) + } + } + + getContents (option?: Taro.EditorContext.GetContents.Option | undefined): void { + try { + const editor = this.activeEditor() + if (editor) { + option?.success?.({ + errMsg: 'ok', + html: editor.getContent({ format: 'html' }), + text: editor.getContent({ format: 'text' }), + delta: editor.getContent({ format: 'tree' }), + }) + } + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + insertDivider (option?: Taro.EditorContext.InsertDividerOption | undefined): void { + try { + this.activeEditor()?.insertContent('
') + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + insertImage (option: Taro.EditorContext.InsertImageOption): void { + try { + const data = (option.data || {}) as Record + let dataCustom = '' + for (const key in data) { + dataCustom = dataCustom + `${key}=${data[key]};` + } + + this.activeEditor()?.insertContent( + `${option.alt}` + ) + const nowrap = option.nowrap || false + if (nowrap === false) { + this.activeEditor()?.insertContent(`

`) + } + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + insertText (option: Taro.EditorContext.InsertTextOption): void { + try { + const text = option.text || '' + if (text.length > 0) { + this.activeEditor()?.insertContent(text) + } + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + removeFormat (option?: Taro.EditorContext.RemoveFormatOption | undefined): void { + try { + // https://www.tiny.cloud/docs/tinymce/6/editor-command-identifiers/#supported-browser-native-commands + + this.activeEditor()?.formatter.remove('alignleft') + this.activeEditor()?.formatter.remove('aligncenter') + this.activeEditor()?.formatter.remove('alignright') + this.activeEditor()?.formatter.remove('alignjustify') + this.activeEditor()?.execCommand('RemoveFormat') + + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + setContents (option: Taro.EditorContext.SetContentsOption): void { + try { + const delta = option && option.delta + const html = option && option.html + const editor = this.activeEditor() + if (delta) { + try { + editor?.setContent(delta, { format: 'tree' }) + } catch (e) { + if (html) { + editor?.setContent(html, { format: 'html' }) + } + } + } else { + if (html) { + editor?.setContent(html, { format: 'html' }) + } + } + + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + redo (option?: Taro.EditorContext.RedoOption | undefined): void { + try { + this.activeEditor()?.undoManager.redo() + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } + + undo (option?: Taro.EditorContext.UndoOption | undefined): void { + try { + this.activeEditor()?.undoManager.undo() + option?.success?.({ errMsg: `ok` }) + } catch (e) { + option?.fail?.({ errMsg: `${e}` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/audio/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/audio/index.ts index 6a467295b8d3..fdfa832a1e80 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/media/audio/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/audio/index.ts @@ -3,6 +3,54 @@ import Taro from '@tarojs/api' import { NativeInnerAudioContext } from '../../interface/NativeAContextApi' import { AudioContext } from './AudioContext' import { InnerAudioContext } from './InnerAudioContext' +/** + * 结束播放语音 + * + * @canNotUse stopVoice + */ +export { stopVoice } from '@tarojs/taro-h5' + +/** + * 设置 InnerAudioContext项 + * + * @canNotUse setInnerAudioOption + */ +export { setInnerAudioOption } from '@tarojs/taro-h5' + +/** + * 开始播放语音 + * + * @canNotUse playVoice + */ +export { playVoice } from '@tarojs/taro-h5' + +/** + * 暂停正在播放的语音 + * + * @canNotUse pauseVoice + */ +export { pauseVoice } from '@tarojs/taro-h5' + +/** + * 获取当前支持的音频输入源 + * + * @canNotUse getAvailableAudioSources + */ +export { getAvailableAudioSources } from '@tarojs/taro-h5' + +/** + * 创建 WebAudio 上下文 + * + * @canNotUse createWebAudioContext + */ +export { createWebAudioContext } from '@tarojs/taro-h5' + +/** + * 创建媒体音频播放器对象 MediaAudioPlayer 对象 + * + * @canNotUse createMediaAudioPlayer + */ +export { createMediaAudioPlayer } from '@tarojs/taro-h5' /** * 创建内部 audio 上下文 InnerAudioContext 对象。 @@ -25,3 +73,26 @@ export const createInnerAudioContext: typeof Taro.createInnerAudioContext = (opt */ export const createAudioContext: typeof Taro.createAudioContext = () => new AudioContext() +/** + * AudioBuffer 接口表示存在内存里的一段短小的音频资源 + * + * @canNotUse AudioBuffer + */ + +/** + * MediaAudioPlayer 实例 + * + * @canNotUse MediaAudioPlayer + */ + +/** + * WebAudioContext 实例 + * + * @canNotUse WebAudioContext + */ + +/** + * 一类音频处理模块 + * + * @canNotUse WebAudioContextNode + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/background-audio/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/background-audio/index.ts new file mode 100644 index 000000000000..f0e6aed43d69 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/background-audio/index.ts @@ -0,0 +1,71 @@ +/** + * 停止播放音乐 + * + * @canNotUse stopBackgroundAudio + */ +export { stopBackgroundAudio } from '@tarojs/taro-h5' + +/** + * 控制音乐播放进度 + * + * @canNotUse seekBackgroundAudio + */ +export { seekBackgroundAudio } from '@tarojs/taro-h5' + +/** + * 使用后台播放器播放音乐 + * + * @canNotUse playBackgroundAudio + */ +export { playBackgroundAudio } from '@tarojs/taro-h5' + +/** + * 暂停播放音乐 + * + * @canNotUse pauseBackgroundAudio + */ +export { pauseBackgroundAudio } from '@tarojs/taro-h5' + +/** + * 监听音乐停止 + * + * @canNotUse onBackgroundAudioStop + */ +export { onBackgroundAudioStop } from '@tarojs/taro-h5' + +/** + * 监听音乐播放 + * + * @canNotUse onBackgroundAudioPlay + */ +export { onBackgroundAudioPlay } from '@tarojs/taro-h5' + +/** + * 监听音乐暂停 + * + * @canNotUse onBackgroundAudioPause + */ +export { onBackgroundAudioPause } from '@tarojs/taro-h5' + +/** + * 获取后台音乐播放状态 + * + * @canNotUse getBackgroundAudioPlayerState + */ +export { getBackgroundAudioPlayerState } from '@tarojs/taro-h5' + +/** + * 获取全局唯一的背景音频管理器 + * + * @canUse getBackgroundAudioManager + */ +export { getBackgroundAudioManager } from '@tarojs/taro-h5' + +/** + * BackgroundAudioManager 实例 + * + * @canUse BackgroundAudioManager + * @__class + * [play, pause, seek, stop, onCanplay, onWaiting, onError, onPlay, onPause, onSeeking,\ + * onSeeked, onEnded, onStop, onTimeUpdate] + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/camera.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/camera.ts new file mode 100644 index 000000000000..6dfef0695757 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/camera.ts @@ -0,0 +1,24 @@ +import Taro from '@tarojs/taro' + +/** + * 创建 camera 上下文 CameraContext 对象 + * + * @canUse createCameraContext + */ +export const createCameraContext: typeof Taro.createCameraContext = () => { + // @ts-ignore + return native.createCameraContext() +} + +/** + * CameraContext 实例 + * + * @canUse CameraContext + * @__class [startRecord, stopRecord, takePhoto] + */ + +/** + * CameraContext.onCameraFrame() 返回的监听器 + * + * @canNotUse CameraFrameListener + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/compressImage.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/compressImage.ts new file mode 100644 index 000000000000..4703679cfe70 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/compressImage.ts @@ -0,0 +1,61 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 压缩图片接口,可选压缩质量 + * + * @canUse compressImage + * @__object [src, quality, compressedWidth, compressHeight] + * @__success [tempFilePath] + */ +export const compressImage: typeof Taro.compressImage = (options) => { + const name = 'compressImage' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { src, quality, compressedWidth, compressHeight, success, fail, complete } = options as Exclude< + typeof options, + undefined + > + const handle = new MethodHandler<{ + tempFilePath?: string + errMsg?: string + }>({ name, success, fail, complete }) + + // options.url must be String + if (typeof src !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'src', + correct: 'string', + wrong: src, + }), + }) + } + + return new Promise((resolve, reject) => { + // @ts-ignore + native.compressImage({ + src: src, + quality: quality, + compressedWidth: compressedWidth, + compressHeight: compressHeight, + success: (res: any) => { + const result: Taro.compressImage.SuccessCallbackResult = { + tempFilePath: res.tempFilePath, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/index.ts index a63cf8655f8f..a0c5b3b92840 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/index.ts @@ -1,6 +1,28 @@ // 图片 -export * from './chooseImage' -export * from './chooseImage' +export * from './compressImage' export * from './getImageInfo' export * from './previewImage' -export * from './saveImageToPhotosAlbum' \ No newline at end of file +export * from './previewMedia' +export * from './saveImageToPhotosAlbum' + +/** + * 从客户端会话选择文件 + * + * @canNotUse chooseMessageFile + */ +export * from './chooseImage' +export { chooseMessageFile } from '@tarojs/taro-h5' + +/** + * 编辑图片接口 + * + * @canNotUse editImage + */ +export { editImage } from '@tarojs/taro-h5' + +/** + * 裁剪图片接口 + * + * @canNotUse cropImage + */ +export { cropImage } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/previewMedia.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/previewMedia.ts new file mode 100644 index 000000000000..04f3014004e0 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/image/previewMedia.ts @@ -0,0 +1,115 @@ +import { SwiperProps } from '@tarojs/components' +import { + defineCustomElementTaroSwiperCore, + defineCustomElementTaroSwiperItemCore, +} from '@tarojs/components/dist/components' +import { eventCenter } from '@tarojs/runtime' +import { isFunction } from '@tarojs/shared' +import Taro from '@tarojs/taro' + +import { shouldBeObject } from '../../utils' +import { MethodHandler } from '../../utils/handler' + +/** + * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢! + * 在新页面中全屏预览图片/视频。预览的过程中用户可以进行保存图片/视频、发送给朋友等操作。 + * + * @canUse previewMedia + * @__object [sources, current] + */ +export const previewMedia: typeof Taro.previewMedia = async (options) => { + // TODO 改为通过 window.__taroAppConfig 获取配置的 Swiper 插件创建节点 + defineCustomElementTaroSwiperCore() + defineCustomElementTaroSwiperItemCore() + + function loadImageAndVideo (sources: Taro.previewMedia.Sources, loadFail: typeof fail): Promise { + return new Promise((resolve) => { + const item = document.createElement('taro-swiper-item-core') + item.style.cssText = 'display:flex;align-items:start;justify-content:center;overflow-y:scroll;' + const image = new Image() + const video = document.createElement('video') + if (sources?.type === 'image') { + image.style.maxWidth = '100%' + image.src = sources?.url + } else { + video.style.maxWidth = '100%' + video.setAttribute('controls', 'controls') + const source = document.createElement('source') + source.src = sources?.url + video.appendChild(source) + video.poster = sources?.poster || '' + } + const div = document.createElement('div') + div.classList.add('swiper-zoom-container') + div.style.cssText = 'display:flex;align-items:center;justify-content:center;max-width:100%;min-height:100%;' + if (sources?.type === 'image') { + div.appendChild(image) + } else { + div.appendChild(video) + } + item.appendChild(div) + // Note: 等待图片加载完后返回,会导致轮播被卡住 + resolve(item) + if (sources?.type === 'image' && isFunction(loadFail)) { + image.addEventListener('error', (err) => { + loadFail({ errMsg: err.message }) + }) + } + }) + } + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `previewMedia:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { sources = [], current = 0, success, fail, complete } = options + const handle = new MethodHandler({ name: 'previewMedia', success, fail, complete }) + const container = document.createElement('div') + container.classList.add('preview-image') + container.style.cssText = + 'position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0;background-color:#111;' + + const removeHandler = () => { + eventCenter.off('__taroRouterChange', removeHandler) + container.remove() + eventCenter.trigger('__taroExitFullScreen', {}) + } + container.addEventListener('click', removeHandler) + + // 路由改变后应该关闭预览框 + eventCenter.on('__taroRouterChange', removeHandler) + + const swiper: HTMLElement & Omit = document.createElement('taro-swiper-core') + // @ts-ignore + swiper.full = true + // @ts-ignore + swiper.zoom = true + + let children: Node[] = [] + try { + children = await Promise.all(sources.map((e) => loadImageAndVideo(e, fail))) + } catch (error) { + return handle.fail({ + errMsg: error, + }) + } + + for (let i = 0; i < children.length; i++) { + const child = children[i] + swiper.appendChild(child) + } + + const currentIndex = current + // @ts-ignore + swiper.current = currentIndex + + container.appendChild(swiper) + document.body.appendChild(container) + eventCenter.trigger('__taroEnterFullScreen', {}) + + return handle.success() +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/index.ts index f3e5f971ec2f..f5c6659aea06 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/media/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/index.ts @@ -1,3 +1,25 @@ +/** + * 创建 live-pusher 上下文 LivePusherContext 对象 + * + * @canNotUse createLivePusherContext + */ +export { createLivePusherContext } from '@tarojs/taro-h5' + +/** + * LivePusherContext 实例 + * + * @canNotUse LivePusherContext + */ + export * from './audio' +export * from './background-audio' +export * from './camera' export * from './image' +export * from './live' +export * from './map' +export * from './media-recorder' +export * from './recorder' export * from './video' +export * from './video-decoder' +export * from './video-processing' +export * from './voip' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/live/LivePlayerContext.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/live/LivePlayerContext.ts new file mode 100644 index 000000000000..f2a077575928 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/live/LivePlayerContext.ts @@ -0,0 +1,141 @@ +import Taro from '@tarojs/taro' + +/** + * LivePlayerContext 实例 + * + * @canUse LivePlayerContext + * @__class + * [exitFullScreen, exitPictureInPicture, mute, pause, play, requestFullScreen, requestPictureInPicture, resume,\ + * snapshot, stop] + */ +export class LivePlayerContext implements Taro.LivePlayerContext { + LivePlayer: any + constructor (LivePlayer) { + this.LivePlayer = LivePlayer + } + + exitCasting (_option?: Taro.LivePlayerContext.ExitCastingOption | undefined): void { + throw new Error('Method not implemented.') + } + + exitFullScreen (_option?: Taro.LivePlayerContext.ExitFullScreenOption | undefined): void { + const result = this.LivePlayer.toggleFullScreen(false) + if (result.errMsg === 'exitFullScreen:ok') { + _option?.success?.(result) + } else { + _option?.fail?.(result) + } + _option?.complete?.(result) + } + + exitPictureInPicture (_option?: Taro.LivePlayerContext.ExitPictureInPictureOption | undefined): void { + this.LivePlayer._exitPictureInPicture() + .then((result) => { + _option?.success?.(result) + }) + .catch((err) => { + _option?.fail?.(err) + }) + .finally(() => { + _option?.complete?.({ errMsg: `ok` }) + }) + } + + mute (_option?: Taro.LivePlayerContext.MuteOption | undefined): void { + const result = this.LivePlayer._mute() + if (result.errMsg === 'mute:ok') { + _option?.success?.(result) + } else { + _option?.fail?.(result) + } + _option?.complete?.(result) + } + + pause (_option?: Taro.LivePlayerContext.PauseOption | undefined): void { + const result = this.LivePlayer._pause() + if (result.errMsg === 'pause:ok') { + _option?.success?.(result) + } else { + _option?.fail?.(result) + } + _option?.complete?.(result) + } + + play (_option?: Taro.LivePlayerContext.PlayOption | undefined): void { + const result = this.LivePlayer._play() + if (result.errMsg === 'play:ok') { + _option?.success?.(result) + } else { + _option?.fail?.(result) + } + _option?.complete?.(result) + } + + reconnectCasting (_option?: Taro.LivePlayerContext.ReconnectCastingOption | undefined): void { + throw new Error('Method not implemented.') + } + + requestFullScreen (_option: Taro.LivePlayerContext.RequestFullScreenOption): void { + const result = this.LivePlayer.toggleFullScreen(true) + if (result.errMsg === 'requestFullScreen:ok') { + _option?.success?.(result) + } else { + _option?.fail?.(result) + } + _option?.complete?.(result) + } + + requestPictureInPicture (_option: Taro.LivePlayerContext.RequestPictureInPictureOption): void { + this.LivePlayer._enterPictureInPicture() + .then((result) => { + _option?.success?.(result) + }) + .catch((err) => { + _option?.fail?.(err) + }) + .finally(() => { + _option?.complete?.({ errMsg: `ok` }) + }) + } + + resume (_option?: Taro.LivePlayerContext.ResumeOption | undefined): void { + const result = this.LivePlayer._resume() + if (result.errMsg === 'resume:ok') { + _option?.success?.(result) + } else { + _option?.fail?.(result) + } + _option?.complete?.(result) + } + + snapshot (_option?: Taro.LivePlayerContext.SnapshotOption | undefined): void { + this.LivePlayer._snapshot(_option) + .then((result) => { + _option?.success?.(result) + _option?.complete?.(result) + }) + .catch((err) => { + _option?.fail?.(err) + _option?.complete?.(err) + }) + } + + + startCasting (_option?: Taro.LivePlayerContext.StartCastingOption | undefined): void { + throw new Error('Method not implemented.') + } + + stop (_option?: Taro.LivePlayerContext.StopOption | undefined): void { + const result = this.LivePlayer._stop() + if (result.errMsg === 'stop:ok') { + _option?.success?.(result) + } else { + _option?.fail?.(result) + } + _option?.complete?.(result) + } + + switchCasting (_option?: Taro.LivePlayerContext.SwitchCastingOption | undefined): void { + throw new Error('Method not implemented.') + } +} \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/live/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/live/index.ts new file mode 100644 index 000000000000..d889f1d926b3 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/live/index.ts @@ -0,0 +1,16 @@ +import Taro from '@tarojs/api' + +import { findDOM } from '../../utils' +import { LivePlayerContext } from './LivePlayerContext' + +/** + * 创建 live-player 上下文 LivePlayerContext 对象 + * + * @canUse createLivePlayerContext + */ +export const createLivePlayerContext: typeof Taro.createLivePlayerContext = (id, inst) => { + const el = findDOM(inst) as HTMLElement + const LivePlayer = el?.querySelector(`taro-live-player-core[id=${id}]`) as unknown as Taro.LivePlayerContext + const context = new LivePlayerContext(LivePlayer) + return context +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/map/MapContext.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/map/MapContext.ts new file mode 100644 index 000000000000..a2a0bd29bdd5 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/map/MapContext.ts @@ -0,0 +1,479 @@ +import Taro from '@tarojs/taro' + +/** + * MapContext 实例 + * + * @canUse MapContext + * @__class + * [getCenterLocation, setLocMarkerIcon, translateMarker, moveAlong, includePoints, getRegion, getRotate, getSkew, getScale, setCenterOffset,\ + * addGroundOverlay, setBoundary, updateGroundOverlay, removeGroundOverlay, addMarkers, removeMarkers] + */ + +export class MapContext implements Taro.MapContext { + Map: any + + constructor (Map) { + this.Map = Map + } + + getCenterLocation ( + _option?: Taro.MapContext.GetCenterLocationOption | undefined + ): Promise { + try { + const centerLocation = this.Map._getCenterLocation(_option) // 调用地图组件的方法获取中心位置 + const successResult: Taro.MapContext.GetCenterLocationSuccessCallbackResult = { + latitude: centerLocation[1], + longitude: centerLocation[0], + errMsg: 'getCenterLocation:ok', + } + + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'getCenterLocation:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `getCenterLocation:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'getCenterLocation:ok' }) + + return Promise.reject(errorResult) + } + } + + setLocMarkerIcon (_option?: Taro.MapContext.SetLocMarkerIconOption | undefined): Promise { + try { + this.Map._setLocMarkerIcon(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'setLocMarkerIcon:ok', + } + _option?.success?.({ errMsg: 'setLocMarkerIcon:ok' }) + _option?.complete?.({ errMsg: 'setLocMarkerIcon:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `setLocMarkerIcon:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'setLocMarkerIcon:ok' }) + + return Promise.reject(errorResult) + } + } + + moveToLocation (_option: Taro.MapContext.MoveToLocationOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `moveToLocation接口未支持` } + return Promise.reject(errorResult) + } + + translateMarker (_option: Taro.MapContext.TranslateMarkerOption): Promise { + try { + const flagObj = this.Map._translateMarker(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'translateMarker:ok', + } + if (flagObj) { + if (flagObj.flagId && flagObj.flagCoordinate) { + _option?.success?.({ errMsg: 'translateMarker:ok' }) + _option?.complete?.({ errMsg: 'translateMarker:ok' }) + } else if (!flagObj.flagId) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `translateMarker:fail,makerId${_option.markerId}未找到` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } else if (flagObj.flagId && !flagObj.flagCoordinate) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `translateMarker:fail,请设置坐标点经纬度有效值` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + + } else { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `translateMarker:fail,makerId${_option.markerId}未找到` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `translateMarker:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'translateMarker:ok' }) + + return Promise.reject(errorResult) + } + } + + moveAlong (_object: any) { + try { + const flagObj = this.Map._moveAlong(_object) + const successResult: any = { + errMsg: 'moveAlong:ok', + } + + if (flagObj) { + if (flagObj.flagId && flagObj.flagCoordinate) { + _object?.success?.({ errMsg: 'moveAlong:ok' }) + _object?.complete?.({ errMsg: 'moveAlong:ok' }) + } else if (!flagObj.flagId) { + const errorResult: any = { errMsg: `moveAlong:fail,makerId${_object.markerId}未找到` } + _object?.fail?.(errorResult) + _object?.complete?.(errorResult) + } else if (flagObj.flagId && !flagObj.flagCoordinate) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `moveAlong:fail,请设置坐标点经纬度有效值` } + _object?.fail?.(errorResult) + _object?.complete?.(errorResult) + } + + } else { + const errorResult: any = { errMsg: `moveAlong:fail,makerId${_object.markerId}未找到` } + _object?.fail?.(errorResult) + _object?.complete?.(errorResult) + } + + return successResult + } catch (e) { + const errorResult: any = { errMsg: `moveAlong:${e}` } + _object?.fail?.(errorResult) + _object?.complete?.({ errMsg: 'moveAlong:ok' }) + return errorResult + } + } + + includePoints (_option: Taro.MapContext.IncludePointsOption): Promise { + try { + const flag = this.Map._includePoints(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'includePoints:ok' + } + if (flag) { + _option?.success?.({ errMsg: 'includePoints:ok' }) + _option?.complete?.({ errMsg: 'includePoints:ok' }) + } else { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `includePoints:fail,可视范围的坐标点超出最小缩放级别` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `includePoints:${e},可视范围的坐标点超出最小缩放级别` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'includePoints:ok' }) + return Promise.reject(errorResult) + } + } + + getRegion ( + _option?: Taro.MapContext.GetRegionOption | undefined + ): Promise { + try { + const Region = this.Map._getRegion() + const successResult: Taro.MapContext.GetRegionSuccessCallbackResult = { + northeast: { latitude: Region.northeast.lat, longitude: Region.northeast.lng }, + southwest: { latitude: Region.southwest.lat, longitude: Region.southwest.lng }, + errMsg: 'getRegion:ok', + } + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'getRegion:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `getRegion:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'getRegion:ok' }) + + return Promise.reject(errorResult) + } + } + + getRotate ( + _option?: Taro.MapContext.GetRotateOption | undefined + ): Promise { + try { + const Rotate = this.Map._getRotate() + const successResult: Taro.MapContext.GetRotateSuccessCallbackResult = { + rotate: Rotate, + errMsg: 'getRotate:ok', + } + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'getRotate:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `getRotate:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'getRotate:ok' }) + + return Promise.reject(errorResult) + } + } + + getSkew (_option?: Taro.MapContext.GetSkewOption | undefined): Promise { + try { + const Skew = this.Map._getSkew() + const successResult: Taro.MapContext.GetSkewSuccessCallbackResult = { + skew: Skew, + errMsg: 'getSkew:ok', + } + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'getSkew:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `getSkew:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'getSkew:ok' }) + + return Promise.reject(errorResult) + } + } + + getScale ( + _option?: Taro.MapContext.GetScaleOption | undefined + ): Promise { + try { + const Scale = this.Map._getScale() + const successResult: Taro.MapContext.GetScaleSuccessCallbackResult = { + scale: Scale, + errMsg: 'getScale:ok', + } + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'getScale:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `getScale:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'getScale:ok' }) + + return Promise.reject(errorResult) + } + } + + setCenterOffset (_option: Taro.MapContext.SetCenterOffsetOption): Promise { + try { + this.Map._setCenterOffset(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'setCenterOffset:ok', + } + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'setCenterOffset:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `setCenterOffset:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'setCenterOffset:ok' }) + + return Promise.reject(errorResult) + } + } + + removeCustomLayer (_option: Taro.MapContext.RemoveCustomLayerOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `removeCustomLayer接口未支持` } + return Promise.reject(errorResult) + } + + addCustomLayer (_option: Taro.MapContext.AddCustomLayerOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `addCustomLayer接口未支持` } + return Promise.reject(errorResult) + } + + addGroundOverlay (_option: Taro.MapContext.AddGroundLayerOption): Promise { + try { + const flag = this.Map._addGroundOverlay(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'addGroundOverlay:ok', + } + if (flag) { + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'addGroundOverlay:ok' }) + } else { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `addGroundOverlay:fail,请设置经纬度有效值` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `addGroundOverlay:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'addGroundOverlay:ok' }) + + return Promise.reject(errorResult) + } + } + + addVisualLayer (_option: Taro.MapContext.AddVisualLayerOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `addVisualLayer接口未支持` } + return Promise.reject(errorResult) + } + + removeVisualLayer (_option: Taro.MapContext.RemoveVisualLayerOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `removeVisualLayer接口未支持` } + return Promise.reject(errorResult) + } + + addArc (_option: Taro.MapContext.AddArcOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `addArc接口未支持` } + return Promise.reject(errorResult) + } + + removeArc (_option: Taro.MapContext.RemoveArcOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `removeArc接口未支持` } + return Promise.reject(errorResult) + } + + setBoundary (_option: Taro.MapContext.SetBoundaryOption): Promise { + try { + const flag = this.Map._setBoundary(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'setBoundary:ok', + } + if (flag) { + _option?.success?.({ errMsg: 'setBoundary:ok' }) + _option?.complete?.({ errMsg: 'setBoundary:ok' }) + } else { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `setBoundary:fail,请设置经纬度有效值` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `setBoundary:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'setBoundary:ok' }) + + return Promise.reject(errorResult) + } + } + + updateGroundOverlay (_option: Taro.MapContext.UpdateGroundOverlayOption): Promise { + try { + const flagObj = this.Map._updateGroundOverlay(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'updateGroundOverlay:ok', + } + if (flagObj) { + if (flagObj.flagId && flagObj.flagCoordinate) { + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'updateGroundOverlay:ok' }) + } else if (!flagObj.flagId) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `updateGroundOverlay:fail,未找到id为${_option.id}的自定义图片图层` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } else if (flagObj.flagId && !flagObj.flagCoordinate) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `updateGroundOverlay:fail,请设置经纬度有效值` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + } else { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `updateGroundOverlay:fail,未找到id为${_option.id}的自定义图片图层` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + return Promise.resolve(successResult) + + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `updateGroundOverlay:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'updateGroundOverlay:ok' }) + + return Promise.reject(errorResult) + } + } + + removeGroundOverlay (_option: Taro.MapContext.RemoveGroundOverlayOption): Promise { + try { + const newTargetOverlay = this.Map._removeGroundOverlay(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'removeGroundOverlay:ok', + } + if (newTargetOverlay) { + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'removeGroundOverlay:ok' }) + } else { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `removeGroundOverlay:fail,未找到id为${_option.id}的自定义图片图层` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `removeGroundOverlay:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'removeGroundOverlay:ok' }) + + return Promise.reject(errorResult) + } + } + + toScreenLocation (_option: Taro.MapContext.ToScreenLocationOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `toScreenLocation接口未支持` } + return Promise.reject(errorResult) + } + + fromScreenLocation (_option: Taro.MapContext.FromScreenLocationOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `fromScreenLocation接口未支持` } + return Promise.reject(errorResult) + } + + openMapApp (_option: Taro.MapContext.OpenMapAppOption): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `openMapApp接口未支持` } + return Promise.reject(errorResult) + } + + addMarkers (_option: Taro.MapContext.AddMarkersOption): Promise { + try { + this.Map._addMarkers(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'addMarkers:ok', + } + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'addMarkers:ok' }) + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `addMarkers:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'addMarkers:ok' }) + + return Promise.reject(errorResult) + } + } + + removeMarkers (_option: Taro.MapContext.RemoveMarkersOption): Promise { + try { + const TargetMarker = this.Map._removeMarkers(_option) + const successResult: TaroGeneral.CallbackResult = { + errMsg: 'removeMarkers:ok', + } + if (TargetMarker) { + _option?.success?.(successResult) + _option?.complete?.({ errMsg: 'removeMarkers:ok' }) + } else { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `removeMarkers:fail,未找到该id的marker` } + _option?.fail?.(errorResult) + _option?.complete?.(errorResult) + } + + return Promise.resolve(successResult) + } catch (e) { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `removeMarkers:${e}` } + _option?.fail?.(errorResult) + _option?.complete?.({ errMsg: 'removeMarkers:ok' }) + + return Promise.reject(errorResult) + } + } + + initMarkerCluster ( + _option?: Taro.MapContext.InitMarkerClusterOption | undefined + ): Promise { + const errorResult: TaroGeneral.CallbackResult = { errMsg: `initMarkerCluster接口未支持` } + return Promise.reject(errorResult) + } + + on ( + _event: keyof Taro.MapContext.MapEvent, + _callback: (res: Taro.MapContext.MapEventMarkerClusterCreate | Taro.MapContext.MapEventMarkerClusterClick) => void + ): void { + console.error('on接口未支持') + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/map/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/map/index.ts new file mode 100644 index 000000000000..97c54558fe9b --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/map/index.ts @@ -0,0 +1,16 @@ +import Taro from '@tarojs/taro' + +import { findDOM } from '../../utils' +import { MapContext } from './MapContext' + +/** + * 创建 map 上下文 MapContext 对象。 + * + * @canUse createMapContext + */ +export const createMapContext: typeof Taro.createMapContext = (id, inst) => { + const el = findDOM(inst) as HTMLDivElement + const Map = el?.querySelector(`taro-map-core[id=${id}]`) as unknown as Taro.MapContext + const context = new MapContext(Map) + return context +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/media-recorder.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/media-recorder.ts new file mode 100644 index 000000000000..e63f6b0da3f1 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/media-recorder.ts @@ -0,0 +1,12 @@ +/** + * 创建 WebGL 画面录制器 + * + * @canNotUse createMediaRecorder + */ +export { createMediaRecorder } from '@tarojs/taro-h5' + +/** + * 画面录制器 + * + * @canNotUse MediaRecorder + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/recorder.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/recorder.ts new file mode 100644 index 000000000000..e473cef2b996 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/recorder.ts @@ -0,0 +1,34 @@ +import Taro from '@tarojs/taro' + +/** + * 停止录音 + * + * @canNotUse stopRecord + */ +export { stopRecord } from '@tarojs/taro-h5' + +/** + * 开始录音 + * + * @canNotUse startRecord + */ +export { startRecord } from '@tarojs/taro-h5' + +/** + * 获取全局唯一的录音管理器 + * + * @canUse getRecorderManager + */ +export const getRecorderManager: typeof Taro.getRecorderManager = () => { + // @ts-ignore + return native.getRecorderManager() +} + +/** + * 全局唯一的录音管理器 + * + * @canUse RecorderManager + * @__class + * [onError, onFrameRecorded, onInterruptionBegin, onInterruptionEnd, onPause, onResume, onStart, onStop, pause, resume,\ + * start, stop] + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video-decoder.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video-decoder.ts new file mode 100644 index 000000000000..e28c6f7587c7 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video-decoder.ts @@ -0,0 +1,12 @@ +/** + * 创建视频解码器 + * + * @canNotUse createVideoDecoder + */ +export { createVideoDecoder } from '@tarojs/taro-h5' + +/** + * 视频解码器 + * + * @canNotUse VideoDecoder + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video-processing.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video-processing.ts new file mode 100644 index 000000000000..96e191e4006e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video-processing.ts @@ -0,0 +1,18 @@ +/** + * 创建音视频处理容器 + * + * @canNotUse createMediaContainer + */ +export { createMediaContainer } from '@tarojs/taro-h5' + +/** + * 创建音视频处理容器,最终可将容器中的轨道合成一个视频 + * + * @canNotUse MediaContainer + */ + +/** + * MediaTrack 音频或视频轨道 + * + * @canNotUse MediaTrack + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/chooseVideo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/chooseVideo.ts new file mode 100644 index 000000000000..50176dac9d4a --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/chooseVideo.ts @@ -0,0 +1,91 @@ +import Taro from '@tarojs/api' +import { showActionSheet } from '@tarojs/taro-h5' + +import { shouldBeObject } from '../../utils' +import { MethodHandler } from '../../utils/handler' +import native from '../../NativeApi' + + +/** + * 拍摄视频或从手机相册中选视频 + * + * @canUse chooseVideo + * @__object [camera[back, front], compressed, maxDuration, sourceType[album, camera]] + * @__success [tempFilePath, duration, size, height, width] + */ +export const chooseVideo: typeof Taro.chooseVideo = async (options) => { + const name = 'chooseVideo' + + // options must be an Object + const isValid = shouldBeObject(options).flag || typeof options === 'undefined' + if (!isValid) { + const res = { errMsg: `${name}:fail invalid params` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { + compressed = true, + sourceType = ['album', 'camera'], + maxDuration = 60, + camera = 'back', + success, + fail, + } = options as Exclude + const mediaType = ['video'] + + const handle = new MethodHandler<{ + tempFilePath?: string + duration?: number + size?: number + height?: number + width?: number + errMsg?: string + }>({ name, success, fail }) + + const sizeType = compressed ? ['compressed'] : ['original'] + + // @ts-ignore + let sourceSelected: string + if (sourceType.length === 1) { + sourceSelected = sourceType[0] + } else if (typeof sourceType !== 'object' || (sourceType.includes('album') && sourceType.includes('camera'))) { + const selected = await showActionSheet({ itemList: ['拍摄', '从相册选择'] }).then((res) => { + sourceSelected = (res.tapIndex === 0 ? 'camera' : 'album') + return true + }, () => { + return false + }) + if (!selected) { + return handle.fail({ errMsg: 'fail cancel' }) + } + } + + return new Promise((resolve, reject) => { + // @ts-ignore + native.chooseMediaAssets({ + count: 1, + sizeType: sizeType, + mediaType: mediaType, + sourceType: sourceSelected, + maxDuration: maxDuration, + camera: camera, + apiName: name, + success: (res: any) => { + const result: Taro.chooseVideo.SuccessCallbackResult = { + duration: res.tempFiles[0].duration, + height: res.tempFiles[0].height, + size: res.tempFiles[0].size, + tempFilePath: res.tempFiles[0].tempFilePath, + width: res.tempFiles[0].width, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} + diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/compressVideo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/compressVideo.ts new file mode 100644 index 000000000000..94cf4e39d7ee --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/compressVideo.ts @@ -0,0 +1,108 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../../NativeApi' +/** + * 压缩视频接口 + * + * @canUse compressVideo + * @null_implementation + */ +export const compressVideo: typeof Taro.compressVideo = (options) => { + const name = 'compressVideo' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { + src, + quality = ['low', 'medium', 'high'], + bitrate, + fps, + resolution, + success, + fail, + complete, + } = options as Exclude + + const handle = new MethodHandler<{ + tempFilePath?: string + size?: number + }>({ name, success, fail, complete }) + + // options.url must be String + if (typeof src !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'src', + correct: 'string', + wrong: src, + }), + }) + } + if (typeof quality !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'quality', + correct: 'string', + wrong: quality, + }), + }) + } + if (typeof bitrate !== 'number') { + return handle.fail({ + errMsg: getParameterError({ + para: 'bitrate', + correct: 'number', + wrong: bitrate, + }), + }) + } + if (typeof fps !== 'number') { + return handle.fail({ + errMsg: getParameterError({ + para: 'fps', + correct: 'number', + wrong: fps, + }), + }) + } + if (typeof resolution !== 'number') { + return handle.fail({ + errMsg: getParameterError({ + para: 'resolution', + correct: 'number', + wrong: resolution, + }), + }) + } + + return new Promise((resolve, reject) => { + // @ts-ignore + native.compressVideo({ + src: src, + quality: quality, + bitrate: bitrate, + fps: fps, + resolution: resolution, + success: (res: any) => { + const result: Taro.compressVideo.SuccessCallbackResult = { + tempFilePath: res.tempFilePath, + size: res.size, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + return handle.fail(err) + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/index.ts index 0c2bd6e5c2c9..947e18e8269c 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/index.ts @@ -1,8 +1,25 @@ // 视频 export * from './getVideoInfo' +export * from './openVideoEditor' +export * from './saveVideoToPhotosAlbum' + +/** + * 创建 video 上下文 VideoContext 对象。 + * + * @canUse createVideoContext + */ +export * from './chooseVideo' +export * from './compressVideo' +export { createVideoContext } from '@tarojs/taro-h5' /** * 拍摄视频或从手机相册中选视频。 */ export * from './chooseMedia' +/** + * VideoContext 实例 + * + * @canUse VideoContext + * @__class [pause, play, requestFullScreen, seek, stop] + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/openVideoEditor.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/openVideoEditor.ts new file mode 100644 index 000000000000..601c0d99a1fd --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/openVideoEditor.ts @@ -0,0 +1,60 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +/** + * 打开视频编辑器 + * + * @canUse openVideoEditor + * @__object [filePath] + * @__success [duration, size, tempFilePath, tempThumbPath] + */ +export const openVideoEditor: typeof Taro.openVideoEditor = (options) => { + const name = 'openVideoEditor' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { filePath, success, fail, complete } = options as Exclude + const handle = new MethodHandler<{ + duration?: number + size?: number + tempFilePath?: string + tempThumbPath?: string + }>({ name, success, fail, complete }) + + // options.url must be String + if (typeof filePath !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'filePath', + correct: 'string', + wrong: filePath, + }), + }) + } + + return new Promise((resolve, reject) => { + // @ts-ignore + native.openVideoEditor({ + filePath: filePath, + success: (res: any) => { + const result: Taro.openVideoEditor.SuccessCallbackResult = { + duration: res.duration, + size: res.size, + tempFilePath: res.tempFilePath, + tempThumbPath: res.tempThumbPath, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/saveVideoToPhotosAlbum.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/saveVideoToPhotosAlbum.ts new file mode 100644 index 000000000000..bbac544e69eb --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/video/saveVideoToPhotosAlbum.ts @@ -0,0 +1,47 @@ +import Taro from '@tarojs/api' + +import { getParameterError, shouldBeObject } from '../../utils' +import { MethodHandler } from '../../utils/handler' + +/** + * 保存视频到系统相册 + * + * @canUse saveVideoToPhotosAlbum + * @__object [filePath] + */ +export const saveVideoToPhotosAlbum: typeof Taro.saveVideoToPhotosAlbum = (options) => { + const methodName = 'saveVideoToPhotosAlbum' + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${methodName}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { filePath, success, fail, complete } = options + + const handle = new MethodHandler({ name: methodName, success, fail, complete }) + if (typeof filePath !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'filePath', + correct: 'String', + wrong: filePath, + }), + }) + } + + return new Promise((resolve, reject) => { + // @ts-ignore + native.saveVideoToPhotosAlbum({ + filePath: filePath, + success: (res: any) => { + handle.success(res, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail(err, { resolve, reject }) + }, + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/voip.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/voip.ts new file mode 100644 index 000000000000..2f5c6c19fdf8 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/voip.ts @@ -0,0 +1,111 @@ +/** + * 更新实时语音静音设置 + * + * @canNotUse updateVoIPChatMuteConfig + */ +export { updateVoIPChatMuteConfig } from '@tarojs/taro-h5' + +/** + * 订阅视频画面成员 + * + * @canNotUse subscribeVoIPVideoMembers + */ +export { subscribeVoIPVideoMembers } from '@tarojs/taro-h5' + +/** + * 开启双人通话 + * + * @canNotUse setEnable1v1Chat + */ +export { setEnable1v1Chat } from '@tarojs/taro-h5' + +/** + * 监听实时语音通话成员视频状态变化事件 + * + * @canNotUse onVoIPVideoMembersChanged + */ +export { onVoIPVideoMembersChanged } from '@tarojs/taro-h5' + +/** + * 监听房间状态变化事件 + * + * @canNotUse onVoIPChatStateChanged + */ +export { onVoIPChatStateChanged } from '@tarojs/taro-h5' + +/** + * 监听实时语音通话成员通话状态变化事件 + * + * @canNotUse onVoIPChatSpeakersChanged + */ +export { onVoIPChatSpeakersChanged } from '@tarojs/taro-h5' + +/** + * 监听实时语音通话成员在线状态变化事件 + * + * @canNotUse onVoIPChatMembersChanged + */ +export { onVoIPChatMembersChanged } from '@tarojs/taro-h5' + +/** + * 监听被动断开实时语音通话事件 + * + * @canNotUse onVoIPChatInterrupted + */ +export { onVoIPChatInterrupted } from '@tarojs/taro-h5' + +/** + * 取消监听实时语音通话成员视频状态变化事件 + * + * @canNotUse offVoIPVideoMembersChanged + */ +export { offVoIPVideoMembersChanged } from '@tarojs/taro-h5' + +/** + * 取消监听房间状态变化事件 + * + * @canNotUse offVoIPChatStateChanged + */ +export { offVoIPChatStateChanged } from '@tarojs/taro-h5' + +/** + * 取消监听实时语音通话成员通话状态变化事件 + * + * @canNotUse offVoIPChatSpeakersChanged + */ +export { offVoIPChatSpeakersChanged } from '@tarojs/taro-h5' + +/** + * 取消监听实时语音通话成员在线状态变化事件 + * + * @canNotUse offVoIPChatMembersChanged + */ +export { offVoIPChatMembersChanged } from '@tarojs/taro-h5' + +/** + * 取消监听被动断开实时语音通话事件 + * + * @canNotUse offVoIPChatInterrupted + */ +export { offVoIPChatInterrupted } from '@tarojs/taro-h5' + +/** + * 加入 (创建) 实时语音通话 + * + * @canNotUse joinVoIPChat + */ +export { joinVoIPChat } from '@tarojs/taro-h5' + +/** + * 加入(创建)双人通话 + * + * @canNotUse join1v1Chat + */ +export { join1v1Chat } from '@tarojs/taro-h5' + +/** + * 退出(销毁)实时语音通话 + * + * @canNotUse exitVoIPChat + */ +export { exitVoIPChat } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/network/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/network/index.ts index 7a399fcb0725..80269b582d30 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/network/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/network/index.ts @@ -1,3 +1,7 @@ export * from './download' +export * from './mdns' export * from './request' +export * from './tcp' +export * from './udp' export * from './upload' +export * from './websocket' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/network/mdns.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/network/mdns.ts new file mode 100644 index 000000000000..0b25545463cc --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/network/mdns.ts @@ -0,0 +1,69 @@ +/** + * 停止搜索 mDNS 服务 + * + * @canNotUse stopLocalServiceDiscovery + */ +export { stopLocalServiceDiscovery } from '@tarojs/taro-h5' + +/** + * 停止搜索 mDNS 服务 + * + * @canNotUse startLocalServiceDiscovery + */ +export { startLocalServiceDiscovery } from '@tarojs/taro-h5' + +/** + * 监听 mDNS 服务解析失败的事件 + * + * @canNotUse onLocalServiceResolveFail + */ +export { onLocalServiceResolveFail } from '@tarojs/taro-h5' + +/** + * 监听 mDNS 服务离开的事件 + * + * @canNotUse onLocalServiceLost + */ +export { onLocalServiceLost } from '@tarojs/taro-h5' + +/** + * 监听 mDNS 服务发现的事件 + * + * @canNotUse onLocalServiceFound + */ +export { onLocalServiceFound } from '@tarojs/taro-h5' + +/** + * 监听 mDNS 服务停止搜索的事件 + * + * @canNotUse onLocalServiceDiscoveryStop + */ +export { onLocalServiceDiscoveryStop } from '@tarojs/taro-h5' + +/** + * 取消监听 mDNS 服务解析失败的事件 + * + * @canNotUse offLocalServiceResolveFail + */ +export { offLocalServiceResolveFail } from '@tarojs/taro-h5' + +/** + * 取消监听 mDNS 服务离开的事件 + * + * @canNotUse offLocalServiceLost + */ +export { offLocalServiceLost } from '@tarojs/taro-h5' + +/** + * 取消监听 mDNS 服务发现的事件 + * + * @canNotUse offLocalServiceFound + */ +export { offLocalServiceFound } from '@tarojs/taro-h5' + +/** + * 取消监听 mDNS 服务停止搜索的事件 + * + * @canNotUse offLocalServiceDiscoveryStop + */ +export { offLocalServiceDiscoveryStop } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/network/request/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/network/request/index.ts index 092a0720adf3..ec627dae335c 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/network/request/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/network/request/index.ts @@ -82,3 +82,17 @@ export function request (options) { * @canUse RequestTask * @__class [abort, onHeadersReceived, offHeadersReceived] */ + +/** + * 使用拦截器 + * + * @canNotUse addInterceptor + */ +export const addInterceptor = link.addInterceptor.bind(link) + +/** + * 清除所有拦截器 + * + * @canNotUse cleanInterceptors + */ +export const cleanInterceptors = link.cleanInterceptors.bind(link) diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/network/tcp.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/network/tcp.ts new file mode 100644 index 000000000000..4bd2d477664c --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/network/tcp.ts @@ -0,0 +1,12 @@ +/** + * 创建一个 TCP Socket 实例 + * + * @canNotUse createTCPSocket + */ +export { createTCPSocket } from '@tarojs/taro-h5' + +/** + * 一个 TCP Socket 实例,默认使用 IPv4 协议 + * + * @canNotUse TCPSocket + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/network/udp.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/network/udp.ts new file mode 100644 index 000000000000..12e200d2c146 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/network/udp.ts @@ -0,0 +1,12 @@ +/** + * 创建一个 UDP Socket 实例 + * + * @canNotUse createUDPSocket + */ +export { createUDPSocket } from '@tarojs/taro-h5' + +/** + * 一个 UDP Socket 实例,默认使用 IPv4 协议 + * + * @canNotUse UDPSocket + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/network/websocket/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/network/websocket/index.ts new file mode 100644 index 000000000000..0f36c00f6552 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/network/websocket/index.ts @@ -0,0 +1,56 @@ +/** + * 通过 WebSocket 连接发送数据 + * + * @canNotUse sendSocketMessage + */ +export { sendSocketMessage } from '@tarojs/taro-h5' + +/** + * 监听 WebSocket 连接打开事件 + * + * @canNotUse onSocketOpen + */ +export { onSocketOpen } from '@tarojs/taro-h5' + +/** + * 监听 WebSocket 接受到服务器的消息事件 + * + * @canNotUse onSocketMessage + */ +export { onSocketMessage } from '@tarojs/taro-h5' + +/** + * 监听 WebSocket 错误事件 + * + * @canNotUse onSocketError + */ +export { onSocketError } from '@tarojs/taro-h5' + +/** + * 监听 WebSocket 连接关闭事件 + * + * @canNotUse onSocketClose + */ +export { onSocketClose } from '@tarojs/taro-h5' + +/** + * 创建一个 WebSocket 连接 + * + * @canUse connectSocket + * @__object [url, header, protocols, tcpNoDelay] + */ +export { connectSocket } from '@tarojs/taro-h5' + +/** + * 关闭 WebSocket 连接 + * + * @canNotUse closeSocket + */ +export { closeSocket } from '@tarojs/taro-h5' + +/** + * WebSocket 任务 + * + * @canUse SocketTask + * @__class [send, close, onOpen, onClose, onError, onMessage] + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/account.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/account.ts new file mode 100644 index 000000000000..7f870266b9fa --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/account.ts @@ -0,0 +1,12 @@ +/** + * 获取当前帐号信息 + * + * @canUse getAccountInfoSync + * @null_implementation + */ +export const getAccountInfoSync = () => { + return { + miniProgram: {}, + plugin: {}, + } +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/address.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/address.ts new file mode 100644 index 000000000000..9c5bcc3a41e4 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/address.ts @@ -0,0 +1,6 @@ +/** + * 收货地址 + * + * @canNotUse chooseAddress + */ +export { chooseAddress } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/authorize.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/authorize.ts new file mode 100644 index 000000000000..a1a558903545 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/authorize.ts @@ -0,0 +1,14 @@ +/** + * 仅小程序插件中能调用该接口 + * + * @canUse authorizeForMiniProgram + * @null_implementation + */ +export const authorizeForMiniProgram = () => {} + +/** + * 提前向用户发起授权请求 + * + * @canNotUse authorize + */ +export { authorize } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/card.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/card.ts new file mode 100644 index 000000000000..4ff42af2889f --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/card.ts @@ -0,0 +1,13 @@ +/** + * 查看微信卡包中的卡券 + * + * @canNotUse openCard + */ +export { openCard } from '@tarojs/taro-h5' + +/** + * 批量添加卡券 + * + * @canNotUse addCard + */ +export { addCard } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/channels-live.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/channels-live.ts new file mode 100644 index 000000000000..ecbc9c454e7e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/channels-live.ts @@ -0,0 +1,56 @@ +/** + * 打开视频号主页 + * + * @canUse openChannelsUserProfile + * @null_implementation + */ +export const openChannelsUserProfile = () => { } + +/** + * 预约视频号直播 + * + * @canNotUse reserveChannelsLive + */ +export { reserveChannelsLive } from '@tarojs/taro-h5' + +/** + * 打开视频号直播 + * + * @canNotUse openChannelsLive + */ +export { openChannelsLive } from '@tarojs/taro-h5' + +/** + * 打开视频号活动页 + * + * @canNotUse openChannelsEvent + */ +export { openChannelsEvent } from '@tarojs/taro-h5' + +/** + * 打开视频号视频 + * + * @canNotUse openChannelsActivity + */ +export { openChannelsActivity } from '@tarojs/taro-h5' + +/** + * 获取视频号直播预告信息 + * + * @canNotUse getChannelsLiveNoticeInfo + */ +export { getChannelsLiveNoticeInfo } from '@tarojs/taro-h5' + +/** + * 获取视频号直播信息 + * + * @canNotUse getChannelsLiveInfo + */ +export { getChannelsLiveInfo } from '@tarojs/taro-h5' + +/** + * 获取视频号直播卡片/视频卡片的分享来源 + * + * @canNotUse getChannelsShareKey + */ +export { getChannelsShareKey } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/customer-service.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/customer-service.ts new file mode 100644 index 000000000000..f23261b8402e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/customer-service.ts @@ -0,0 +1,6 @@ +/** + * 微信客服 + * + * @canNotUse openCustomerServiceChat + */ +export { openCustomerServiceChat } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/device-voip.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/device-voip.ts new file mode 100644 index 000000000000..19fd0b939e41 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/device-voip.ts @@ -0,0 +1,14 @@ +/** + * 请求用户授权与设备(组)间进行音视频通话 + * + * @canNotUse requestDeviceVoIP + */ +export { requestDeviceVoIP } from '@tarojs/taro-h5' + + +/** + * 查询当前用户授权的音视频通话设备(组)信息 + * + * @canNotUse getDeviceVoIPList + */ +export { getDeviceVoIPList } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/facial.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/facial.ts new file mode 100644 index 000000000000..86a1028e674a --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/facial.ts @@ -0,0 +1,20 @@ +/** + * 检查是否支持面部识别 + * + * @canNotUse checkIsSupportFacialRecognition + */ +export { checkIsSupportFacialRecognition } from '@tarojs/taro-h5' + +/** + * 开始人脸识别认证 + * + * @canNotUse startFacialRecognitionVerify + */ +export { startFacialRecognitionVerify } from '@tarojs/taro-h5' + +/** + * 开始人脸识别认证并上传认证视频 + * + * @canNotUse startFacialRecognitionVerifyAndUploadVideo + */ +export { startFacialRecognitionVerifyAndUploadVideo } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/favorites.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/favorites.ts new file mode 100644 index 000000000000..96d7253fe967 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/favorites.ts @@ -0,0 +1,20 @@ +/** + * 收藏视频 + * + * @canNotUse addVideoToFavorites + */ +export { addVideoToFavorites } from '@tarojs/taro-h5' + +/** + * 收藏文件 + * + * @canNotUse addFileToFavorites + */ +export { addFileToFavorites } from '@tarojs/taro-h5' + +/** + * 检查小程序是否被添加至 「我的小程序」 + * + * @canNotUse checkIsAddedToMyMiniProgram + */ +export { checkIsAddedToMyMiniProgram } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/group.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/group.ts new file mode 100644 index 000000000000..ae5920b44ec8 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/group.ts @@ -0,0 +1,6 @@ +/** + * 获取微信群聊场景下的小程序启动信息 + * + * @canNotUse getGroupEnterInfo + */ +export { getGroupEnterInfo } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/index.ts index d35afdfae6b7..f147cdec83e3 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/index.ts @@ -1,3 +1,43 @@ +/** + * 模拟隐私接口调用,并触发隐私弹窗逻辑 + * + * @canNotUse requirePrivacyAuthorize + */ + +/** + * 跳转至隐私协议页面 + * + * @canNotUse openPrivacyContract + */ + +/** + * 监听隐私接口需要用户授权事件。 + * + * @canNotUse onNeedPrivacyAuthorization + */ + +/** + * 查询隐私授权情况。 + * + * @canNotUse getPrivacySetting + */ + +export * from './account' +export * from './address' +export * from './authorize' +export * from './card' +export * from './channels-live' +export * from './customer-service' +export * from './device-voip' +export * from './facial' +export * from './favorites' +export * from './group' +export * from './invoice' +export * from './license-plate' export * from './login' +export * from './red-package' export * from './settings' +export * from './soter' +export * from './subscribe-message' export * from './user-info' +export * from './werun' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/invoice.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/invoice.ts new file mode 100644 index 000000000000..f9b60965bfc6 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/invoice.ts @@ -0,0 +1,13 @@ +/** + * 选择用户的发票抬头 + * + * @canNotUse chooseInvoiceTitle + */ +export { chooseInvoiceTitle } from '@tarojs/taro-h5' + +/** + * 选择用户已有的发票。 + * + * @canNotUse chooseInvoice + */ +export { chooseInvoice } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/license-plate.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/license-plate.ts new file mode 100644 index 000000000000..bf81668c0482 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/license-plate.ts @@ -0,0 +1,6 @@ +/** + * 选择车牌号。 + * + * @canNotUse chooseLicensePlate + */ +export { chooseLicensePlate } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/login/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/login/index.ts index d4389750ae4a..c37b16ac6280 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/login/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/login/index.ts @@ -1 +1,14 @@ +/** + * 检查登录态是否过期 + * + * @canNotUse checkSession + */ +export { checkSession } from '@tarojs/taro-h5' + +/** + * 该接口仅在小程序插件中可调用,调用接口获得插件用户标志凭证(code) + * + * @canNotUse pluginLogin + */ export * from './login' +export { pluginLogin } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/red-package.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/red-package.ts new file mode 100644 index 000000000000..aad209dbf99c --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/red-package.ts @@ -0,0 +1,6 @@ +/** + * 拉取h5领取红包封面页。 + * + * @canNotUse showRedPackage + */ +export { showRedPackage } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/settings/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/settings/index.ts index 941799a9398f..74c54dfb4fcc 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/settings/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/settings/index.ts @@ -1,2 +1,17 @@ export * from './getSetting' -export * from './openSetting' \ No newline at end of file +export * from './openSetting' + +/** + * 用户授权设置信息 + * + * @canUse AuthSetting + * @__class [scope[userInfo, userLocation, address, invoiceTitle, invoice,\ + * werun, record, writePhotosAlbum, camera, bluetoothBackground]] + */ + +/** + * 订阅消息设置 + * + * @canUse SubscriptionsSetting + * @__class [mainSwitch, itemSettings] + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSoterEnrolledInDevice.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSoterEnrolledInDevice.ts new file mode 100644 index 000000000000..592461caaffb --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSoterEnrolledInDevice.ts @@ -0,0 +1,55 @@ +import Taro from '@tarojs/api' + +import { getParameterError, shouldBeObject } from '../../utils' +import { MethodHandler } from '../../utils/handler' + +/** + * 获取设备内是否录入如指纹等生物信息的接口 + * + * @canUse checkIsSoterEnrolledInDevice + * @__object [checkAuthMode] + * @__success [isEnrolled, errMsg] + */ +export const checkIsSoterEnrolledInDevice: typeof Taro.checkIsSoterEnrolledInDevice = (options) => { + const name = 'checkIsSoterEnrolledInDevice' + + return new Promise((resolve, reject) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { checkAuthMode, success, fail, complete } = options as Exclude + const handle = new MethodHandler<{ + isEnrolled?: boolean + errMsg?: string + }>({ name, success, fail, complete }) + + if (typeof checkAuthMode !== 'object') { + return handle.fail( + { + errMsg: getParameterError({ + para: 'checkAuthMode', + correct: 'object', + wrong: checkAuthMode, + }), + }, + { resolve, reject } + ) + } + + // @ts-ignore + const ret = native.checkIsSoterEnrolledInDevice({ + success: (res: any) => { + return handle.success(res) + }, + fail: (err: any) => { + return handle.fail(err) + }, + }) + return ret + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSupportSoterAuthentication.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSupportSoterAuthentication.ts new file mode 100644 index 000000000000..0b12d9133c17 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/checkIsSupportSoterAuthentication.ts @@ -0,0 +1,39 @@ +import Taro from '@tarojs/api' + +import { shouldBeObject } from '../../utils' +import { MethodHandler } from '../../utils/handler' + +/** + * 获取本机支持的 SOTER 生物认证方式 + * + * @canUse checkIsSupportSoterAuthentication + * @__success [supportMode] + */ +export const checkIsSupportSoterAuthentication: typeof Taro.checkIsSupportSoterAuthentication = (options) => { + const name = 'checkIsSupportSoterAuthentication' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { success, fail, complete } = options as Exclude + const handle = new MethodHandler<{ + supportMode?: object + errMsg?: string + }>({ name, success, fail, complete }) + + // @ts-ignore + const ret = native.checkIsSupportSoterAuthentication({ + success: (res: any) => { + return handle.success(res) + }, + fail: (err: any) => { + return handle.fail(err) + }, + }) + return ret +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/index.ts new file mode 100644 index 000000000000..b2f193b980ac --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/index.ts @@ -0,0 +1,3 @@ +export * from './checkIsSoterEnrolledInDevice' +export * from './checkIsSupportSoterAuthentication' +export * from './startSoterAuthentication' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/startSoterAuthentication.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/startSoterAuthentication.ts new file mode 100644 index 000000000000..f425f32dbd33 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/soter/startSoterAuthentication.ts @@ -0,0 +1,66 @@ +import Taro from '@tarojs/api' + +import { getParameterError, shouldBeObject } from '../../utils' +import { MethodHandler } from '../../utils/handler' + +/** + * 开始 SOTER 生物认证。 + * + * @canUse startSoterAuthentication + * @__object [challenge, requestAuthModes, authContent] + * @__success [authMode, errCode, resultJSON, resultJSONSignature] + */ +export const startSoterAuthentication: typeof Taro.startSoterAuthentication = (options) => { + const name = 'startSoterAuthentication' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { challenge, requestAuthModes, authContent, success, fail, complete } = options + const handle = new MethodHandler<{ + authMode?: string + errCode?: number + errMsg?: string + resultJSON?: string + resultJSONSignature?: string + }>({ name, success, fail, complete }) + + if (typeof challenge !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'challenge', + correct: 'String', + wrong: challenge, + }), + }) + } + + if (typeof requestAuthModes !== 'object') { + return handle.fail({ + errMsg: getParameterError({ + para: 'requestAuthModes', + correct: 'object', + wrong: requestAuthModes, + }), + }) + } + + // @ts-ignore + const ret = native.startSoterAuthentication({ + phoneNumber: challenge, + requestAuthModes: requestAuthModes, + authContent: authContent, + success: (res: any) => { + return handle.success(res) + }, + fail: (err: any) => { + return handle.fail(err) + }, + }) + return ret +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/subscribe-message.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/subscribe-message.ts new file mode 100644 index 000000000000..a35ba98e2033 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/subscribe-message.ts @@ -0,0 +1,30 @@ +import Taro from '@tarojs/taro' + +import native from '../NativeApi' + +/** + * 请求订阅消息 + * + * @canUse requestSubscribeMessage + * @__object [tmplIds] + * @__success [errMsg, TEMPLATE_ID] + */ +export const requestSubscribeMessage = (options) => { + try { + native.requestSubscribeMessage(options) + } catch (res) { + const result:Taro.requestSubscribeMessage.FailCallbackResult = { + errCode: 500, + errMsg: JSON.stringify(res) + } + options.fail?.(result) + options.complete?.(result) + } +} + +/** + * 订阅设备消息接口,调用后弹出授权框,用户同意后会允许开发者给用户发送订阅模版消息 + * + * @canNotUse requestSubscribeDeviceMessage + */ +export { requestSubscribeDeviceMessage } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/getUserInfo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/getUserInfo.ts index eadfc9b45bad..34e0caee4498 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/getUserInfo.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/getUserInfo.ts @@ -37,3 +37,10 @@ export const getUserInfo: typeof Taro.getUserInfo = (options) => { }) return ret } + +/** + * 用户信息 + * + * @canUse UserInfo + * @__class [nickName, avatarUrl] + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/index.ts index 8715d2f73214..b3dd2e0be8e0 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/user-info/index.ts @@ -1,2 +1,9 @@ +/** + * 获取用户信息 + * + * @canNotUse getUserProfile + */ +export { getUserProfile } from '@tarojs/taro-h5' + // 用户信息 export * from './getUserInfo' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/werun.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/werun.ts new file mode 100644 index 000000000000..a3a0f8da3e06 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/open-api/werun.ts @@ -0,0 +1,13 @@ +/** + * 分享数据到微信运动 + * + * @canNotUse shareToWeRun + */ +export { shareToWeRun } from '@tarojs/taro-h5' + +/** + * 获取用户过去三十天微信运动步数。 + * + * @canNotUse getWeRunData + */ +export { getWeRunData } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/osChannelApi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/osChannelApi.ts new file mode 100644 index 000000000000..3c4376b0172d --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/osChannelApi.ts @@ -0,0 +1,389 @@ +let http +let display +let wifiManager +let call +let bluetooth +let inputMethod +let bundleManager +let abilityAccessCtrl +let geoLocationManager + +try { + // @ts-ignore + http = requireNapi('net.http') + // @ts-ignore + display = requireNapi('display') + // @ts-ignore + wifiManager = requireNapi('wifi') + // @ts-ignore + call = requireNapi('telephony.call') + // @ts-ignore + bluetooth = requireNapi('bluetooth') + // @ts-ignore + inputMethod = requireNapi('inputMethod') + // @ts-ignore + bundleManager = requireNapi('bundle.bundleManager') + // @ts-ignore + abilityAccessCtrl = requireNapi('abilityAccessCtrl') + // @ts-ignore + geoLocationManager = requireNapi('geoLocationManager') +} catch (error) { + +} + +let bundleInfoForSelf = null + +try { + // @ts-ignore + bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then(bundleInfoFor => { + bundleInfoForSelf = bundleInfoFor + }) +} catch (e) { + +} + +const errMsgMap = new Map([[401, 'Parameter error'], [201, 'Permission denied'], [3, 'URL using bad/illegal format or missing URL'], [7, 'Couldn\'t connect to server'], [23, 'Failed writing received data to disk/application'], [25, 'Upload failed'], [26, 'Failed to open/read local data from file/application'], [28, 'Timeout was reached'], [73, 'Remote file already exists'], [78, 'Remote file not found'], [999, 'Unknown Other Error']]) + +const ErrorCode = { + PARAMETER_ERROR: 202 +} + +class RequestTask { + private abortFlag: boolean + private readonly fail: (arg0: any) => any + private readonly complete: (arg0: any) => any + private readonly httpRequest: any + private headersCallback: Map + private result: { data?: any, statusCode?: any, header?: any, cookies?: any, errMsg: string | undefined } + private res: { errMsg: string } + + constructor (object: any) { + const { url, header, method = 'GET', timeout, responseType, enableCache } = object || {} + let { data } = object || {} + const { success, fail, complete } = object || {} + this.abortFlag = false + this.fail = fail + this.complete = complete + this.httpRequest = http.createHttp() + this.headersCallback = new Map() + if (!object) { + console.error('[OsChannel] request error: params illegal') + return + } + let isFormUrlEncoded = false + for (const key in header) { + if (key.toLowerCase() === 'content-type') { + if (header[key].toLowerCase().includes('application/x-www-form-urlencoded')) { + isFormUrlEncoded = true + } + break + } + } + + // data为Object类型时,属性的值类型如果是number, request请求时信息会丢失. 故将data转成string类型进行规避 + if (data && (isFormUrlEncoded || ['GET', 'OPTIONS', 'DELETE', 'TRACE', 'CONNECT'].includes(method))) { + const dataArray = [] + for (const key in data) { + // @ts-ignore + dataArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])) + } + data = dataArray.join('&') + } + // header的属性的值类型如果是number, request请求时信息会丢失. 故将各个属性转成string类型 + if (header) { + for (const key in header) { + header[key] = `${header[key]}` + } + } + const httpRequestOptions = { + method: method, + extraData: data || {}, + header: header, + connectTimeout: timeout, + expectDataType: responseType && responseType === 'arraybuffer' ? http.HttpDataType.ARRAY_BUFFER : http.HttpDataType.STRING, + usingCache: enableCache || false + } + this.httpRequest.request(typeof url === 'string' ? url : '', httpRequestOptions).then(data => { + + if (success && !this.abortFlag) { + let result = data.result + const { + dataType + } = object || {} + if (dataType && dataType !== 'json') { + if (typeof data.result === 'object') { + result = JSON.stringify(data.result) + } + } else if (typeof data.result === 'string') { + try { + result = JSON.parse(result) + } catch (err) { /* empty */ + } + } + const res = { + data: result, + statusCode: data.responseCode, + header: data.header, + cookies: typeof data.cookies === 'string' ? data.cookies ? [data.cookies] : [] : data.cookies, + errMsg: 'request:ok' + } + this.result = res + success(res) + } + }).catch((err: any) => { + console.error('[OsChannel] request error: ' + JSON.stringify(err)) + if (fail && !this.abortFlag) { + const res = { + errMsg: errMsgMap.has(err.code) ? errMsgMap.get(err.code) : 'Unknown Error' + } + this.result = res + fail(res) + } + }).finally(() => { + if (complete && !this.abortFlag) { + complete(this.result) + } + }) + } + + /** + * interrupt request task + */ + abort () { + + this.httpRequest.destroy() + this.abortFlag = true + this.res = { + errMsg: 'request:fail abort' + } + this.fail && this.fail(this.res) + this.complete && this.complete(this.res) + } + + /** + * subscribe HTTP Response Header event + * @callback params header {Object}: HTTP Response Header + */ + onHeadersReceived (callback: any) { + const taskCallback = (header: any) => { + !this.abortFlag && callback({ + header + }) + } + if (!callback) { + console.error('[OsChannel] Invalid, callback is null') + return + } + if (!this.headersCallback.has(callback)) { + this.headersCallback.set(callback, taskCallback) + if (this.httpRequest) { + this.httpRequest.on('headersReceive', taskCallback) + } + } + } + + /** + * unsubscribe HTTP Response Header event + * remove all if callback is null, otherwise remove the specialized callback + */ + offHeadersReceived (callback: any) { + if (!callback) { + this.headersCallback.clear() + if (this.httpRequest) { + this.httpRequest.off('headersReceive') + } + } else if (this.headersCallback.has(callback)) { + if (this.httpRequest) { + this.httpRequest.off('headersReceive', this.headersCallback.get(callback)) + } + this.headersCallback.delete(callback) + } else { /* empty */ + } + } +} + +const hideKeyboard = () => { + return new Promise((resolve, reject) => { + try { + const inputMethodController = inputMethod.getController() + inputMethodController.hideTextInput().then(() => { + resolve({ errMsg: 'ok' }) + }).catch((err: any) => { + console.error('[OsChannel] Failed to hideSoftKeyboard: ' + JSON.stringify(err)) + reject(err) + }) + } catch (exception) { + console.error('[OsChannel] Failed to get inputMethod Controller. Cause: ' + JSON.stringify(exception)) + reject(exception) + } + }) +} + +const makePhoneCall = (options) => { + const { phoneNumber, success, fail } = options + if (!phoneNumber) { + return new Promise((_resolve, reject) => { + // eslint-disable-next-line prefer-promise-reject-errors + reject(['param is invalid.', ErrorCode.PARAMETER_ERROR]) + }) + } + return call.makeCall(phoneNumber).then(() => { + // @ts-ignore + success({ 'errMsg': 'ok' }) + }, (err: any) => { + console.error(`[OsChannel] start makePhoneCall fail`) + // @ts-ignore + fail({ 'errMsg': JSON.stringify(err) }) + }) +} + +const getSystemSetting = () => { + let bluetoothEnabled: number | boolean = false + let locationEnabled = false + let wifiEnabled = false + let bluetoothError = '' + let locationError = '' + try { + bluetoothEnabled = bluetooth.getState() + bluetoothEnabled = (bluetoothEnabled === 2 || bluetoothEnabled === 5) + } catch (err) { + console.error('errCode:' + err.code + ',errMessage:' + err.message) + bluetoothError = err.message + } + try { + locationEnabled = geoLocationManager.isLocationEnabled() + } catch (err) { + console.error('errCode:' + err.code + ',errMessage:' + err.message) + locationError = err.message + } + try { + wifiEnabled = wifiManager.isWifiActive() + } catch (err) { + console.error('errCode:' + err.code + ',errMessage:' + err.message) + } + // @ts-ignore + const { rotation } = display.getDefaultDisplaySync() + const deviceOrientation = rotation === 1 || rotation === 3 ? 'landscape' : 'portrait' + return { + bluetoothEnabled, + bluetoothError, + locationEnabled, + locationError, + wifiEnabled, + deviceOrientation + } +} + +const getAppAuthorizeSetting = () => { + const permissionsList = { + album: 'ohos.permission.WRITE_IMAGEVIDEO', + bluetooth: 'ohos.permission.USE_BLUETOOTH', + camera: 'ohos.permission.CAMERA', + location: 'ohos.permission.LOCATION', + locationAccuracy: 'ohos.permission.APPROXIMATELY_LOCATION', + microphone: 'ohos.permission.MICROPHONE', + notification: 'ohos.permission.NOTIFICATION_CONTROLLER', + phoneCalendar: 'ohos.permission.READ_CALENDAR' + } + const atManager = abilityAccessCtrl.createAtManager() + // @ts-ignore + const tokenID = bundleInfoForSelf.appInfo.accessTokenId + const grantStatus = flag => { + if (flag === -1) { + return 'denied' + } else if (flag === 0) { + return 'authorized' + } + return 'config error' + } + let albumAuthorized = 'not determined' + try { + albumAuthorized = atManager.checkAccessTokenSync(tokenID, permissionsList.album) + albumAuthorized = grantStatus(albumAuthorized) + } catch (e) { + + } + let bluetoothAuthorized = 'not determined' + try { + bluetoothAuthorized = atManager.checkAccessTokenSync(tokenID, permissionsList.bluetooth) + bluetoothAuthorized = grantStatus(bluetoothAuthorized) + } catch (e) { + + } + let cameraAuthorized = 'not determined' + try { + cameraAuthorized = atManager.checkAccessTokenSync(tokenID, permissionsList.camera) + cameraAuthorized = grantStatus(cameraAuthorized) + } catch (e) { + + } + let locationAuthorized = 'not determined' + try { + locationAuthorized = atManager.checkAccessTokenSync(tokenID, permissionsList.location) + locationAuthorized = grantStatus(locationAuthorized) + } catch (e) { + + } + let locationAccuracy = 'not determined' + try { + locationAccuracy = atManager.checkAccessTokenSync(tokenID, permissionsList.locationAccuracy) === 0 ? 'full' : 'reduced' + } catch (e) { + + } + let microphoneAuthorized = 'not determined' + try { + microphoneAuthorized = atManager.checkAccessTokenSync(tokenID, permissionsList.microphone) + microphoneAuthorized = grantStatus(microphoneAuthorized) + } catch (e) { + + } + let notificationAuthorized = 'not determined' + try { + notificationAuthorized = atManager.checkAccessTokenSync(tokenID, permissionsList.notification) + notificationAuthorized = grantStatus(notificationAuthorized) + } catch (e) { + + } + let phoneCalendarAuthorized = 'not determined' + try { + phoneCalendarAuthorized = atManager.checkAccessTokenSync(tokenID, permissionsList.phoneCalendar) + phoneCalendarAuthorized = grantStatus(phoneCalendarAuthorized) + } catch (e) { + + } + const result = { + albumAuthorized, + bluetoothAuthorized, + cameraAuthorized, + locationAuthorized, + locationAccuracy, + microphoneAuthorized, + notificationAuthorized, + phoneCalendarAuthorized + } + return result +} + +const request = (options: any) => { + const { success, fail, complete } = options + const task = new RequestTask(options) + // if success / fail / complete, return requestTask otherwise return Promise + if (options && !success && !fail && !complete) { + success(task) + return + } + if (!options) { + fail(['illegal params', -1]) + } + return task +} + +const osChannelApi = { + getSystemSetting, + hideKeyboard, + makePhoneCall, + getAppAuthorizeSetting, + request +} + +export default osChannelApi diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/payment/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/payment/index.ts new file mode 100644 index 000000000000..68f7c81c179a --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/payment/index.ts @@ -0,0 +1,15 @@ +export * from './requestPayment' + +/** + * 创建自定义版交易组件订单,并发起支付 + * + * @canNotUse requestOrderPayment + */ +export { requestOrderPayment } from '@tarojs/taro-h5' + +/** + * 支付各个安全场景验证人脸 + * + * @canNotUse faceVerifyForPay + */ +export { faceVerifyForPay } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/payment/requestPayment.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/payment/requestPayment.ts new file mode 100644 index 000000000000..2a0039fbd1f0 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/payment/requestPayment.ts @@ -0,0 +1,18 @@ +import Taro from '@tarojs/taro' + +/** + * 发送微信支付 + * + * @canUse requestPayment + * @null_implementation + */ +export const requestPayment: typeof Taro.requestPayment = function (option) { + const name = 'requestPayment' + return new Promise(() => { + try { + option?.fail?.({ errMsg: `${name}:fail` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/qq/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/qq/index.ts new file mode 100644 index 000000000000..e7bba0761655 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/qq/index.ts @@ -0,0 +1,6 @@ +/** + * 打开手Q说说发表界面 + * + * @canNotUse openQzonePublish + */ +export { openQzonePublish } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/request.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/request.ts new file mode 100644 index 000000000000..237acc287192 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/request.ts @@ -0,0 +1,219 @@ +const axios = require('axios').default + +const CancelToken = axios.CancelToken +const source = CancelToken.source() + +const errMsgMap = new Map([ + [401, 'Parameter error'], + [201, 'Permission denied'], + [3, 'URL using bad/illegal format or missing URL'], + [7, "Couldn't connect to server"], + [23, 'Failed writing received data to disk/application'], + [25, 'Upload failed'], + [26, 'Failed to open/read local data from file/application'], + [28, 'Timeout was reached'], + [73, 'Remote file already exists'], + [78, 'Remote file not found'], + [999, 'Unknown Other Error'] +]) + + + +export class RequestTask { + public responseHeader + public abortFlag + public fail + public complete + public headersCallback + public result + public res + public interceptor + public httpRequest + + constructor (object) { + const { url, headers, method, timeout, responseType, enableCache } = object || {} + let { data } = object || {} + const { success, fail, complete, dataType } = object || {} + + this.responseHeader = null + this.abortFlag = false + this.fail = fail + this.complete = complete + this.headersCallback = new Set() + // 使用axios.create来创建axios实例 + this.httpRequest = axios.create({ + responseType: responseType || 'text', + headers: headers, + timeout: timeout || 2000 + }) + + // 请求拦截器 + this.httpRequest.interceptors.request.use((config) => { + if (config.enableCache === false) { + return config + } + // 处理缓存 + const cacheData = localStorage.getItem(config.url) + if (cacheData !== null) { + let result = cacheData + if (dataType === 'json') { + result = JSON.parse(cacheData) + } + source.cancel('cache has useful data!!') + return Promise.resolve({ result }) + } + return config + }, error => { + console.error('error: ', error) + }) + + // 响应拦截器 + this.httpRequest.interceptors.response.use((response) => { + // 缓存数据 + if (response.config.enableCache === false) { + localStorage.setItem(response.config.url, JSON.stringify(response.data)) + } + return response + }, error => { + console.error('error: ', error) + }) + + if (!object) { + console.error('request error: params illegal') + return + } + + let isFormUrlEncoded = false + for (const key in headers) { + if (key.toLowerCase() === 'content-type') { + if (headers[key].toLowerCase().includes('application/x-www-form-urlencoded')) { + isFormUrlEncoded = true + } + break + } + } + + // data为Object类型时,属性的值类型如果是number, request请求时信息会丢失. 故将data转成string类型进行规避 + if (data && (isFormUrlEncoded || ['GET', 'OPTIONS', 'DELETE', 'TRACE', 'CONNECT'].includes(method))) { + const dataArray = [] + for (const key in data) { + // @ts-ignore + dataArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])) + } + data = dataArray.join('&') + } + + // header的属性的值类型如果是number, request请求时信息会丢失. 故将各个属性转成string类型 + if (headers) { + for (const key in headers) { + headers[key] = `${headers[key]}` + } + } + + this.httpRequest({ + method: method, + url: url, + CancelToken: source.token, + enableCache: enableCache || false + }) + .then((response) => { + if (success && !this.abortFlag) { + this.responseHeader = response.headers + let result = response.result + if (response.config.responseType === 'text') { + if (dataType === 'text') { + result = response.data + } else if (dataType === 'json') { + result = JSON.parse(response.data) + } else if (dataType === 'base64') { + const encodeData = encodeURIComponent(response.data) + result = btoa(encodeData) + } else if (dataType === 'arraybuffer') { + result = new TextEncoder().encode(response.data).buffer + } else { + console.error('Unsupported dataType!!') + } + } else if (response.config.responseType === 'arraybuffer') { + result = response.data + } else { + console.error('Unsupported dataType!!: ', response.config.responseType) + } + const res = { + data: result, + statusCode: response.status, + header: response.headers, + cookies: response.cookies ? [response.cookies] : [], + errMsg: 'request:ok' + } + this.result = res + success(res) + } + }) + .catch((err) => { + console.error('request error: ' + JSON.stringify(err)) + if (fail && !this.abortFlag) { + // eslint-disable-next-line no-console + const res = { errMsg: errMsgMap.has(err.code) ? errMsgMap.get(err.code) : `${JSON.stringify(err)}` } + this.result = res + fail(res) + } + }) + .finally(() => { + if (complete && !this.abortFlag) { + complete(this.result) + } + if (this.httpRequest) { + source.cancel('requestTask cancelled by the user!') + } + }) + } + + /** + * interrupt request task + */ + abort () { + this.abortFlag = true + if (this.httpRequest) { + source.cancel('requestTask cancelled by the user!') + this.res = { errMsg: 'request:fail abort' } + this.fail && this.fail(this.res) + this.complete && this.complete(this.res) + } + } + + onHeadersReceived (callback) { + if (!callback) { + console.error('[AdvancedAPI] Invalid, callback is null') + return + } + const taskCallback = (header) => { + !this.abortFlag && callback({ header }) + } + if (!this.headersCallback.has(callback)) { + this.headersCallback.add(taskCallback) + if (this.httpRequest) { + this.interceptor = this.httpRequest.interceptors.response.use((response) => { + taskCallback(this.responseHeader) + return response + }) + } + taskCallback(this.responseHeader) + } + } + + /** + * unsubscribe HTTP Response Header event + * remove all if callback is null, otherwise remove the specialized callback + */ + offHeadersReceived (callback) { + if (this.headersCallback.has(callback)) { + if (this.httpRequest) { + this.httpRequest.interceptors.eject(this.interceptor) + } + this.headersCallback.delete(callback) + } else { + // eslint-disable-next-line no-console + console.debug('offHeadersReceived callback invalid') + } + } +} \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/route/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/route/index.ts index be8ca922293d..ac02367fd795 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/route/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/route/index.ts @@ -26,3 +26,9 @@ export { navigateBack, navigateTo, redirectTo, reLaunch, switchTab } from '@tarojs/router' // FIXME 方法导出类型未对齐,后续修复 + +/** + * 页面间事件通信通道 + * + * @canNotUse EventChannel + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/share/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/share/index.ts new file mode 100644 index 000000000000..8f9766b56346 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/share/index.ts @@ -0,0 +1,72 @@ +/** + * 更新转发属性 + * + * @canNotUse updateShareMenu +*/ +export { updateShareMenu } from '@tarojs/taro-h5' + +/** + * 显示当前页面的转发按钮 + * + * @canUse showShareMenu + * @null_implementation +*/ +export const showShareMenu = () => Promise.resolve({}) + +/** + * 打开分享图片弹窗,可以将图片发送给朋友、收藏或下载 + * + * @canNotUse showShareImageMenu +*/ +export { showShareImageMenu } from '@tarojs/taro-h5' + +/** + * 转发视频到聊天 + * + * @canNotUse shareVideoMessage +*/ +export { shareVideoMessage } from '@tarojs/taro-h5' + +/** + * 转发文件到聊天 + * + * @canNotUse shareFileMessage +*/ +export { shareFileMessage } from '@tarojs/taro-h5' + +/** + * 监听用户点击右上角菜单的「复制链接」按钮时触发的事件 + * + * @canNotUse onCopyUrl +*/ +export { onCopyUrl } from '@tarojs/taro-h5' + +/** + * 移除用户点击右上角菜单的「复制链接」按钮时触发的事件的监听函数 + * + * @canNotUse offCopyUrl +*/ +export { offCopyUrl } from '@tarojs/taro-h5' + +/** + * 隐藏当前页面的转发按钮 + * + * @canUse hideShareMenu + * @null_implementation +*/ +export const hideShareMenu = () => Promise.resolve({}) + +/** + * 获取转发详细信息 + * + * @canUse getShareInfo + * @null_implementation +*/ +export const getShareInfo = () => Promise.resolve({}) + +/** + * 验证私密消息 + * + * @canNotUse authPrivateMessage +*/ +export { authPrivateMessage } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/background-fetch.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/background-fetch.ts new file mode 100644 index 000000000000..5204825d6e3d --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/background-fetch.ts @@ -0,0 +1,15 @@ +/** + * 收到 backgroundFetch 数据时的回调 + * + * @canNotUse onBackgroundFetchData + */ +export { onBackgroundFetchData } from '@tarojs/taro-h5' + +/** + * 获取设置过的自定义登录态 + * + * @canNotUse getBackgroundFetchToken + */ +export * from './getBackgroundFetchData' +export * from './setBackgroundFetchToken' +export { getBackgroundFetchToken } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts new file mode 100644 index 000000000000..630d62c3bdc6 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts @@ -0,0 +1,18 @@ +import Taro from '@tarojs/taro' + +/** + * 拉取 backgroundFetch 客户端缓存数据 + * + * @canUse getBackgroundFetchData + * @null_implementation + */ +export const getBackgroundFetchData: typeof Taro.getBackgroundFetchData = function (option) { + const name = 'getBackgroundFetchData' + return new Promise(() => { + try { + option?.fail?.({ errMsg: `${name}:fail` }) + } finally { + option?.complete?.({ errMsg: `ok` }) + } + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/index.ts new file mode 100644 index 000000000000..2067d4035dff --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/index.ts @@ -0,0 +1,279 @@ +import Taro from '@tarojs/api' + +import { shouldBeObject, temporarilyNotSupport } from '../utils' +import { MethodHandler } from '../utils/handler' +import native from '../NativeApi' +import { displayExecRes, handleData } from './util' + +/** + * 创建缓存管理器 + * + * @canNotUse createCacheManager + */ +export * from './background-fetch' + + +// 周期性更新 +export const createCacheManager = /* @__PURE__ */ temporarilyNotSupport('createCacheManager') + + +/** + * Taro.setStorage 的同步版本 + * + * @canUse setStorageSync + * @__object [key, data] +*/ +export const setStorageSync: typeof Taro.setStorageSync = (key, data = '') => { + const status = native.setStorageSync({ key, data: JSON.stringify(handleData(data)) }) + displayExecRes(status, setStorageSync.name) +} + +/** + * 将数据存储在本地缓存中指定的 key 中 + * + * @canUse setStorage + * @__object [data, key] + */ +// @ts-ignore +export const setStorage: typeof Taro.setStorage = (options) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `setStorage:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { key, data, success, fail, complete } = options + const handle = new MethodHandler({ name: 'setStorage', success, fail, complete }) + + return new Promise((resolve, reject) => { + native.setStorage({ + key: key, + data: JSON.stringify(handleData(data)), + success: (res: any) => { + handle.success({ errMsg: res.errMsg }, { resolve,reject }) + }, + fail: (err: any) => { + handle.fail({ errMsg: err.errMsg }, { resolve,reject }) + } + }) + }) +} + +/** + * 根据 URL 销毁存在内存中的数据 + * + * @canNotUse revokeBufferURL + */ +export const revokeBufferURL = /* @__PURE__ */ temporarilyNotSupport('revokeBufferURL') + +/** + * Taro.removeStorage 的同步版本 + * + * @canUse removeStorageSync +*/ +export const removeStorageSync: typeof Taro.removeStorageSync = (key: string) => { + const status = native.removeStorageSync({ key }) + displayExecRes(status, removeStorageSync.name) +} + +/** + * 从本地缓存中移除指定 key + * + * @canUse removeStorage + * @__object [key] +*/ +export const removeStorage: typeof Taro.removeStorage = (options: Taro.removeStorage.Option) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `removeStorage:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + const { key, success, fail, complete } = options + const handle = new MethodHandler({ name: 'removeStorage', success, fail, complete }) + + return new Promise((resolve, reject) => { + native.removeStorage({ + key: key, + success: (res: any) => { + handle.success({ errMsg: res.errMsg },{ resolve, reject }) + }, + fail: (err: any) => { + handle.fail({ errMsg: err.errMsg },{ resolve,reject }) + } + }) + }) +} + +/** + * Taro.getStorage 的同步版本 + * + * @canUse getStorageSync +*/ +// @ts-ignore +export const getStorageSync: typeof Taro.getStorageSync = (key) => { + const status = native.getStorageSync({ key }) + + if (status.done) { + let item: any + try { + item = JSON.parse(status.data) + } catch (e) { + item = status.data + } + return item.data + } + return '' +} + +/** + * 从本地缓存中异步获取指定 key 的内容 + * + * @canUse getStorage + * @__object [key] + * @__success [data] +*/ +export const getStorage: typeof Taro.getStorage = (options) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `getStorage:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { key, success, fail, complete } = options + const handle = new MethodHandler>({ + name: 'getStorage', + success, + fail, + complete + }) + + return new Promise((resolve, reject) => { + native.getStorage({ + key: key, + success: (res: any) => { + let item: any + try { + item = JSON.parse(res.data) + } catch (e) { + item = res.data + } + const result: Taro.getStorage.SuccessCallbackResult = { + data: item.data, + errMsg: res.errMsg, + } + handle.success(result, { resolve, reject }) + }, + fail: (err: any) => { + handle.fail({ errMsg: err.errMsg }, { resolve,reject }) + } + }) + }) + +} + +/** + * Taro.getStorageInfo 的同步版本 + * + * @canUse getStorageInfoSync + * @__return [currentSize, keys, limitSize] +*/ +export const getStorageInfoSync: typeof Taro.getStorageInfoSync = () => { + const res: Taro.getStorageInfoSync.Option = { + keys: [], + limitSize: NaN, + currentSize: NaN + } + const status = native.getStorageInfoSync({ key: '' }) + + if (status.done) { + res.keys = JSON.parse(status.data) + return res + } + return res +} + +/** + * 异步获取当前storage的相关信息 + * + * @canUse getStorageInfo + * @__success [currentSize, keys, limitSize] +*/ +export const getStorageInfo: typeof Taro.getStorageInfo = ({ success, fail, complete } = {}) => { + const handle = new MethodHandler({ + name: 'getStorageInfo', + success, + fail, + complete + }) + + return new Promise((resolve, reject) => { + native.getStorageInfo({ + success: (res: any) => { + const result: Taro.getStorageInfoSync.Option = { + keys: JSON.parse(res.data), + limitSize: NaN, + currentSize: NaN, + } + handle.success(result,{ resolve,reject }) + }, + fail: (err: any) => { + handle.fail({ errMsg: err.errMsg }, { resolve, reject }) + } + }) + }) +} + + +/** + * 根据传入的 buffer 创建一个唯一的 URL 存在内存中 + * + * @canNotUse createBufferURL + */ +export const createBufferURL = /* @__PURE__ */ temporarilyNotSupport('createBufferURL') + +/** + * Taro.clearStorage 的同步版本 + * + * @canUse clearStorageSync +*/ +export const clearStorageSync: typeof Taro.clearStorageSync = () => { + const status = native.clearStorageSync({ key: '' }) + displayExecRes(status, clearStorageSync.name) +} + +/** + * 清除storage信息 + * + * @canUse clearStorage +*/ +export const clearStorage: typeof Taro.clearStorage = ({ success, fail, complete } = {}) => { + const handle = new MethodHandler({ name: 'clearStorage', success, fail, complete }) + + return new Promise((resolve, reject) => { + native.clearStorage({ + success: () => { + handle.success({ errMsg: 'ok' },{ reject,resolve }) + }, + fail: (err:any) => { + handle.fail({ errMsg: err.errMsg },{ reject,resolve }) + } + }) + }) +} + +// @ts-ignore +export const batchSetStorageSync = /* @__PURE__ */ temporarilyNotSupport('batchSetStorageSync') +// @ts-ignore +export const batchSetStorage = /* @__PURE__ */ temporarilyNotSupport('batchSetStorage') +// @ts-ignore +export const batchGetStorageSync = /* @__PURE__ */ temporarilyNotSupport('batchGetStorageSync') +// @ts-ignore +export const batchGetStorage = /* @__PURE__ */ temporarilyNotSupport('batchGetStorage') + +// @ts-ignore +export * from './background-fetch' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts new file mode 100644 index 000000000000..48848040aeae --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts @@ -0,0 +1,50 @@ +import Taro from '@tarojs/taro' +import { getParameterError, shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' + +import native from '../NativeApi' + +/** + * 拉取 backgroundFetch 客户端缓存数据 + * + * @canUse setBackgroundFetchToken + * @null_implementation + */ +export const setBackgroundFetchToken: typeof Taro.setBackgroundFetchToken = function (options) { + const name = 'setBackgroundFetchToken' + + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `${name}:fail ${isObject.msg}` } + console.error(res.errMsg) + return + } + + const { token, success, fail, complete } = options as Exclude + const handle = new MethodHandler({ name, success, fail, complete }) + + // token must be String + if (typeof token !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'token', + correct: 'string', + wrong: token, + }), + }) + } + + return new Promise((resolve, reject) => { + native.setStorage({ + key: 'setStorageSync', + data: 'token', + success: (res: any) => { + handle.success({ errMsg: res.errMsg }, { resolve,reject }) + }, + fail: (err: any) => { + handle.fail({ errMsg: err.errMsg }, { resolve,reject }) + } + }) + }) +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts new file mode 100644 index 000000000000..1b82a78f0354 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts @@ -0,0 +1,21 @@ +import { Status } from '../NativeApi' + + +export function displayExecRes (status: Status, method: string) { + if (!status.done) { + console.error({ errMsg: `${method} execution fail: ` + status.errorMsg }) + } else { /* empty */ + } +} + +export function handleData (data) { + const type = typeof dataåå + let obj = {} + + if (type === 'symbol') { + obj = { data: '' } + } else { + obj = { data } + } + return obj +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/swan/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/swan/index.ts new file mode 100644 index 000000000000..40650524d804 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/swan/index.ts @@ -0,0 +1,33 @@ +/** + * 百度智能小程序可接入百度搜索和百度 App,setPageInfo 负责为小程序设置各类页面基础信息,包括标题、关键字、页面描述以及图片信息、视频信息等。 + * + * @canNotUse setPageInfo + */ +export { setPageInfo } from '@tarojs/taro-h5' + +// 百度小程序 AI 相关 +export { ocrIdCard } from '@tarojs/taro-h5' +export { ocrBankCard } from '@tarojs/taro-h5' +export { ocrDrivingLicense } from '@tarojs/taro-h5' +export { ocrVehicleLicense } from '@tarojs/taro-h5' +export { textReview } from '@tarojs/taro-h5' +export { textToAudio } from '@tarojs/taro-h5' +export { imageAudit } from '@tarojs/taro-h5' +export { advancedGeneralIdentify } from '@tarojs/taro-h5' +export { objectDetectIdentify } from '@tarojs/taro-h5' +export { dishClassify } from '@tarojs/taro-h5' +export { logoClassify } from '@tarojs/taro-h5' +export { animalClassify } from '@tarojs/taro-h5' +export { plantClassify } from '@tarojs/taro-h5' + +// 用户信息 +export { getSwanId } from '@tarojs/taro-h5' + +// 百度收银台支付 +export { requestPolymerPayment } from '@tarojs/taro-h5' + +// 打开小程序 +export { navigateToSmartGameProgram } from '@tarojs/taro-h5' +export { navigateToSmartProgram } from '@tarojs/taro-h5' +export { navigateBackSmartProgram } from '@tarojs/taro-h5' +export { preloadSubPackage } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/animation/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/animation/index.ts new file mode 100644 index 000000000000..5e9024756318 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/animation/index.ts @@ -0,0 +1,17 @@ +/** + * 动画对象 + * + * @canUse Animation + * @__class + * [export, step, matrix, matrix3d, rotate, rotate3d, rotateX, rotateY, rotateZ, scale,\ + * scale3d, scaleX, scaleY, scaleZ, skew, skewX, skewY, translate, translate3d, translateX,\ + * translateY, translateZ, opacity, backgroundColor, width, height, left, right, top, bottom] + */ + +/** + * 创建一个动画实例 animation + * + * @canUse createAnimation + * @__object [duration, timingFunction[linear, ease, ease-in, ease-in-out, ease-out, step-start, step-end], delay, transformOrigin, unit] + */ +export { createAnimation } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/background.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/background.ts new file mode 100644 index 000000000000..1b34bf55706f --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/background.ts @@ -0,0 +1,13 @@ +/** + * 动态设置下拉背景字体、loading 图的样式 + * + * @canNotUse setBackgroundTextStyle + */ +export { setBackgroundTextStyle } from '@tarojs/taro-h5' + +/** + * 动态设置窗口的背景色 + * + * @canNotUse setBackgroundColor + */ +export { setBackgroundColor } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/fonts.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/fonts.ts new file mode 100644 index 000000000000..671a1a1e18ca --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/fonts.ts @@ -0,0 +1,8 @@ +/** + * 动态加载网络字体 + * + * @canUse loadFontFace + * @__object [global, family, source, desc[style, variant, weight]] + * @__success [status] +*/ +export { loadFontFace } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/index.ts index 302b4ef393b7..cca602fc41c2 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/index.ts @@ -1,3 +1,12 @@ +export * from './animation' +export * from './background' export * from './custom-component' +export * from './fonts' +export * from './interaction' export * from './menu' -export * from './navigation-bar' \ No newline at end of file +export * from './navigation-bar' +export * from './pull-down-refresh' +export * from './scroll' +export * from './sticky' +export * from './tab-bar' +export * from './window' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/interaction/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/interaction/index.ts new file mode 100644 index 000000000000..5a69e56d5155 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/interaction/index.ts @@ -0,0 +1,72 @@ +// 交互 +/** + * 显示消息提示框 + * + * @canUse showToast + * @__object [title, duration, icon[success, error, loading, none], image, mask] + */ +export { showToast } from '@tarojs/taro-h5' + +/** + * 隐藏消息提示框 + * + * @canUse hideToast + * @__object [noConflict] + */ +export { hideToast } from '@tarojs/taro-h5' + +/** + * 显示 loading 提示框 + * + * @canUse showLoading + * @__object [title, mask] + */ +export { showLoading } from '@tarojs/taro-h5' + +/** + * 隐藏 loading 提示框 + * + * @canUse hideLoading + * @__object [noConflict] + */ +export { hideLoading } from '@tarojs/taro-h5' + +/** + * 显示模态对话框 + * + * @canUse showModal + * @__object [cancelColor, cancelText, confirmColor, confirmText, content, showCancel, title] + * @__success [cancel, confirm] +*/ +export { showModal } from '@tarojs/taro-h5' + + +/** + * 显示操作菜单 + * + * @canUse showActionSheet + * @__object [alertText, itemList, itemColor] + * @__success [tapIndex] + */ +export { showActionSheet } from '@tarojs/taro-h5' + +/** + * 开启小程序页面返回询问对话框 + * + * @canUse enableAlertBeforeUnload + * @null_implementation + */ +const enableAlertBeforeUnload = () => { } + +/** + * 关闭小程序页面返回询问对话框 + * + * @canUse disableAlertBeforeUnload + * @null_implementation + */ +const disableAlertBeforeUnload = () => { } + +export { + disableAlertBeforeUnload, + enableAlertBeforeUnload, +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/navigation-bar/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/navigation-bar/index.ts index d3173decc58e..49abeefb0504 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/navigation-bar/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/navigation-bar/index.ts @@ -1,8 +1,99 @@ import Taro from '@tarojs/api' +import { addStyle } from '@tarojs/router/dist/style' +import { setTitle } from '@tarojs/router/dist/utils/navigate' -import native from '../../NativeApi' import { getParameterError, shouldBeObject } from '../../utils' import { MethodHandler } from '../../utils/handler' +import native from '../../NativeApi' + +/** + * 导航条与Web层叠布局,导航条可见情况下Web页面顶部空出一定高度的留白 + */ +function loadNavigationSytle () { + if (typeof window === 'undefined') { + return + } + // @ts-ignore + const naviHeight = window.navigationHeight ? window.navigationHeight : 0 + const css = ` +.taro_router .taro_page.taro_navigation_page { + padding-top: ${naviHeight}px; +} + +.taro-tabbar__container .taro_page.taro_navigation_page { + max-height: calc(100vh - ${naviHeight}px); +} + +.taro-tabbar__container .taro_page.taro_tabbar_page.taro_navigation_page { + max-height: calc(100vh - 50px - ${naviHeight}px); +}` + addStyle(css) +} + +loadNavigationSytle() + +/** + * 显示页面导航条加载图标 + * + * @canUse showNavigationBarLoading + */ +export const showNavigationBarLoading: typeof Taro.showNavigationBarLoading = (options?) => { + const { success, fail, complete } = (options || {}) as Exclude + const handle = new MethodHandler({ name: 'showNavigationBarLoading', success, fail, complete }) + + // @ts-ignore + native.showNavigationBarLoading() + return handle.success() +} + +/** + * 隐藏页面导航条加载图标 + * + * @canUse hideNavigationBarLoading + */ +export const hideNavigationBarLoading: typeof Taro.hideNavigationBarLoading = (options?) => { + const { success, fail, complete } = (options || {}) as Exclude + const handle = new MethodHandler({ name: 'hideNavigationBarLoading', success, fail, complete }) + + // @ts-ignore + native.hideNavigationBarLoading() + return handle.success() +} + +/** + * 设置页面导航条标题 + * + * @canUse setNavigationBarTitle + * @__object [title] + */ +export const setNavigationBarTitle: typeof Taro.hideNavigationBarLoading = ( + options?: Taro.setNavigationBarTitle.Option +) => { + // options must be an Object + const isObject = shouldBeObject(options) + if (!isObject.flag) { + const res = { errMsg: `setNavigationBarTitle:fail ${isObject.msg}` } + console.error(res.errMsg) + return Promise.reject(res) + } + + const { title, success, fail, complete } = options as Exclude + const handle = new MethodHandler({ name: 'setNavigationBarTitle', success, fail, complete }) + + if (!title || typeof title !== 'string') { + return handle.fail({ + errMsg: getParameterError({ + para: 'title', + correct: 'String', + wrong: title, + }), + }) + } + + setTitle(title) + + return handle.success() +} /** * 设置页面导航条颜色 * @@ -52,3 +143,11 @@ export const setNavigationBarColor: typeof Taro.setNavigationBarColor = (options native.setNavigationBarColor({ frontColor, backgroundColor, ...otherOptions }) return handle.success() } + +/** + * 隐藏返回首页按钮 + * + * @canUse hideHomeButton + * @null_implementation + */ +export const hideHomeButton = () => Promise.resolve() diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/pull-down-refresh.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/pull-down-refresh.ts new file mode 100644 index 000000000000..c6ca81522fd3 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/pull-down-refresh.ts @@ -0,0 +1,13 @@ +/** + * 开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。 + * + * @canUse startPullDownRefresh + */ +export { startPullDownRefresh } from '@tarojs/taro-h5' + +/** + * 停止当前页面下拉刷新。 + * + * @canUse stopPullDownRefresh + */ +export { stopPullDownRefresh } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/scroll/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/scroll/index.ts new file mode 100644 index 000000000000..8155f87d08ec --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/scroll/index.ts @@ -0,0 +1,14 @@ +/** + * 将页面滚动到目标位置 + * + * @canUse pageScrollTo + * @__object [duration, scrollTop, selector, offsetTop] + */ +export { pageScrollTo } from '@tarojs/taro-h5' + +/** + * 增强 ScrollView 实例 + * + * @canUse ScrollViewContext + * @__class [scrollTo, scrollIntoView] + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/sticky.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/sticky.ts new file mode 100644 index 000000000000..2bfe8db92f11 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/sticky.ts @@ -0,0 +1,7 @@ +/** + * 动态设置置顶栏文字内容 + * + * @canUse setTopBarText + * @null_implementation + */ +export const setTopBarText = () => Promise.resolve() diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/tab-bar.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/tab-bar.ts new file mode 100644 index 000000000000..43515678dc23 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/tab-bar.ts @@ -0,0 +1,65 @@ +export { initTabBarApis } from '@tarojs/taro-h5' + +/** + * 显示 tabBar 某一项的右上角的红点 + * + * @canUse showTabBarRedDot + * @__object [index] + */ +export { showTabBarRedDot } from '@tarojs/taro-h5' + +/** + * 显示 tabBar + * + * @canUse showTabBar + * @__object [animation] + */ +export { showTabBar } from '@tarojs/taro-h5' + +/** + * 动态设置 tabBar 的整体样式 + * + * @canUse setTabBarStyle + * @__object [backgroundColor, borderStyle, color, selectedColor] + */ +export { setTabBarStyle } from '@tarojs/taro-h5' + +/** + * 动态设置 tabBar 某一项的内容 + * + * @canUse setTabBarItem + * @__object [index, iconPath, selectedIconPath, text] + */ +export { setTabBarItem } from '@tarojs/taro-h5' + +/** + * 为 tabBar 某一项的右上角添加文本 + * + * @canUse setTabBarBadge + * @__object [index, text] + */ +export { setTabBarBadge } from '@tarojs/taro-h5' + +/** + * 移除 tabBar 某一项右上角的文本 + * + * @canUse removeTabBarBadge + * @__object [index] + */ +export { removeTabBarBadge } from '@tarojs/taro-h5' + +/** + * 隐藏 tabBar 某一项的右上角的红点 + * + * @canUse hideTabBarRedDot + * @__object [index] + */ +export { hideTabBarRedDot } from '@tarojs/taro-h5' + +/** + * 隐藏 tabBar + * + * @canUse hideTabBar + * @__object [animation] + */ +export { hideTabBar } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ui/window.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/window.ts new file mode 100644 index 000000000000..6ae590af633d --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ui/window.ts @@ -0,0 +1,27 @@ +/** + * 设置窗口大小,该接口仅适用于 PC 平台,使用细则请参见指南 + * + * @canNotUse setWindowSize + */ +export { setWindowSize } from '@tarojs/taro-h5' + +/** + * 监听窗口尺寸变化事件 + * + * @canUse onWindowResize + */ +export { onWindowResize } from '@tarojs/taro-h5' + +/** + * 取消监听窗口尺寸变化事件 + * + * @canUse offWindowResize + */ +export { offWindowResize } from '@tarojs/taro-h5' + +/** + * 返回当前是否存在小窗播放 + * + * @canNotUse checkIsPictureInPictureActive + */ +export { checkIsPictureInPictureActive } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/worker/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/worker/index.ts new file mode 100644 index 000000000000..14558a37a7e7 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/worker/index.ts @@ -0,0 +1,12 @@ +/** + * 创建一个 Worker 线程 + * + * @canNotUse createWorker + */ +export { createWorker } from '@tarojs/taro-h5' + +/** + * Worker类 + * + * @canNotUse Worker + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/wxml/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/wxml/index.ts index 22c3bb651cad..062415b9cfd6 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/wxml/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/wxml/index.ts @@ -12,6 +12,34 @@ export const createSelectorQuery: typeof Taro.createSelectorQuery = () => { return new SelectorQuery() } +/** + * 创建并返回一个 IntersectionObserver 对象实例 + * + * @canUse createIntersectionObserver + */ +export { createIntersectionObserver } from '@tarojs/taro-h5' + +/** + * IntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见 + * + * @canUse IntersectionObserver + * @__class [disconnect, observe, relativeTo, relativeToViewport] + */ + +/** + * 创建并返回一个 MediaQueryObserver 对象实例 + * + * @canUse createMediaQueryObserver + */ +export { createMediaQueryObserver } from '@tarojs/taro-h5' + +/** + * MediaQueryObserver 对象,用于监听页面 media query 状态的变化,如界面的长宽是不是在某个指定的范围内 + * + * @canUse MediaQueryObserver + * @__class [observe, disconnect] + */ + /** * Snapshot 实例,可通过 SelectorQuery 获取。 * diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/wxml/nodesRef.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/wxml/nodesRef.ts new file mode 100644 index 000000000000..de2dd447cb4b --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/wxml/nodesRef.ts @@ -0,0 +1,7 @@ +/** + * 用于获取 WXML 节点信息 + * + * @canUse NodesRef + * @__class [context, node, boundingClientRect, scrollOffset, fields] + */ +export { NodesRef } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/index.ts b/packages/taro-platform-harmony-hybrid/src/api/index.ts index 3905992b2214..b0b7271cb01b 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/index.ts @@ -18,7 +18,7 @@ function logFun (funObj, message) { return new Proxy(funObj, { apply (target, thisArg, args) { // eslint-disable-next-line no-console - console.log(`${message}, 参数为 ${safeStringify(args)}`) + console.debug('%s, 参数为: %s', message, safeStringify(args)) return target.apply(thisArg, args) } }) @@ -31,7 +31,7 @@ function logObj (obj) { const value = target[property] // @ts-ignore // eslint-disable-next-line no-console - console.log(`调用 native ${property} property,结果为:${safeStringify(value)} `) + console.debug('调用 native %o property,结果为:%s ', property, safeStringify(value)) return value } @@ -53,9 +53,8 @@ function logObj (obj) { } const result = target[property].apply(this, args) - log = `${log}, 返回值为${safeStringify(result)}` // eslint-disable-next-line no-console - console.log(`${log}`) + console.debug('%s, 返回值为: %s', log, safeStringify(result)) return result } } From d95833072b0499e5105dea742687c9c6d36f0191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E9=98=B3?= Date: Tue, 2 Apr 2024 14:33:40 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E5=90=8C=E6=AD=A5harmony=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E5=BC=80=E5=8F=91=E5=88=86=E6=94=AF=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=9A=E4=BE=8B=E5=AD=90=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/mini-program-example/.editorconfig | 12 + examples/mini-program-example/.eslintrc | 13 + examples/mini-program-example/.gitignore | 7 + examples/mini-program-example/.prettierrc | 14 + examples/mini-program-example/babel.config.js | 10 + examples/mini-program-example/config/dev.js | 9 + examples/mini-program-example/config/index.js | 96 ++ examples/mini-program-example/config/prod.js | 37 + examples/mini-program-example/package.json | 91 ++ .../mini-program-example/project.config.json | 32 + .../project.private.config.json | 7 + examples/mini-program-example/project.tt.json | 9 + .../mini-program-example/src/app.config.ts | 185 ++++ examples/mini-program-example/src/app.scss | 37 + examples/mini-program-example/src/app.ts | 55 ++ .../src/assets/api/AI.png | Bin 0 -> 2333 bytes .../src/assets/api/advertising.png | Bin 0 -> 1702 bytes .../src/assets/api/alipay.png | Bin 0 -> 2302 bytes .../src/assets/api/analysis.png | Bin 0 -> 1596 bytes .../src/assets/api/cache.png | Bin 0 -> 2733 bytes .../src/assets/api/canvas.png | Bin 0 -> 1035 bytes .../src/assets/api/cloud.png | Bin 0 -> 1922 bytes .../src/assets/api/devices.png | Bin 0 -> 807 bytes .../src/assets/api/file.png | Bin 0 -> 745 bytes .../src/assets/api/forward.png | Bin 0 -> 932 bytes .../src/assets/api/frame.png | Bin 0 -> 412 bytes .../src/assets/api/interface.png | Bin 0 -> 2549 bytes .../src/assets/api/iphone.png | Bin 0 -> 812 bytes .../src/assets/api/local.png | Bin 0 -> 4015 bytes .../src/assets/api/logo.png | Bin 0 -> 6118 bytes .../src/assets/api/media.png | Bin 0 -> 1577 bytes .../src/assets/api/network.png | Bin 0 -> 3559 bytes .../src/assets/api/openapi.png | Bin 0 -> 2411 bytes .../src/assets/api/payment.png | Bin 0 -> 913 bytes .../src/assets/api/qq.png | Bin 0 -> 2568 bytes .../src/assets/api/redirection.png | Bin 0 -> 2276 bytes .../src/assets/api/routing.png | Bin 0 -> 1613 bytes .../src/assets/api/swan.png | Bin 0 -> 1823 bytes .../src/assets/api/taro.png | Bin 0 -> 373 bytes .../src/assets/api/thirdparty.png | Bin 0 -> 948 bytes .../src/assets/api/worker.png | Bin 0 -> 1215 bytes .../src/assets/api/wxml.png | Bin 0 -> 2881 bytes .../src/assets/component/canvas.png | Bin 0 -> 1480 bytes .../src/assets/component/content.png | Bin 0 -> 423 bytes .../src/assets/component/form.png | Bin 0 -> 226 bytes .../src/assets/component/logo.png | Bin 0 -> 1065 bytes .../src/assets/component/map.png | Bin 0 -> 2408 bytes .../src/assets/component/media.png | Bin 0 -> 1145 bytes .../src/assets/component/nav.png | Bin 0 -> 1233 bytes .../src/assets/component/nav_red.png | Bin 0 -> 1659 bytes .../src/assets/component/view.png | Bin 0 -> 653 bytes .../src/assets/component/view_red.png | Bin 0 -> 1279 bytes .../src/assets/tab/api.png | Bin 0 -> 4454 bytes .../src/assets/tab/api_select.png | Bin 0 -> 4305 bytes .../src/assets/tab/component.png | Bin 0 -> 10129 bytes .../src/assets/tab/component_select.png | Bin 0 -> 9569 bytes .../src/assets/tab/home.png | Bin 0 -> 5246 bytes .../src/assets/tab/home_select.png | Bin 0 -> 5114 bytes .../src/components/buttonList/index.scss | 127 +++ .../src/components/buttonList/index.tsx | 178 ++++ .../components/callbackContents/index.scss | 3 + .../src/components/callbackContents/index.tsx | 49 + .../component_state/component_state.js | 19 + .../component_state/component_state.scss | 11 + .../src/components/head/head.js | 18 + examples/mini-program-example/src/index.html | 17 + .../src/pages/api/advertising/index.config.ts | 3 + .../src/pages/api/advertising/index.scss | 6 + .../src/pages/api/advertising/index.tsx | 70 ++ .../api/ai/faceRecognition/index.config.ts | 3 + .../pages/api/ai/faceRecognition/index.scss | 6 + .../pages/api/ai/faceRecognition/index.tsx | 49 + .../pages/api/ai/inference/index.config.ts | 3 + .../src/pages/api/ai/inference/index.scss | 6 + .../src/pages/api/ai/inference/index.tsx | 37 + .../api/ai/visionAlgorithms/index.config.ts | 3 + .../pages/api/ai/visionAlgorithms/index.scss | 6 + .../pages/api/ai/visionAlgorithms/index.tsx | 49 + .../src/pages/api/alipay/index.config.ts | 3 + .../src/pages/api/alipay/index.scss | 6 + .../src/pages/api/alipay/index.tsx | 29 + .../src/pages/api/analysis/index.config.ts | 3 + .../src/pages/api/analysis/index.scss | 6 + .../src/pages/api/analysis/index.tsx | 55 ++ .../pages/api/basics/basics/index.config.ts | 3 + .../src/pages/api/basics/basics/index.scss | 6 + .../src/pages/api/basics/basics/index.tsx | 147 +++ .../api/basics/encryption/index.config.ts | 3 + .../pages/api/basics/encryption/index.scss | 6 + .../src/pages/api/basics/encryption/index.tsx | 37 + .../applicationLevelEvents/index.tsx | 216 +++++ .../api/basics/miniProgram/index.config.ts | 3 + .../pages/api/basics/miniProgram/index.scss | 6 + .../pages/api/basics/miniProgram/index.tsx | 51 + .../basics/miniProgram/lifeCycle/index.tsx | 41 + .../api/basics/performance/index.config.ts | 3 + .../pages/api/basics/performance/index.scss | 6 + .../pages/api/basics/performance/index.tsx | 54 ++ .../pages/api/basics/system/index.config.ts | 3 + .../src/pages/api/basics/system/index.scss | 6 + .../src/pages/api/basics/system/index.tsx | 141 +++ .../pages/api/basics/update/index.config.ts | 3 + .../src/pages/api/basics/update/index.scss | 6 + .../src/pages/api/basics/update/index.tsx | 72 ++ .../src/pages/api/cache/index.config.ts | 3 + .../src/pages/api/cache/index.scss | 6 + .../src/pages/api/cache/index.tsx | 246 +++++ .../src/pages/api/canvas/index.config.ts | 3 + .../src/pages/api/canvas/index.scss | 28 + .../src/pages/api/canvas/index.tsx | 907 ++++++++++++++++++ .../pages/api/cloudServices/index.config.ts | 3 + .../src/pages/api/cloudServices/index.scss | 6 + .../src/pages/api/cloudServices/index.tsx | 41 + .../api/device/accelerometer/index.config.ts | 3 + .../pages/api/device/accelerometer/index.scss | 6 + .../pages/api/device/accelerometer/index.tsx | 114 +++ .../api/device/accessibility/index.config.ts | 3 + .../pages/api/device/accessibility/index.scss | 6 + .../pages/api/device/accessibility/index.tsx | 29 + .../pages/api/device/bettery/index.config.ts | 3 + .../src/pages/api/device/bettery/index.scss | 6 + .../src/pages/api/device/bettery/index.tsx | 59 ++ .../device/bluetoothBeacon/index.config.ts | 3 + .../api/device/bluetoothBeacon/index.scss | 6 + .../api/device/bluetoothBeacon/index.tsx | 57 ++ .../device/bluetoothGeneral/index.config.ts | 3 + .../api/device/bluetoothGeneral/index.scss | 29 + .../api/device/bluetoothGeneral/index.tsx | 466 +++++++++ .../device/bluetoothLowCenter/index.config.ts | 3 + .../api/device/bluetoothLowCenter/index.scss | 6 + .../api/device/bluetoothLowCenter/index.tsx | 291 ++++++ .../bluetoothLowPerpherals/index.config.ts | 3 + .../device/bluetoothLowPerpherals/index.scss | 6 + .../device/bluetoothLowPerpherals/index.tsx | 41 + .../pages/api/device/calendar/index.config.ts | 3 + .../src/pages/api/device/calendar/index.scss | 6 + .../src/pages/api/device/calendar/index.tsx | 82 ++ .../api/device/clipBoard/index.config.ts | 3 + .../src/pages/api/device/clipBoard/index.scss | 6 + .../src/pages/api/device/clipBoard/index.tsx | 83 ++ .../pages/api/device/compass/index.config.ts | 3 + .../src/pages/api/device/compass/index.scss | 6 + .../src/pages/api/device/compass/index.tsx | 105 ++ .../pages/api/device/contact/index.config.ts | 3 + .../src/pages/api/device/contact/index.scss | 6 + .../src/pages/api/device/contact/index.tsx | 61 ++ .../device/deviceOrientation/index.config.ts | 3 + .../api/device/deviceOrientation/index.scss | 6 + .../api/device/deviceOrientation/index.tsx | 41 + .../api/device/gyroscope/index.config.ts | 3 + .../src/pages/api/device/gyroscope/index.scss | 6 + .../src/pages/api/device/gyroscope/index.tsx | 81 ++ .../pages/api/device/keyboard/index.config.ts | 3 + .../src/pages/api/device/keyboard/index.scss | 6 + .../src/pages/api/device/keyboard/index.tsx | 93 ++ .../pages/api/device/memory/index.config.ts | 3 + .../src/pages/api/device/memory/index.scss | 6 + .../src/pages/api/device/memory/index.tsx | 43 + .../pages/api/device/network/index.config.ts | 3 + .../src/pages/api/device/network/index.scss | 6 + .../src/pages/api/device/network/index.tsx | 124 +++ .../src/pages/api/device/nfc/index.config.ts | 3 + .../src/pages/api/device/nfc/index.scss | 6 + .../src/pages/api/device/nfc/index.tsx | 89 ++ .../api/device/phoneCall/index.config.ts | 3 + .../src/pages/api/device/phoneCall/index.scss | 6 + .../src/pages/api/device/phoneCall/index.tsx | 50 + .../src/pages/api/device/scan/index.config.ts | 3 + .../src/pages/api/device/scan/index.scss | 6 + .../src/pages/api/device/scan/index.tsx | 74 ++ .../pages/api/device/screen/index.config.ts | 3 + .../src/pages/api/device/screen/index.scss | 12 + .../src/pages/api/device/screen/index.tsx | 123 +++ .../src/pages/api/device/sms/index.config.ts | 3 + .../src/pages/api/device/sms/index.scss | 6 + .../src/pages/api/device/sms/index.tsx | 29 + .../api/device/vibration/index.config.ts | 3 + .../src/pages/api/device/vibration/index.scss | 6 + .../src/pages/api/device/vibration/index.tsx | 65 ++ .../src/pages/api/device/wifi/index.config.ts | 3 + .../src/pages/api/device/wifi/index.scss | 87 ++ .../src/pages/api/device/wifi/index.tsx | 211 ++++ .../src/pages/api/file/index.config.ts | 3 + .../src/pages/api/file/index.scss | 6 + .../src/pages/api/file/index.tsx | 529 ++++++++++ .../src/pages/api/forward/index.config.ts | 3 + .../src/pages/api/forward/index.scss | 6 + .../src/pages/api/forward/index.tsx | 123 +++ .../src/pages/api/framework/index.config.ts | 7 + .../src/pages/api/framework/index.scss | 10 + .../src/pages/api/framework/index.tsx | 181 ++++ .../src/pages/api/index/index.config.js | 3 + .../src/pages/api/index/index.scss | 8 + .../src/pages/api/index/index.tsx | 528 ++++++++++ .../src/pages/api/index/module.js | 88 ++ .../api/interface/animation/index.config.ts | 3 + .../pages/api/interface/animation/index.scss | 6 + .../pages/api/interface/animation/index.tsx | 301 ++++++ .../api/interface/background/index.config.ts | 3 + .../pages/api/interface/background/index.scss | 6 + .../pages/api/interface/background/index.tsx | 33 + .../customizedComponents/index.config.ts | 3 + .../interface/customizedComponents/index.scss | 6 + .../interface/customizedComponents/index.tsx | 40 + .../pages/api/interface/font/index.config.ts | 3 + .../src/pages/api/interface/font/index.scss | 6 + .../src/pages/api/interface/font/index.tsx | 123 +++ .../api/interface/interaction/index.config.ts | 3 + .../api/interface/interaction/index.scss | 6 + .../pages/api/interface/interaction/index.tsx | 212 ++++ .../pages/api/interface/menu/index.config.ts | 4 + .../src/pages/api/interface/menu/index.scss | 15 + .../src/pages/api/interface/menu/index.tsx | 64 ++ .../interface/navigationBar/index.config.ts | 5 + .../api/interface/navigationBar/index.scss | 6 + .../api/interface/navigationBar/index.tsx | 127 +++ .../interface/pullDownRefresh/index.config.ts | 5 + .../api/interface/pullDownRefresh/index.scss | 6 + .../api/interface/pullDownRefresh/index.tsx | 68 ++ .../api/interface/scroll/index.config.ts | 3 + .../src/pages/api/interface/scroll/index.scss | 15 + .../src/pages/api/interface/scroll/index.tsx | 72 ++ .../api/interface/setTop/index.config.ts | 3 + .../src/pages/api/interface/setTop/index.scss | 6 + .../src/pages/api/interface/setTop/index.tsx | 47 + .../api/interface/tabBar/index.config.ts | 3 + .../src/pages/api/interface/tabBar/index.scss | 25 + .../src/pages/api/interface/tabBar/index.tsx | 333 +++++++ .../api/interface/windows/index.config.ts | 3 + .../pages/api/interface/windows/index.scss | 6 + .../src/pages/api/interface/windows/index.tsx | 67 ++ .../src/pages/api/location/index.config.ts | 4 + .../src/pages/api/location/index.scss | 6 + .../src/pages/api/location/index.tsx | 267 ++++++ .../src/pages/api/media/audio/index.config.ts | 3 + .../src/pages/api/media/audio/index.scss | 6 + .../src/pages/api/media/audio/index.tsx | 570 +++++++++++ .../media/audioOrVideoCompose/index.config.ts | 3 + .../api/media/audioOrVideoCompose/index.scss | 6 + .../api/media/audioOrVideoCompose/index.tsx | 37 + .../api/media/backgroundAudio/index.config.ts | 3 + .../api/media/backgroundAudio/index.scss | 6 + .../pages/api/media/backgroundAudio/index.tsx | 180 ++++ .../pages/api/media/camera/index.config.ts | 3 + .../src/pages/api/media/camera/index.scss | 6 + .../src/pages/api/media/camera/index.tsx | 132 +++ .../src/pages/api/media/image/index.config.ts | 3 + .../src/pages/api/media/image/index.scss | 6 + .../src/pages/api/media/image/index.tsx | 325 +++++++ .../src/pages/api/media/map/index.config.ts | 3 + .../src/pages/api/media/map/index.scss | 6 + .../src/pages/api/media/map/index.tsx | 810 ++++++++++++++++ .../realtimeAudioAndVideo/index.config.ts | 3 + .../media/realtimeAudioAndVideo/index.scss | 21 + .../api/media/realtimeAudioAndVideo/index.tsx | 296 ++++++ .../api/media/realtimeVoice/index.config.ts | 3 + .../pages/api/media/realtimeVoice/index.scss | 6 + .../pages/api/media/realtimeVoice/index.tsx | 81 ++ .../pages/api/media/recording/index.config.ts | 3 + .../src/pages/api/media/recording/index.scss | 9 + .../src/pages/api/media/recording/index.tsx | 244 +++++ .../pages/api/media/richText/index.config.ts | 3 + .../src/pages/api/media/richText/index.scss | 6 + .../src/pages/api/media/richText/index.tsx | 275 ++++++ .../api/media/screenRecorder/index.config.ts | 3 + .../pages/api/media/screenRecorder/index.scss | 6 + .../pages/api/media/screenRecorder/index.tsx | 33 + .../src/pages/api/media/video/index.config.ts | 3 + .../src/pages/api/media/video/index.scss | 6 + .../src/pages/api/media/video/index.tsx | 372 +++++++ .../api/media/videoDecoder/index.config.ts | 3 + .../pages/api/media/videoDecoder/index.scss | 6 + .../pages/api/media/videoDecoder/index.tsx | 33 + .../navigationBarApis/navigationBarApis.scss | 13 + .../navigationBarApis/navigationBarApis.tsx | 95 ++ .../network/TCPCommunications/index.config.ts | 3 + .../api/network/TCPCommunications/index.scss | 6 + .../api/network/TCPCommunications/index.tsx | 33 + .../network/UDPCommunications/index.config.ts | 3 + .../api/network/UDPCommunications/index.scss | 6 + .../api/network/UDPCommunications/index.tsx | 33 + .../api/network/download/index.config.ts | 3 + .../src/pages/api/network/download/index.scss | 6 + .../src/pages/api/network/download/index.tsx | 125 +++ .../pages/api/network/mDNS/index.config.ts | 3 + .../src/pages/api/network/mDNS/index.scss | 6 + .../src/pages/api/network/mDNS/index.tsx | 65 ++ .../pages/api/network/request/index.config.ts | 3 + .../src/pages/api/network/request/index.scss | 6 + .../src/pages/api/network/request/index.tsx | 101 ++ .../pages/api/network/upload/index.config.ts | 3 + .../src/pages/api/network/upload/index.scss | 6 + .../src/pages/api/network/upload/index.tsx | 128 +++ .../api/network/webSocket/index.config.ts | 3 + .../pages/api/network/webSocket/index.scss | 6 + .../src/pages/api/network/webSocket/index.tsx | 238 +++++ .../accountInfomation/index.config.ts | 3 + .../api/openAPIS/accountInfomation/index.scss | 6 + .../api/openAPIS/accountInfomation/index.tsx | 33 + .../openAPIS/authorization/index.config.ts | 3 + .../api/openAPIS/authorization/index.scss | 6 + .../api/openAPIS/authorization/index.tsx | 51 + .../biometricAuthorization/index.config.ts | 3 + .../biometricAuthorization/index.scss | 6 + .../openAPIS/biometricAuthorization/index.tsx | 87 ++ .../openAPIS/cardsAndOffers/index.config.ts | 3 + .../api/openAPIS/cardsAndOffers/index.scss | 6 + .../api/openAPIS/cardsAndOffers/index.tsx | 33 + .../api/openAPIS/collection/index.config.ts | 3 + .../pages/api/openAPIS/collection/index.scss | 6 + .../pages/api/openAPIS/collection/index.tsx | 33 + .../api/openAPIS/deviceVoip/index.config.ts | 3 + .../pages/api/openAPIS/deviceVoip/index.scss | 6 + .../pages/api/openAPIS/deviceVoip/index.tsx | 33 + .../api/openAPIS/invoice/index.config.ts | 3 + .../src/pages/api/openAPIS/invoice/index.scss | 6 + .../src/pages/api/openAPIS/invoice/index.tsx | 33 + .../api/openAPIS/licensePlate/index.config.ts | 3 + .../api/openAPIS/licensePlate/index.scss | 21 + .../pages/api/openAPIS/licensePlate/index.tsx | 29 + .../pages/api/openAPIS/login/index.config.ts | 3 + .../src/pages/api/openAPIS/login/index.scss | 6 + .../src/pages/api/openAPIS/login/index.tsx | 51 + .../openAPIS/mineMiniProgram/index.config.ts | 3 + .../api/openAPIS/mineMiniProgram/index.scss | 6 + .../api/openAPIS/mineMiniProgram/index.tsx | 29 + .../openAPIS/recipientAddress/index.config.ts | 3 + .../api/openAPIS/recipientAddress/index.scss | 6 + .../api/openAPIS/recipientAddress/index.tsx | 29 + .../api/openAPIS/setting/index.config.ts | 3 + .../src/pages/api/openAPIS/setting/index.scss | 6 + .../src/pages/api/openAPIS/setting/index.tsx | 76 ++ .../openAPIS/subscribeNews/index.config.ts | 3 + .../api/openAPIS/subscribeNews/index.scss | 6 + .../api/openAPIS/subscribeNews/index.tsx | 50 + .../openAPIS/userInfomation/index.config.ts | 3 + .../api/openAPIS/userInfomation/index.scss | 6 + .../api/openAPIS/userInfomation/index.tsx | 75 ++ .../pages/api/openAPIS/weRun/index.config.ts | 3 + .../src/pages/api/openAPIS/weRun/index.scss | 6 + .../src/pages/api/openAPIS/weRun/index.tsx | 33 + .../wechatCustomerService/index.config.ts | 3 + .../openAPIS/wechatCustomerService/index.scss | 6 + .../openAPIS/wechatCustomerService/index.tsx | 29 + .../api/openAPIS/wechatGroup/index.config.ts | 3 + .../pages/api/openAPIS/wechatGroup/index.scss | 6 + .../pages/api/openAPIS/wechatGroup/index.tsx | 29 + .../openAPIS/wechatRedRacket/index.config.ts | 3 + .../api/openAPIS/wechatRedRacket/index.scss | 6 + .../api/openAPIS/wechatRedRacket/index.tsx | 29 + .../wechatVideoChannel/index.config.ts | 3 + .../openAPIS/wechatVideoChannel/index.scss | 6 + .../api/openAPIS/wechatVideoChannel/index.tsx | 71 ++ .../src/pages/api/payment/index.config.ts | 3 + .../src/pages/api/payment/index.scss | 6 + .../src/pages/api/payment/index.tsx | 61 ++ .../src/pages/api/qq/index.config.ts | 3 + .../src/pages/api/qq/index.scss | 6 + .../src/pages/api/qq/index.tsx | 29 + .../src/pages/api/redirection/index.config.ts | 3 + .../src/pages/api/redirection/index.scss | 6 + .../src/pages/api/redirection/index.tsx | 68 ++ .../src/pages/api/routing/index.config.ts | 3 + .../src/pages/api/routing/index.scss | 6 + .../src/pages/api/routing/index.tsx | 145 +++ .../pages/api/routing/routeA/index.config.ts | 3 + .../src/pages/api/routing/routeA/index.tsx | 48 + .../src/pages/api/swan/index.config.ts | 3 + .../src/pages/api/swan/index.scss | 6 + .../src/pages/api/swan/index.tsx | 29 + .../src/pages/api/tabBarApis/tabBarApis.scss | 13 + .../src/pages/api/tabBarApis/tabBarApis.tsx | 189 ++++ .../src/pages/api/taro/expand/index.config.ts | 3 + .../src/pages/api/taro/expand/index.scss | 6 + .../src/pages/api/taro/expand/index.tsx | 76 ++ .../src/pages/api/taro/hooks/index.config.ts | 3 + .../src/pages/api/taro/hooks/index.scss | 6 + .../src/pages/api/taro/hooks/index.tsx | 113 +++ .../src/pages/api/thirdParty/index.config.ts | 3 + .../src/pages/api/thirdParty/index.scss | 6 + .../src/pages/api/thirdParty/index.tsx | 33 + .../src/pages/api/worker/index.config.ts | 3 + .../src/pages/api/worker/index.scss | 6 + .../src/pages/api/worker/index.tsx | 33 + .../src/pages/api/wxml/index.config.ts | 3 + .../src/pages/api/wxml/index.scss | 40 + .../src/pages/api/wxml/index.tsx | 433 +++++++++ .../src/pages/component/audio/audio.config.js | 3 + .../src/pages/component/audio/audio.js | 37 + .../src/pages/component/audio/audio.scss | 6 + .../pages/component/button/button.config.js | 3 + .../src/pages/component/button/button.js | 102 ++ .../src/pages/component/button/button.scss | 6 + .../pages/component/camera/camera.config.js | 3 + .../src/pages/component/camera/camera.js | 59 ++ .../src/pages/component/camera/camera.scss | 4 + .../pages/component/canvas/canvas.config.js | 3 + .../src/pages/component/canvas/canvas.js | 65 ++ .../src/pages/component/canvas/canvas.scss | 10 + .../checkbox-group/checkbox-group.config.ts | 3 + .../checkbox-group/checkbox-group.scss | 46 + .../checkbox-group/checkbox-group.tsx | 60 ++ .../component/checkbox/checkbox.config.js | 3 + .../src/pages/component/checkbox/checkbox.js | 107 +++ .../pages/component/checkbox/checkbox.scss | 55 ++ .../cover-image/cover-image.config.js | 3 + .../component/cover-image/cover-image.js | 64 ++ .../component/cover-image/cover-image.scss | 3 + .../pages/component/cover-image/nerv_logo.png | Bin 0 -> 78347 bytes .../component/cover-view/cover-view.config.js | 3 + .../pages/component/cover-view/cover-view.js | 82 ++ .../component/cover-view/cover-view.scss | 32 + .../pages/component/cover-view/nerv_logo.png | Bin 0 -> 78347 bytes .../pages/component/editor/editor.config.ts | 3 + .../src/pages/component/editor/editor.scss | 0 .../src/pages/component/editor/editor.tsx | 583 +++++++++++ .../src/pages/component/form/form.config.js | 3 + .../src/pages/component/form/form.js | 171 ++++ .../src/pages/component/form/form.scss | 24 + .../src/pages/component/grid-view/demo1.tsx | 26 + .../src/pages/component/grid-view/demo2.tsx | 26 + .../pages/component/grid-view/grid-tile.scss | 9 + .../pages/component/grid-view/grid-tile.tsx | 21 + .../component/grid-view/grid-view.config.ts | 3 + .../pages/component/grid-view/grid-view.scss | 27 + .../pages/component/grid-view/grid-view.tsx | 56 ++ .../src/pages/component/grid-view/utils.js | 14 + .../src/pages/component/icon/icon.config.js | 3 + .../src/pages/component/icon/icon.js | 108 +++ .../src/pages/component/icon/icon.scss | 25 + .../src/pages/component/image/image.config.js | 3 + .../src/pages/component/image/image.js | 45 + .../src/pages/component/image/image.scss | 3 + .../src/pages/component/image/nerv_logo.png | Bin 0 -> 78347 bytes .../src/pages/component/index/index.config.js | 3 + .../src/pages/component/index/index.scss | 8 + .../src/pages/component/index/index.tsx | 245 +++++ .../src/pages/component/input/input.config.js | 3 + .../src/pages/component/input/input.js | 90 ++ .../src/pages/component/input/input.scss | 10 + .../src/pages/component/label/label.config.js | 3 + .../src/pages/component/label/label.js | 76 ++ .../src/pages/component/label/label.scss | 14 + .../component/list-view/list-view.config.ts | 3 + .../pages/component/list-view/list-view.scss | 19 + .../pages/component/list-view/list-view.tsx | 30 + .../live-player/live-player.config.js | 3 + .../component/live-player/live-player.js | 201 ++++ .../component/live-player/live-player.scss | 3 + .../src/pages/component/map/map.config.js | 3 + .../src/pages/component/map/map.js | 734 ++++++++++++++ .../src/pages/component/map/map.scss | 18 + .../match-media/match-media.config.ts | 3 + .../component/match-media/match-media.scss | 19 + .../component/match-media/match-media.tsx | 28 + .../movable-view/movable-view.config.js | 3 + .../component/movable-view/movable-view.js | 133 +++ .../component/movable-view/movable-view.scss | 46 + .../component/navigator/navigator.config.js | 3 + .../pages/component/navigator/navigator.js | 51 + .../pages/component/navigator/navigator.scss | 11 + .../page-container/page-container.config.ts | 3 + .../page-container/page-container.scss | 19 + .../page-container/page-container.tsx | 153 +++ .../picker-view/picker-view.config.js | 3 + .../component/picker-view/picker-view.js | 82 ++ .../pages/component/picker/picker.config.js | 3 + .../src/pages/component/picker/picker.js | 125 +++ .../src/pages/component/picker/picker.scss | 5 + .../component/progress/progress.config.js | 3 + .../src/pages/component/progress/progress.js | 84 ++ .../pages/component/progress/progress.scss | 5 + .../radio-group/radio-group.config.ts | 3 + .../component/radio-group/radio-group.scss | 46 + .../component/radio-group/radio-group.tsx | 59 ++ .../src/pages/component/radio/radio.config.js | 3 + .../src/pages/component/radio/radio.js | 106 ++ .../src/pages/component/radio/radio.scss | 54 ++ .../root-portal/root-portal.config.ts | 3 + .../component/root-portal/root-portal.scss | 19 + .../component/root-portal/root-portal.tsx | 39 + .../scroll-view/scroll-view.config.js | 3 + .../component/scroll-view/scroll-view.js | 52 + .../component/scroll-view/scroll-view.scss | 24 + .../share-element/share-element.config.ts | 3 + .../share-element/share-element.scss | 19 + .../component/share-element/share-element.tsx | 32 + .../pages/component/slider/slider.config.js | 3 + .../src/pages/component/slider/slider.js | 98 ++ .../sticky-header/sticky-header.config.ts | 3 + .../sticky-header/sticky-header.scss | 19 + .../component/sticky-header/sticky-header.tsx | 46 + .../pages/component/swiper/swiper.config.js | 3 + .../src/pages/component/swiper/swiper.js | 217 +++++ .../src/pages/component/swiper/swiper.scss | 62 ++ .../pages/component/switch/switch.config.js | 3 + .../src/pages/component/switch/switch.js | 66 ++ .../src/pages/component/switch/switch.scss | 28 + .../src/pages/component/text/text.config.js | 3 + .../src/pages/component/text/text.js | 62 ++ .../src/pages/component/text/text.scss | 7 + .../component/textarea/textarea.config.js | 3 + .../src/pages/component/textarea/textarea.js | 78 ++ .../pages/component/textarea/textarea.scss | 6 + .../src/pages/component/video/video.config.js | 3 + .../src/pages/component/video/video.js | 37 + .../src/pages/component/video/video.scss | 3 + .../src/pages/component/view/view.config.js | 3 + .../src/pages/component/view/view.js | 48 + .../src/pages/component/view/view.scss | 23 + .../src/pages/error/index.config.ts | 3 + .../src/pages/error/index.scss | 7 + .../src/pages/error/index.tsx | 14 + .../src/pages/index/index.config.ts | 3 + .../src/pages/index/index.scss | 24 + .../src/pages/index/index.tsx | 70 ++ .../pages/performance/index/index.config.ts | 7 + .../src/pages/performance/index/index.scss | 15 + .../src/pages/performance/index/index.tsx | 548 +++++++++++ .../src/styles/mixins.scss | 60 ++ .../src/styles/tabPage.scss | 85 ++ .../src/styles/variables.scss | 98 ++ .../src/util/nativeApi.ts | 11 + .../mini-program-example/src/util/util.ts | 77 ++ examples/mini-program-example/tsconfig.json | 31 + .../mini-program-example/types/global.d.ts | 19 + 526 files changed, 22929 insertions(+) create mode 100644 examples/mini-program-example/.editorconfig create mode 100644 examples/mini-program-example/.eslintrc create mode 100644 examples/mini-program-example/.gitignore create mode 100644 examples/mini-program-example/.prettierrc create mode 100644 examples/mini-program-example/babel.config.js create mode 100644 examples/mini-program-example/config/dev.js create mode 100644 examples/mini-program-example/config/index.js create mode 100644 examples/mini-program-example/config/prod.js create mode 100644 examples/mini-program-example/package.json create mode 100644 examples/mini-program-example/project.config.json create mode 100644 examples/mini-program-example/project.private.config.json create mode 100644 examples/mini-program-example/project.tt.json create mode 100644 examples/mini-program-example/src/app.config.ts create mode 100644 examples/mini-program-example/src/app.scss create mode 100644 examples/mini-program-example/src/app.ts create mode 100644 examples/mini-program-example/src/assets/api/AI.png create mode 100644 examples/mini-program-example/src/assets/api/advertising.png create mode 100644 examples/mini-program-example/src/assets/api/alipay.png create mode 100644 examples/mini-program-example/src/assets/api/analysis.png create mode 100644 examples/mini-program-example/src/assets/api/cache.png create mode 100644 examples/mini-program-example/src/assets/api/canvas.png create mode 100644 examples/mini-program-example/src/assets/api/cloud.png create mode 100644 examples/mini-program-example/src/assets/api/devices.png create mode 100644 examples/mini-program-example/src/assets/api/file.png create mode 100644 examples/mini-program-example/src/assets/api/forward.png create mode 100644 examples/mini-program-example/src/assets/api/frame.png create mode 100644 examples/mini-program-example/src/assets/api/interface.png create mode 100644 examples/mini-program-example/src/assets/api/iphone.png create mode 100644 examples/mini-program-example/src/assets/api/local.png create mode 100644 examples/mini-program-example/src/assets/api/logo.png create mode 100644 examples/mini-program-example/src/assets/api/media.png create mode 100644 examples/mini-program-example/src/assets/api/network.png create mode 100644 examples/mini-program-example/src/assets/api/openapi.png create mode 100644 examples/mini-program-example/src/assets/api/payment.png create mode 100644 examples/mini-program-example/src/assets/api/qq.png create mode 100644 examples/mini-program-example/src/assets/api/redirection.png create mode 100644 examples/mini-program-example/src/assets/api/routing.png create mode 100644 examples/mini-program-example/src/assets/api/swan.png create mode 100644 examples/mini-program-example/src/assets/api/taro.png create mode 100644 examples/mini-program-example/src/assets/api/thirdparty.png create mode 100644 examples/mini-program-example/src/assets/api/worker.png create mode 100644 examples/mini-program-example/src/assets/api/wxml.png create mode 100644 examples/mini-program-example/src/assets/component/canvas.png create mode 100644 examples/mini-program-example/src/assets/component/content.png create mode 100644 examples/mini-program-example/src/assets/component/form.png create mode 100644 examples/mini-program-example/src/assets/component/logo.png create mode 100644 examples/mini-program-example/src/assets/component/map.png create mode 100644 examples/mini-program-example/src/assets/component/media.png create mode 100644 examples/mini-program-example/src/assets/component/nav.png create mode 100644 examples/mini-program-example/src/assets/component/nav_red.png create mode 100644 examples/mini-program-example/src/assets/component/view.png create mode 100644 examples/mini-program-example/src/assets/component/view_red.png create mode 100644 examples/mini-program-example/src/assets/tab/api.png create mode 100644 examples/mini-program-example/src/assets/tab/api_select.png create mode 100644 examples/mini-program-example/src/assets/tab/component.png create mode 100644 examples/mini-program-example/src/assets/tab/component_select.png create mode 100644 examples/mini-program-example/src/assets/tab/home.png create mode 100644 examples/mini-program-example/src/assets/tab/home_select.png create mode 100644 examples/mini-program-example/src/components/buttonList/index.scss create mode 100644 examples/mini-program-example/src/components/buttonList/index.tsx create mode 100644 examples/mini-program-example/src/components/callbackContents/index.scss create mode 100644 examples/mini-program-example/src/components/callbackContents/index.tsx create mode 100644 examples/mini-program-example/src/components/component_state/component_state.js create mode 100644 examples/mini-program-example/src/components/component_state/component_state.scss create mode 100644 examples/mini-program-example/src/components/head/head.js create mode 100644 examples/mini-program-example/src/index.html create mode 100644 examples/mini-program-example/src/pages/api/advertising/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/advertising/index.scss create mode 100644 examples/mini-program-example/src/pages/api/advertising/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/ai/faceRecognition/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/ai/faceRecognition/index.scss create mode 100644 examples/mini-program-example/src/pages/api/ai/faceRecognition/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/ai/inference/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/ai/inference/index.scss create mode 100644 examples/mini-program-example/src/pages/api/ai/inference/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/ai/visionAlgorithms/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/ai/visionAlgorithms/index.scss create mode 100644 examples/mini-program-example/src/pages/api/ai/visionAlgorithms/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/alipay/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/alipay/index.scss create mode 100644 examples/mini-program-example/src/pages/api/alipay/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/analysis/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/analysis/index.scss create mode 100644 examples/mini-program-example/src/pages/api/analysis/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/basics/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/basics/basics/index.scss create mode 100644 examples/mini-program-example/src/pages/api/basics/basics/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/encryption/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/basics/encryption/index.scss create mode 100644 examples/mini-program-example/src/pages/api/basics/encryption/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/miniProgram/applicationLevelEvents/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/miniProgram/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/basics/miniProgram/index.scss create mode 100644 examples/mini-program-example/src/pages/api/basics/miniProgram/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/miniProgram/lifeCycle/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/performance/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/basics/performance/index.scss create mode 100644 examples/mini-program-example/src/pages/api/basics/performance/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/system/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/basics/system/index.scss create mode 100644 examples/mini-program-example/src/pages/api/basics/system/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/basics/update/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/basics/update/index.scss create mode 100644 examples/mini-program-example/src/pages/api/basics/update/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/cache/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/cache/index.scss create mode 100644 examples/mini-program-example/src/pages/api/cache/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/canvas/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/canvas/index.scss create mode 100644 examples/mini-program-example/src/pages/api/canvas/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/cloudServices/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/cloudServices/index.scss create mode 100644 examples/mini-program-example/src/pages/api/cloudServices/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/accelerometer/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/accelerometer/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/accelerometer/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/accessibility/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/accessibility/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/accessibility/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/bettery/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/bettery/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/bettery/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothBeacon/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothBeacon/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothBeacon/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothGeneral/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothGeneral/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothGeneral/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothLowCenter/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothLowCenter/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothLowCenter/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothLowPerpherals/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothLowPerpherals/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/bluetoothLowPerpherals/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/calendar/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/calendar/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/calendar/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/clipBoard/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/clipBoard/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/clipBoard/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/compass/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/compass/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/compass/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/contact/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/contact/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/contact/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/deviceOrientation/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/deviceOrientation/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/deviceOrientation/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/gyroscope/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/gyroscope/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/gyroscope/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/keyboard/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/keyboard/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/keyboard/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/memory/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/memory/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/memory/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/network/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/network/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/network/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/nfc/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/nfc/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/nfc/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/phoneCall/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/phoneCall/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/phoneCall/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/scan/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/scan/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/scan/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/screen/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/screen/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/screen/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/sms/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/sms/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/sms/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/vibration/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/vibration/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/vibration/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/device/wifi/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/device/wifi/index.scss create mode 100644 examples/mini-program-example/src/pages/api/device/wifi/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/file/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/file/index.scss create mode 100644 examples/mini-program-example/src/pages/api/file/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/forward/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/forward/index.scss create mode 100644 examples/mini-program-example/src/pages/api/forward/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/framework/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/framework/index.scss create mode 100644 examples/mini-program-example/src/pages/api/framework/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/index/index.config.js create mode 100644 examples/mini-program-example/src/pages/api/index/index.scss create mode 100644 examples/mini-program-example/src/pages/api/index/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/index/module.js create mode 100644 examples/mini-program-example/src/pages/api/interface/animation/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/animation/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/animation/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/background/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/background/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/background/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/customizedComponents/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/customizedComponents/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/customizedComponents/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/font/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/font/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/font/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/interaction/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/interaction/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/interaction/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/menu/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/menu/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/menu/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/navigationBar/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/navigationBar/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/navigationBar/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/pullDownRefresh/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/pullDownRefresh/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/pullDownRefresh/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/scroll/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/scroll/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/scroll/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/setTop/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/setTop/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/setTop/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/tabBar/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/tabBar/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/tabBar/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/interface/windows/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/interface/windows/index.scss create mode 100644 examples/mini-program-example/src/pages/api/interface/windows/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/location/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/location/index.scss create mode 100644 examples/mini-program-example/src/pages/api/location/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/audio/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/audio/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/audio/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/audioOrVideoCompose/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/audioOrVideoCompose/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/audioOrVideoCompose/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/backgroundAudio/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/backgroundAudio/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/backgroundAudio/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/camera/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/camera/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/camera/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/image/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/image/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/image/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/map/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/map/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/map/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/realtimeAudioAndVideo/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/realtimeAudioAndVideo/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/realtimeAudioAndVideo/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/realtimeVoice/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/realtimeVoice/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/realtimeVoice/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/recording/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/recording/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/recording/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/richText/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/richText/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/richText/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/screenRecorder/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/screenRecorder/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/screenRecorder/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/video/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/video/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/video/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/media/videoDecoder/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/media/videoDecoder/index.scss create mode 100644 examples/mini-program-example/src/pages/api/media/videoDecoder/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/navigationBarApis/navigationBarApis.scss create mode 100644 examples/mini-program-example/src/pages/api/navigationBarApis/navigationBarApis.tsx create mode 100644 examples/mini-program-example/src/pages/api/network/TCPCommunications/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/network/TCPCommunications/index.scss create mode 100644 examples/mini-program-example/src/pages/api/network/TCPCommunications/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/network/UDPCommunications/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/network/UDPCommunications/index.scss create mode 100644 examples/mini-program-example/src/pages/api/network/UDPCommunications/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/network/download/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/network/download/index.scss create mode 100644 examples/mini-program-example/src/pages/api/network/download/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/network/mDNS/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/network/mDNS/index.scss create mode 100644 examples/mini-program-example/src/pages/api/network/mDNS/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/network/request/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/network/request/index.scss create mode 100644 examples/mini-program-example/src/pages/api/network/request/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/network/upload/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/network/upload/index.scss create mode 100644 examples/mini-program-example/src/pages/api/network/upload/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/network/webSocket/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/network/webSocket/index.scss create mode 100644 examples/mini-program-example/src/pages/api/network/webSocket/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/accountInfomation/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/accountInfomation/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/accountInfomation/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/authorization/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/authorization/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/authorization/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/biometricAuthorization/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/biometricAuthorization/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/biometricAuthorization/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/cardsAndOffers/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/cardsAndOffers/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/cardsAndOffers/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/collection/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/collection/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/collection/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/deviceVoip/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/deviceVoip/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/deviceVoip/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/invoice/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/invoice/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/invoice/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/licensePlate/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/licensePlate/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/licensePlate/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/login/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/login/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/login/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/mineMiniProgram/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/mineMiniProgram/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/mineMiniProgram/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/recipientAddress/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/recipientAddress/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/recipientAddress/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/setting/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/setting/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/setting/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/subscribeNews/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/subscribeNews/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/subscribeNews/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/userInfomation/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/userInfomation/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/userInfomation/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/weRun/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/weRun/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/weRun/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatCustomerService/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatCustomerService/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatCustomerService/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatGroup/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatGroup/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatGroup/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatRedRacket/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatRedRacket/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatRedRacket/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatVideoChannel/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatVideoChannel/index.scss create mode 100644 examples/mini-program-example/src/pages/api/openAPIS/wechatVideoChannel/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/payment/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/payment/index.scss create mode 100644 examples/mini-program-example/src/pages/api/payment/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/qq/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/qq/index.scss create mode 100644 examples/mini-program-example/src/pages/api/qq/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/redirection/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/redirection/index.scss create mode 100644 examples/mini-program-example/src/pages/api/redirection/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/routing/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/routing/index.scss create mode 100644 examples/mini-program-example/src/pages/api/routing/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/routing/routeA/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/routing/routeA/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/swan/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/swan/index.scss create mode 100644 examples/mini-program-example/src/pages/api/swan/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/tabBarApis/tabBarApis.scss create mode 100644 examples/mini-program-example/src/pages/api/tabBarApis/tabBarApis.tsx create mode 100644 examples/mini-program-example/src/pages/api/taro/expand/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/taro/expand/index.scss create mode 100644 examples/mini-program-example/src/pages/api/taro/expand/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/taro/hooks/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/taro/hooks/index.scss create mode 100644 examples/mini-program-example/src/pages/api/taro/hooks/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/thirdParty/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/thirdParty/index.scss create mode 100644 examples/mini-program-example/src/pages/api/thirdParty/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/worker/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/worker/index.scss create mode 100644 examples/mini-program-example/src/pages/api/worker/index.tsx create mode 100644 examples/mini-program-example/src/pages/api/wxml/index.config.ts create mode 100644 examples/mini-program-example/src/pages/api/wxml/index.scss create mode 100644 examples/mini-program-example/src/pages/api/wxml/index.tsx create mode 100644 examples/mini-program-example/src/pages/component/audio/audio.config.js create mode 100644 examples/mini-program-example/src/pages/component/audio/audio.js create mode 100644 examples/mini-program-example/src/pages/component/audio/audio.scss create mode 100644 examples/mini-program-example/src/pages/component/button/button.config.js create mode 100644 examples/mini-program-example/src/pages/component/button/button.js create mode 100644 examples/mini-program-example/src/pages/component/button/button.scss create mode 100644 examples/mini-program-example/src/pages/component/camera/camera.config.js create mode 100644 examples/mini-program-example/src/pages/component/camera/camera.js create mode 100644 examples/mini-program-example/src/pages/component/camera/camera.scss create mode 100644 examples/mini-program-example/src/pages/component/canvas/canvas.config.js create mode 100644 examples/mini-program-example/src/pages/component/canvas/canvas.js create mode 100644 examples/mini-program-example/src/pages/component/canvas/canvas.scss create mode 100644 examples/mini-program-example/src/pages/component/checkbox-group/checkbox-group.config.ts create mode 100644 examples/mini-program-example/src/pages/component/checkbox-group/checkbox-group.scss create mode 100644 examples/mini-program-example/src/pages/component/checkbox-group/checkbox-group.tsx create mode 100644 examples/mini-program-example/src/pages/component/checkbox/checkbox.config.js create mode 100644 examples/mini-program-example/src/pages/component/checkbox/checkbox.js create mode 100644 examples/mini-program-example/src/pages/component/checkbox/checkbox.scss create mode 100644 examples/mini-program-example/src/pages/component/cover-image/cover-image.config.js create mode 100644 examples/mini-program-example/src/pages/component/cover-image/cover-image.js create mode 100644 examples/mini-program-example/src/pages/component/cover-image/cover-image.scss create mode 100644 examples/mini-program-example/src/pages/component/cover-image/nerv_logo.png create mode 100644 examples/mini-program-example/src/pages/component/cover-view/cover-view.config.js create mode 100644 examples/mini-program-example/src/pages/component/cover-view/cover-view.js create mode 100644 examples/mini-program-example/src/pages/component/cover-view/cover-view.scss create mode 100644 examples/mini-program-example/src/pages/component/cover-view/nerv_logo.png create mode 100644 examples/mini-program-example/src/pages/component/editor/editor.config.ts create mode 100644 examples/mini-program-example/src/pages/component/editor/editor.scss create mode 100644 examples/mini-program-example/src/pages/component/editor/editor.tsx create mode 100644 examples/mini-program-example/src/pages/component/form/form.config.js create mode 100644 examples/mini-program-example/src/pages/component/form/form.js create mode 100644 examples/mini-program-example/src/pages/component/form/form.scss create mode 100644 examples/mini-program-example/src/pages/component/grid-view/demo1.tsx create mode 100644 examples/mini-program-example/src/pages/component/grid-view/demo2.tsx create mode 100644 examples/mini-program-example/src/pages/component/grid-view/grid-tile.scss create mode 100644 examples/mini-program-example/src/pages/component/grid-view/grid-tile.tsx create mode 100644 examples/mini-program-example/src/pages/component/grid-view/grid-view.config.ts create mode 100644 examples/mini-program-example/src/pages/component/grid-view/grid-view.scss create mode 100644 examples/mini-program-example/src/pages/component/grid-view/grid-view.tsx create mode 100644 examples/mini-program-example/src/pages/component/grid-view/utils.js create mode 100644 examples/mini-program-example/src/pages/component/icon/icon.config.js create mode 100644 examples/mini-program-example/src/pages/component/icon/icon.js create mode 100644 examples/mini-program-example/src/pages/component/icon/icon.scss create mode 100644 examples/mini-program-example/src/pages/component/image/image.config.js create mode 100644 examples/mini-program-example/src/pages/component/image/image.js create mode 100644 examples/mini-program-example/src/pages/component/image/image.scss create mode 100644 examples/mini-program-example/src/pages/component/image/nerv_logo.png create mode 100644 examples/mini-program-example/src/pages/component/index/index.config.js create mode 100644 examples/mini-program-example/src/pages/component/index/index.scss create mode 100644 examples/mini-program-example/src/pages/component/index/index.tsx create mode 100644 examples/mini-program-example/src/pages/component/input/input.config.js create mode 100644 examples/mini-program-example/src/pages/component/input/input.js create mode 100644 examples/mini-program-example/src/pages/component/input/input.scss create mode 100644 examples/mini-program-example/src/pages/component/label/label.config.js create mode 100644 examples/mini-program-example/src/pages/component/label/label.js create mode 100644 examples/mini-program-example/src/pages/component/label/label.scss create mode 100644 examples/mini-program-example/src/pages/component/list-view/list-view.config.ts create mode 100644 examples/mini-program-example/src/pages/component/list-view/list-view.scss create mode 100644 examples/mini-program-example/src/pages/component/list-view/list-view.tsx create mode 100644 examples/mini-program-example/src/pages/component/live-player/live-player.config.js create mode 100644 examples/mini-program-example/src/pages/component/live-player/live-player.js create mode 100644 examples/mini-program-example/src/pages/component/live-player/live-player.scss create mode 100644 examples/mini-program-example/src/pages/component/map/map.config.js create mode 100644 examples/mini-program-example/src/pages/component/map/map.js create mode 100644 examples/mini-program-example/src/pages/component/map/map.scss create mode 100644 examples/mini-program-example/src/pages/component/match-media/match-media.config.ts create mode 100644 examples/mini-program-example/src/pages/component/match-media/match-media.scss create mode 100644 examples/mini-program-example/src/pages/component/match-media/match-media.tsx create mode 100644 examples/mini-program-example/src/pages/component/movable-view/movable-view.config.js create mode 100644 examples/mini-program-example/src/pages/component/movable-view/movable-view.js create mode 100644 examples/mini-program-example/src/pages/component/movable-view/movable-view.scss create mode 100644 examples/mini-program-example/src/pages/component/navigator/navigator.config.js create mode 100644 examples/mini-program-example/src/pages/component/navigator/navigator.js create mode 100644 examples/mini-program-example/src/pages/component/navigator/navigator.scss create mode 100644 examples/mini-program-example/src/pages/component/page-container/page-container.config.ts create mode 100644 examples/mini-program-example/src/pages/component/page-container/page-container.scss create mode 100644 examples/mini-program-example/src/pages/component/page-container/page-container.tsx create mode 100644 examples/mini-program-example/src/pages/component/picker-view/picker-view.config.js create mode 100644 examples/mini-program-example/src/pages/component/picker-view/picker-view.js create mode 100644 examples/mini-program-example/src/pages/component/picker/picker.config.js create mode 100644 examples/mini-program-example/src/pages/component/picker/picker.js create mode 100644 examples/mini-program-example/src/pages/component/picker/picker.scss create mode 100644 examples/mini-program-example/src/pages/component/progress/progress.config.js create mode 100644 examples/mini-program-example/src/pages/component/progress/progress.js create mode 100644 examples/mini-program-example/src/pages/component/progress/progress.scss create mode 100644 examples/mini-program-example/src/pages/component/radio-group/radio-group.config.ts create mode 100644 examples/mini-program-example/src/pages/component/radio-group/radio-group.scss create mode 100644 examples/mini-program-example/src/pages/component/radio-group/radio-group.tsx create mode 100644 examples/mini-program-example/src/pages/component/radio/radio.config.js create mode 100644 examples/mini-program-example/src/pages/component/radio/radio.js create mode 100644 examples/mini-program-example/src/pages/component/radio/radio.scss create mode 100644 examples/mini-program-example/src/pages/component/root-portal/root-portal.config.ts create mode 100644 examples/mini-program-example/src/pages/component/root-portal/root-portal.scss create mode 100644 examples/mini-program-example/src/pages/component/root-portal/root-portal.tsx create mode 100644 examples/mini-program-example/src/pages/component/scroll-view/scroll-view.config.js create mode 100644 examples/mini-program-example/src/pages/component/scroll-view/scroll-view.js create mode 100644 examples/mini-program-example/src/pages/component/scroll-view/scroll-view.scss create mode 100644 examples/mini-program-example/src/pages/component/share-element/share-element.config.ts create mode 100644 examples/mini-program-example/src/pages/component/share-element/share-element.scss create mode 100644 examples/mini-program-example/src/pages/component/share-element/share-element.tsx create mode 100644 examples/mini-program-example/src/pages/component/slider/slider.config.js create mode 100644 examples/mini-program-example/src/pages/component/slider/slider.js create mode 100644 examples/mini-program-example/src/pages/component/sticky-header/sticky-header.config.ts create mode 100644 examples/mini-program-example/src/pages/component/sticky-header/sticky-header.scss create mode 100644 examples/mini-program-example/src/pages/component/sticky-header/sticky-header.tsx create mode 100644 examples/mini-program-example/src/pages/component/swiper/swiper.config.js create mode 100644 examples/mini-program-example/src/pages/component/swiper/swiper.js create mode 100644 examples/mini-program-example/src/pages/component/swiper/swiper.scss create mode 100644 examples/mini-program-example/src/pages/component/switch/switch.config.js create mode 100644 examples/mini-program-example/src/pages/component/switch/switch.js create mode 100644 examples/mini-program-example/src/pages/component/switch/switch.scss create mode 100644 examples/mini-program-example/src/pages/component/text/text.config.js create mode 100644 examples/mini-program-example/src/pages/component/text/text.js create mode 100644 examples/mini-program-example/src/pages/component/text/text.scss create mode 100644 examples/mini-program-example/src/pages/component/textarea/textarea.config.js create mode 100644 examples/mini-program-example/src/pages/component/textarea/textarea.js create mode 100644 examples/mini-program-example/src/pages/component/textarea/textarea.scss create mode 100644 examples/mini-program-example/src/pages/component/video/video.config.js create mode 100644 examples/mini-program-example/src/pages/component/video/video.js create mode 100644 examples/mini-program-example/src/pages/component/video/video.scss create mode 100644 examples/mini-program-example/src/pages/component/view/view.config.js create mode 100644 examples/mini-program-example/src/pages/component/view/view.js create mode 100644 examples/mini-program-example/src/pages/component/view/view.scss create mode 100644 examples/mini-program-example/src/pages/error/index.config.ts create mode 100644 examples/mini-program-example/src/pages/error/index.scss create mode 100644 examples/mini-program-example/src/pages/error/index.tsx create mode 100644 examples/mini-program-example/src/pages/index/index.config.ts create mode 100644 examples/mini-program-example/src/pages/index/index.scss create mode 100644 examples/mini-program-example/src/pages/index/index.tsx create mode 100644 examples/mini-program-example/src/pages/performance/index/index.config.ts create mode 100644 examples/mini-program-example/src/pages/performance/index/index.scss create mode 100644 examples/mini-program-example/src/pages/performance/index/index.tsx create mode 100644 examples/mini-program-example/src/styles/mixins.scss create mode 100644 examples/mini-program-example/src/styles/tabPage.scss create mode 100644 examples/mini-program-example/src/styles/variables.scss create mode 100644 examples/mini-program-example/src/util/nativeApi.ts create mode 100644 examples/mini-program-example/src/util/util.ts create mode 100644 examples/mini-program-example/tsconfig.json create mode 100644 examples/mini-program-example/types/global.d.ts diff --git a/examples/mini-program-example/.editorconfig b/examples/mini-program-example/.editorconfig new file mode 100644 index 000000000000..5760be583696 --- /dev/null +++ b/examples/mini-program-example/.editorconfig @@ -0,0 +1,12 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/examples/mini-program-example/.eslintrc b/examples/mini-program-example/.eslintrc new file mode 100644 index 000000000000..c9c31c176f54 --- /dev/null +++ b/examples/mini-program-example/.eslintrc @@ -0,0 +1,13 @@ +{ + "extends": ["taro/react"], + "rules": { + "react/jsx-uses-react": "off", + "react/react-in-jsx-scope": "off", + "@typescript-eslint/no-unused-expressions": "off", + "import/first": "off", + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-shadow": "off", + "react/forbid-elements": "off" + } +} diff --git a/examples/mini-program-example/.gitignore b/examples/mini-program-example/.gitignore new file mode 100644 index 000000000000..331e8f6f4da6 --- /dev/null +++ b/examples/mini-program-example/.gitignore @@ -0,0 +1,7 @@ +dist/ +deploy_versions/ +.temp/ +.rn_temp/ +node_modules/ +.DS_Store +.swc \ No newline at end of file diff --git a/examples/mini-program-example/.prettierrc b/examples/mini-program-example/.prettierrc new file mode 100644 index 000000000000..0b9ec4ffff82 --- /dev/null +++ b/examples/mini-program-example/.prettierrc @@ -0,0 +1,14 @@ +{ + "printWidth": 120, + "singleQuote": true, + "useTabs": false, + "tabWidth": 2, + "semi": false, + "quoteProps": "as-needed", + "trailingComma": "es5", + "bracketSpacing": true, + "jsxSingleQuote": true, + "jsxBracketSameLine": false, + "arrowParens": "always", + "endOfLine": "auto" +} \ No newline at end of file diff --git a/examples/mini-program-example/babel.config.js b/examples/mini-program-example/babel.config.js new file mode 100644 index 000000000000..f3acb812f5a9 --- /dev/null +++ b/examples/mini-program-example/babel.config.js @@ -0,0 +1,10 @@ +// babel-preset-taro 更多选项和默认值: +// https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md +module.exports = { + presets: [ + ['taro', { + framework: 'react', + ts: true + }] + ] +} diff --git a/examples/mini-program-example/config/dev.js b/examples/mini-program-example/config/dev.js new file mode 100644 index 000000000000..6821bf8e47d4 --- /dev/null +++ b/examples/mini-program-example/config/dev.js @@ -0,0 +1,9 @@ +module.exports = { + env: { + NODE_ENV: '"development"' + }, + defineConstants: { + }, + mini: {}, + h5: {} +} diff --git a/examples/mini-program-example/config/index.js b/examples/mini-program-example/config/index.js new file mode 100644 index 000000000000..03f52196110f --- /dev/null +++ b/examples/mini-program-example/config/index.js @@ -0,0 +1,96 @@ +const path = require('path') + +const config = { + projectName: 'mini-program-example', + date: '2023-6-15', + designWidth: 750, + deviceRatio: { + 640: 2.34 / 2, + 750: 1, + 828: 1.81 / 2 + }, + sourceRoot: 'src', + outputRoot: `dist/spa/main`, + plugins: [], + alias: { + '@/util': path.resolve(__dirname, '..', 'src/util'), + '@/styles': path.resolve(__dirname, '..', 'src/styles'), + '@/assets': path.resolve(__dirname, '..', 'src/assets'), + '@/components': path.resolve(__dirname, '..', 'src/components'), + }, + defineConstants: { + }, + copy: { + patterns: [ + ], + options: { + } + }, + framework: 'react', + compiler: 'webpack5', + cache: { + enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache + }, + mini: { + postcss: { + pxtransform: { + enable: true, + config: { + + } + }, + url: { + enable: true, + config: { + limit: 1024 // 设定转换尺寸上限 + } + }, + cssModules: { + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + config: { + namingPattern: 'module', // 转换模式,取值为 global/module + generateScopedName: '[name]__[local]___[hash:base64:5]' + } + } + }, + imageUrlLoaderOption:{ + limit:8192 + } + }, + h5: { + publicPath: '/spa/main/', + staticDirectory: 'static', + postcss: { + autoprefixer: { + enable: true, + config: { + } + }, + cssModules: { + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + config: { + namingPattern: 'module', // 转换模式,取值为 global/module + generateScopedName: '[name]__[local]___[hash:base64:5]' + } + } + }, + imageUrlLoaderOption:{ + limit:8192 + } + }, + rn: { + appName: 'taroDemo', + postcss: { + cssModules: { + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + } + } + } +} + +module.exports = function (merge) { + if (process.env.NODE_ENV === 'development') { + return merge({}, config, require('./dev')) + } + return merge({}, config, require('./prod')) +} diff --git a/examples/mini-program-example/config/prod.js b/examples/mini-program-example/config/prod.js new file mode 100644 index 000000000000..e1486661d96c --- /dev/null +++ b/examples/mini-program-example/config/prod.js @@ -0,0 +1,37 @@ +module.exports = { + env: { + NODE_ENV: '"production"' + }, + defineConstants: { + }, + mini: {}, + h5: { + /** + * WebpackChain 插件配置 + * @docs https://github.com/neutrinojs/webpack-chain + */ + // webpackChain (chain) { + // /** + // * 如果 h5 端编译后体积过大,可以使用 webpack-bundle-analyzer 插件对打包体积进行分析。 + // * @docs https://github.com/webpack-contrib/webpack-bundle-analyzer + // */ + // chain.plugin('analyzer') + // .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, []) + + // /** + // * 如果 h5 端首屏加载时间过长,可以使用 prerender-spa-plugin 插件预加载首页。 + // * @docs https://github.com/chrisvfritz/prerender-spa-plugin + // */ + // const path = require('path') + // const Prerender = require('prerender-spa-plugin') + // const staticDir = path.join(__dirname, '..', 'dist') + // chain + // .plugin('prerender') + // .use(new Prerender({ + // staticDir, + // routes: [ '/pages/index/index' ], + // postProcess: (context) => ({ ...context, outputPath: path.join(staticDir, 'index.html') }) + // })) + // } + } +} diff --git a/examples/mini-program-example/package.json b/examples/mini-program-example/package.json new file mode 100644 index 000000000000..ca5dd7be450e --- /dev/null +++ b/examples/mini-program-example/package.json @@ -0,0 +1,91 @@ +{ + "name": "mini-program-example", + "version": "1.0.0", + "private": true, + "description": "小程序demo", + "templateInfo": { + "name": "default", + "typescript": true, + "css": "sass" + }, + "scripts": { + "lint": "eslint src --ext .js --ext .jsx --ext .ts --ext .tsx", + "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx}\" && eslint src --ext .js --ext .jsx --ext .ts --ext .tsx --fix", + "build:weapp": "taro build --type weapp", + "build:swan": "taro build --type swan", + "build:alipay": "taro build --type alipay", + "build:tt": "taro build --type tt", + "build:h5": "taro build --type h5", + "build:rn": "taro build --type rn", + "build:qq": "taro build --type qq", + "build:jd": "taro build --type jd", + "build:quickapp": "taro build --type quickapp", + "build:mpharmony": "taro build --type mpharmony", + "build:mpandroid": "taro build --type mpandroid", + "dev:weapp": "npm run build:weapp -- --watch", + "dev:swan": "npm run build:swan -- --watch", + "dev:alipay": "npm run build:alipay -- --watch", + "dev:tt": "npm run build:tt -- --watch", + "dev:h5": "npm run build:h5 -- --watch", + "dev:rn": "npm run build:rn -- --watch", + "dev:qq": "npm run build:qq -- --watch", + "dev:jd": "npm run build:jd -- --watch", + "dev:quickapp": "npm run build:quickapp -- --watch", + "dev:mpharmony": "npm run build:mpharmony -- --watch", + "dev:mpandroid": "npm run build:mpandroid -- --watch", + "clear:mpharmony": "rm -rf node_modules/.taro/mpharmony && npm run dev:mpharmony", + "rebuild": "cd ../../packages/%npm_config_package% && pnpm build && cd ../../examples/mini-program-example && rimraf node_modules && pnpm install" + }, + "browserslist": [ + "last 3 versions", + "Android >= 4.1", + "ios >= 8" + ], + "author": "", + "dependencies": { + "@babel/runtime": "^7.14.5", + "@tarojs/components": "workspace:*", + "@tarojs/helper": "workspace:*", + "@tarojs/plugin-platform-weapp": "workspace:*", + "@tarojs/plugin-platform-alipay": "workspace:*", + "@tarojs/plugin-platform-tt": "workspace:*", + "@tarojs/plugin-platform-swan": "workspace:*", + "@tarojs/plugin-platform-jd": "workspace:*", + "@tarojs/plugin-platform-qq": "workspace:*", + "@tarojs/plugin-platform-h5": "workspace:*", + "@tarojs/plugin-platform-mpharmony": "workspace:*", + "@tarojs/plugin-platform-mpandroid": "workspace:*", + "@tarojs/components-mpharmony": "workspace:*", + "@tarojs/taro-mpharmony": "workspace:*", + "@tarojs/runtime": "workspace:*", + "@tarojs/shared": "workspace:*", + "@tarojs/taro": "workspace:*", + "@tarojs/plugin-framework-react": "workspace:*", + "@tarojs/react": "workspace:*", + "react-dom": "^18.2.0", + "react": "^18.2.0" + }, + "devDependencies": { + "@babel/core": "^7.8.0", + "@tarojs/cli": "workspace:*", + "@types/webpack-env": "^1.13.6", + "@types/react": "^18.2.0", + "webpack": "5.78.0", + "@tarojs/webpack5-runner": "workspace:*", + "babel-preset-taro": "workspace:*", + "eslint-config-taro": "workspace:*", + "eslint": "^8.12.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.5", + "react-refresh": "^0.11.0", + "eslint-plugin-react": "^7.8.2", + "eslint-plugin-import": "^2.12.0", + "eslint-plugin-react-hooks": "^4.2.0", + "stylelint": "^14.4.0", + "@typescript-eslint/parser": "^5.20.0", + "@typescript-eslint/eslint-plugin": "^5.20.0", + "typescript": "^4.1.0", + "postcss": "^8.4.18", + "ts-node": "^10.9.1", + "@types/node": "^18.15.11" + } +} diff --git a/examples/mini-program-example/project.config.json b/examples/mini-program-example/project.config.json new file mode 100644 index 000000000000..d13acb169ea6 --- /dev/null +++ b/examples/mini-program-example/project.config.json @@ -0,0 +1,32 @@ +{ + "miniprogramRoot": "dist/", + "projectname": "mini-program-example", + "description": "小程序demo", + "appid": "wx16ae4838cf116f8f", + "setting": { + "urlCheck": true, + "es6": false, + "enhance": false, + "compileHotReLoad": false, + "postcss": false, + "minified": false, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "condition": false + }, + "compileType": "miniprogram", + "libVersion": "3.0.0", + "srcMiniprogramRoot": "dist/", + "packOptions": { + "ignore": [], + "include": [] + }, + "condition": {}, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 + } +} \ No newline at end of file diff --git a/examples/mini-program-example/project.private.config.json b/examples/mini-program-example/project.private.config.json new file mode 100644 index 000000000000..aa61c084b65d --- /dev/null +++ b/examples/mini-program-example/project.private.config.json @@ -0,0 +1,7 @@ +{ + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "projectname": "mini-program-example", + "setting": { + "compileHotReLoad": true + } +} \ No newline at end of file diff --git a/examples/mini-program-example/project.tt.json b/examples/mini-program-example/project.tt.json new file mode 100644 index 000000000000..72f4fc579101 --- /dev/null +++ b/examples/mini-program-example/project.tt.json @@ -0,0 +1,9 @@ +{ + "miniprogramRoot": "./", + "projectname": "mini-program-example", + "appid": "testAppId", + "setting": { + "es6": false, + "minified": false + } +} diff --git a/examples/mini-program-example/src/app.config.ts b/examples/mini-program-example/src/app.config.ts new file mode 100644 index 000000000000..abbc20fbd38b --- /dev/null +++ b/examples/mini-program-example/src/app.config.ts @@ -0,0 +1,185 @@ +export default defineAppConfig({ + pages: [ + 'pages/index/index', + 'pages/error/index', + 'pages/component/index/index', + 'pages/component/cover-image/cover-image', + 'pages/component/cover-view/cover-view', + 'pages/component/view/view', + 'pages/component/scroll-view/scroll-view', + 'pages/component/swiper/swiper', + 'pages/component/text/text', + 'pages/component/icon/icon', + 'pages/component/progress/progress', + 'pages/component/button/button', + 'pages/component/checkbox/checkbox', + 'pages/component/form/form', + 'pages/component/input/input', + 'pages/component/label/label', + 'pages/component/picker/picker', + 'pages/component/picker-view/picker-view', + 'pages/component/radio/radio', + 'pages/component/switch/switch', + 'pages/component/textarea/textarea', + 'pages/component/navigator/navigator', + 'pages/component/audio/audio', + 'pages/component/camera/camera', + 'pages/component/image/image', + 'pages/component/video/video', + 'pages/component/live-player/live-player', + 'pages/component/map/map', + 'pages/component/canvas/canvas', + 'pages/component/slider/slider', + 'pages/component/grid-view/grid-view', + 'pages/component/grid-view/demo1', + 'pages/component/grid-view/demo2', + 'pages/component/list-view/list-view', + 'pages/component/page-container/page-container', + 'pages/component/radio-group/radio-group', + 'pages/component/checkbox-group/checkbox-group', + 'pages/component/match-media/match-media', + 'pages/component/movable-view/movable-view', + 'pages/component/sticky-header/sticky-header', + 'pages/component/root-portal/root-portal', + 'pages/component/editor/editor', + 'pages/component/share-element/share-element', + 'pages/api/index/index', + 'pages/api/advertising/index', + 'pages/api/ai/inference/index', + 'pages/api/ai/visionAlgorithms/index', + 'pages/api/ai/faceRecognition/index', + 'pages/api/alipay/index', + 'pages/api/analysis/index', + 'pages/api/basics/basics/index', + 'pages/api/basics/debug/index', + 'pages/api/basics/encryption/index', + 'pages/api/basics/miniProgram/index', + 'pages/api/basics/performance/index', + 'pages/api/basics/system/index', + 'pages/api/basics/update/index', + 'pages/api/cache/index', + 'pages/api/canvas/index', + 'pages/api/cloudServices/index', + 'pages/api/device/bluetoothGeneral/index', + 'pages/api/device/bluetoothLowCenter/index', + 'pages/api/device/bluetoothLowPerpherals/index', + 'pages/api/device/bluetoothBeacon/index', + 'pages/api/device/nfc/index', + 'pages/api/device/wifi/index', + 'pages/api/device/calendar/index', + 'pages/api/device/contact/index', + 'pages/api/device/accessibility/index', + 'pages/api/device/bettery/index', + 'pages/api/device/clipBoard/index', + 'pages/api/device/network/index', + 'pages/api/device/screen/index', + 'pages/api/device/keyboard/index', + 'pages/api/device/phoneCall/index', + 'pages/api/device/accelerometer/index', + 'pages/api/device/compass/index', + 'pages/api/device/deviceOrientation/index', + 'pages/api/device/gyroscope/index', + 'pages/api/device/memory/index', + 'pages/api/device/scan/index', + 'pages/api/device/sms/index', + 'pages/api/device/vibration/index', + 'pages/api/file/index', + 'pages/api/forward/index', + 'pages/api/framework/index', + 'pages/api/interface/interaction/index', + 'pages/api/interface/navigationBar/index', + 'pages/api/interface/background/index', + 'pages/api/interface/font/index', + 'pages/api/interface/pullDownRefresh/index', + 'pages/api/interface/scroll/index', + 'pages/api/interface/animation/index', + 'pages/api/interface/setTop/index', + 'pages/api/interface/customizedComponents/index', + 'pages/api/interface/menu/index', + 'pages/api/interface/windows/index', + 'pages/api/location/index', + 'pages/api/media/map/index', + 'pages/api/media/image/index', + 'pages/api/media/video/index', + 'pages/api/media/audio/index', + 'pages/api/media/backgroundAudio/index', + 'pages/api/media/realtimeAudioAndVideo/index', + 'pages/api/media/recording/index', + 'pages/api/media/camera/index', + 'pages/api/media/richText/index', + 'pages/api/media/audioOrVideoCompose/index', + 'pages/api/media/realtimeVoice/index', + 'pages/api/media/screenRecorder/index', + 'pages/api/media/videoDecoder/index', + 'pages/api/network/request/index', + 'pages/api/network/download/index', + 'pages/api/network/upload/index', + 'pages/api/network/webSocket/index', + 'pages/api/network/mDNS/index', + 'pages/api/network/TCPCommunications/index', + 'pages/api/network/UDPCommunications/index', + 'pages/api/openAPIS/login/index', + 'pages/api/openAPIS/accountInfomation/index', + 'pages/api/openAPIS/userInfomation/index', + 'pages/api/openAPIS/authorization/index', + 'pages/api/openAPIS/setting/index', + 'pages/api/openAPIS/recipientAddress/index', + 'pages/api/openAPIS/cardsAndOffers/index', + 'pages/api/openAPIS/invoice/index', + 'pages/api/openAPIS/biometricAuthorization/index', + 'pages/api/openAPIS/weRun/index', + 'pages/api/openAPIS/subscribeNews/index', + 'pages/api/openAPIS/wechatRedRacket/index', + 'pages/api/openAPIS/collection/index', + 'pages/api/openAPIS/mineMiniProgram/index', + 'pages/api/openAPIS/licensePlate/index', + 'pages/api/openAPIS/wechatVideoChannel/index', + 'pages/api/openAPIS/deviceVoip/index', + 'pages/api/openAPIS/wechatGroup/index', + 'pages/api/openAPIS/wechatCustomerService/index', + 'pages/api/payment/index', + 'pages/api/qq/index', + 'pages/api/redirection/index', + 'pages/api/routing/index', + 'pages/api/routing/routeA/index', + 'pages/api/swan/index', + 'pages/api/taro/expand/index', + 'pages/api/taro/hooks/index', + 'pages/api/thirdParty/index', + 'pages/api/worker/index', + 'pages/api/wxml/index', + 'pages/performance/index/index' + ], + tabBar: { + color: '#7A7E83', + selectedColor: '#1F69FF', + borderStyle: 'black', + backgroundColor: 'F7F7F7', + list: [ + { + pagePath: 'pages/component/index/index', + iconPath: 'assets/tab/component.png', + selectedIconPath: 'assets/tab/component_select.png', + text: '组件', + }, + { + pagePath: 'pages/index/index', + iconPath: 'assets/tab/home.png', + selectedIconPath: 'assets/tab/home_select.png', + text: '首页', + }, + { + pagePath: 'pages/api/index/index', + iconPath: 'assets/tab/api.png', + selectedIconPath: 'assets/tab/api_select.png', + text: '接口', + }, + ], + }, + window: { + backgroundTextStyle: 'light', + navigationBarBackgroundColor: '#F7F7F7', + navigationBarTitleText: 'Harmony', + navigationBarTextStyle: 'black', + }, +}) diff --git a/examples/mini-program-example/src/app.scss b/examples/mini-program-example/src/app.scss new file mode 100644 index 000000000000..f170d325e905 --- /dev/null +++ b/examples/mini-program-example/src/app.scss @@ -0,0 +1,37 @@ +@import '@/styles/variables.scss'; + +.api-page { + box-sizing: border-box; + padding: 40px; + height: 100%; +} + +.test-style { + color: #f5f5f5; + background-color: $color-success; +} + +.tag { + display: inline-block; + text-align: center; + width: 120px; + padding: 5px 5px; + border: 1px solid red; + border-radius: 5px; + color: red; + font-size: 20px; + margin: 5px; +} + +.navigator { + padding: 20px 30px; + position: relative; + display: flex; + align-items: center; + transition: 0.3s; + } + +.navigator:active { + background-color: $color-grey-5; + opacity: 0.2; +} \ No newline at end of file diff --git a/examples/mini-program-example/src/app.ts b/examples/mini-program-example/src/app.ts new file mode 100644 index 000000000000..2c34853faba7 --- /dev/null +++ b/examples/mini-program-example/src/app.ts @@ -0,0 +1,55 @@ +import React from 'react' +import Taro from '@tarojs/taro' +import { TestConsole } from '@/util/util' +import './app.scss' + +class App extends React.Component { + onLaunch(res) { + if (res) { + Taro.setStorageSync('onLaunch', res) + } else { + Taro.setStorageSync('onLaunch', 'Triggered') + } + TestConsole.consoleNormal('onLaunch', res) + } + + onError(error) { + if (error) { + Taro.setStorageSync('onError', error) + } else { + Taro.setStorageSync('onError', 'Triggered') + } + TestConsole.consoleNormal('onError', error) + Taro.showToast({ + title: 'onError', + icon: 'error', + }) + } + + onPageNotFound(res) { + if (res) { + Taro.setStorageSync('onPageNotFound', res) + } else { + Taro.setStorageSync('onPageNotFound', 'Triggered') + } + TestConsole.consoleNormal('onPageNotFound', res) + Taro.navigateTo({ + url: 'pages/error/index', + }) + } + + componentDidShow(res) { + TestConsole.consoleNormal('App componentDidShow', res) + } + + componentDidHide() { + TestConsole.consoleNormal('App componentDidHide') + } + + render() { + // this.props.children 是将要会渲染的页面 + return this.props.children + } +} + +export default App diff --git a/examples/mini-program-example/src/assets/api/AI.png b/examples/mini-program-example/src/assets/api/AI.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd4b8d15ac50b47a9f02ba6afb92e2a1e279e89 GIT binary patch literal 2333 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 literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/alipay.png b/examples/mini-program-example/src/assets/api/alipay.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8e5181a94de63e5ba47c6871018d29929444fe GIT binary patch literal 2302 zcmVPx-xJg7oRCr$Pn|+KVMHRr`>)B;pKO;s^L31Z3M;5c2sn@gX8WB#^$cM;r8Wj?Q z(TG7!R6v8Eq6b`zBFTXyqJW4X<^&^nYWzSHF6-{q>(RZq1_c!%C`8XM%w+av`k8m> z-t_kNOn*%Gx_?Y1`^Qe#d-dwquc}_Xszw-=RRnOzV>N*xkeEjdfoudIv$L~Db~>Ho zL}ZKa`&$ulLhTZfCC70dLd1thMn)c)o0~hh-a~p_J!E2H;@RWl! zdTD9t>5TOUuC{JKi0Ewrhhhx9ojZuNct6#%da5ibLP zk(k^fBA#!pRj;X}R0f2IUIPGM2Y}5n%lG=ee^s;Doa@)4dc8jDIF3R&BUbN^0Prqm zey|E6l>l*F_Y@KN762R-Gx`!{{z9IP5Yfc|@cEd`Q;7I>Ywi7cbY-bqI*_Y{E<%DAq3mWX^e zLHD*Yp_B%s7Yq?O&GWn;4gw>THO9ON5r0r6lv057g5mrA>zmEyPs@N2>ZsT2r#g=F zld7N$45W`|yw>x)2g-yI@syJg@fTG<83>5$y3-;upU~-7F>})IrST!6836cY0+bnR z?LyIp3Imy*o<6?Y?H&%OqQ!BX>HYin?=Nal9=S%N(eQnLP3LR1+SY}Ih2Q1T71k{T zWO8!ysL|2UH6gT!R5na{bYjxmK$+wzRagoJU`7AVky!04LVSdCYuAo`!>t zXhgdbw}{ARiU3hvM073y+#a*RXXaWSyK(^`qQ3*ckV}$TC2O(LZxgVf!AFoB3H%?`U5i`m&M3T zK!}L-1;i9y!_2zzDqN}n5)2>RKwcCx%wuLsGd2~7>$>-d$eUw|Zer&5_EK()xdIVa zCd)J<3Ov7`nYZMQlDOA~T-nJ)G2!en7s6 zh#v`s@~i*>kdxEE1bgpC%d4idb$?YcCiONPH@AJBKisd^bGC$ zbgTscw*tWXW8SgmO%{QZuzIEs8EuG&3QwvPM5(2CN6@eQlWLM+)@9cia~>joBlhMB8=ymh+^N(i*V~m+ZL_M+?4`lL%?kZ%A$-TKFBE9+)9&-PN znO~X3=mgJ76MGZ@u5YzkyR#&bTk0@X_fG(r=oj(_DF)5QzA;V! z5x0qm4&8oPE=I)N)>^%Xl2{TZ`C{AuU~0bqM*S-;JgF=jg=>b;MoT<68i ze2wY}Vh6QjORr8Nq8_H-YOTF9TBpZ~S1dskne;NJ5R(iLk=q={`EjSyd0=d8tkdaq zW<})0UMa?25Q#{0q?*GBx9~}P9utw9^#LNj8UWr9t%Qj8Zr;3k`<^{}^e82-A~pSb0s2P2msH|(}o_7x7+Qr4;(n~kA8BQfCNx7 z9Yg4)+~wtEJ-^9ZMC48p+1YG1m$C@yR$fFd3BZhHkU0PVXEO7j)9Pjh5*($fBqBH~VKt;QI+i!P@Ca3LbT0|1`aL%|)jTJ7?Mg$2E=ms)ZG37}*?$_#eS zdQn#=&J%(tQB#BuA|j8Cjq$#H`!oSHP*JaJx7(*7q8?|S9w_@20Nl*X*X2>38%UXl z-FXaMue!N`s9_uFIz-u^3IS0gHo}FOvSFyc!a!8`|9PdV3K#0Yc)(SrIbdt-|#8pYIkspSv_ObZ6FcZ;d!10fu)pEfkdE`dimcNa}FY^ zXFN07>ni4{(t$*vRQY*`ey}*9agD6ABSwln+)vB&Ehex{lLX80j<4{sTM>R#n6ShDWQC)JYetz6v@NDT21NDRpT Y0GT_OfoasfjsO4v07*qoM6N<$g65l0N&o-= literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/analysis.png b/examples/mini-program-example/src/assets/api/analysis.png new file mode 100644 index 0000000000000000000000000000000000000000..5f824d64ab8f411a847150f8eea67222ae531b86 GIT binary patch literal 1596 zcmV-C2E+M@P)Px)_DMuRRCr$Pn|+8>RTRL_dBd`0Y*s>rec`gv_vU-&j>~39feU?5k$sC5lwyLW z{}@ue`HoJE!Za*B{&v+uyfBH%pjqO-ykHTi~uG)$_XSuDl#Ggk^re)B$5n?njxO&EeXyw#=Ltf z7vOX{-J8$n&o;(ztvEt6gori*z%vEmADQ`@Qxymitpk7!HXdf)(y>64Qg@4p1<`LI zh{!%;%uvSxab5S?R4TPmL>5&B&&)OJW?LtD?vVfS`gni#uK#D;s zr5+KHO#pCFW#EXoN^AXkM**?H646osc&jpS5g9hdJkU`<`uqFO=<4eF3IM!9F+G5Y zKLEfg064Va zX6D6Fd#JVpLPXC4fNjJkhlr?p-Dwb3TLB>=+fCbAQ5>%_^O~sHVdu3QkT(HfMFD^h z0CSl6_l^YOy6ytUaSjxNN5u77>&=b8XsZnIJa0E5-d_N4w5O-1FO$jq+mS$&Qg?{R zM}b1R+!(XHQ5bELAw*<*ih;?15Vh7i-3*Mj0766$1HjvX>{w)s`LH8_^!4?1&zw2) zC;-eVWXGpk>)V@!F{K&edET7>aE0SIhqczjtvDGb>v`T9M0`20vs|yW{-zaMQ__bJ z(FXufG^ygOf#}0&u_5;8TRU8{*=F?hr*vb>p{@5YO|TM8vWuN)dU=7-J7<$_5cVTev+d{{2WQm0H-y&Ok)}0Kklb zg5Q{VPMk2TuBL%hZhMo;>KyTVp0^DVR|bMO===UqE|)uAFEAon4FInc=Q)lul+9-M z)st)V`=)>p(GCE3G+=BD5tnJLchz%1DYeTM*1)_>Z*T9yk&%&n4OxeXO5Y>mcUtS~ z>e*`M`-XrJ(F{bi0R^uJk0atzt@S5S9UvlG2W&l<9Ei9_YkgOkd}U_&zCSmY%N>kr zuaS9?f!GxFegAy`u)Ric{94G2Oe01uSOE9}0Okkeb};j@N*PZP+j)ihnAlMhR)@ApyN~ygfa#O&@Y-TP!!!%>N zmP{ld0Pr6GbOjXccN}MFHk&=%ibJmJUg8v6)ibPHjzj%yFFk`F!5~{gR^oo}QkrOeQnY zioJTWp+G{OT6Y#;*o=v75K&pf6{2_pGd~xb(GW$AWXLvVetfDNvhTFn9V|?Ly%$~L z@+&Hkt6D5Z9a$U{}DKjMJadUUFNhzjJSymS}#PKSjcA`6T$Uw0Ic%G?x7}$A#5(4A-ff6@H2|Ck03S26J(fHv zV_MaalM-b7~FZRHxNhy uBx)bh0Mxdcnq)|lAx(CwZM6;>2 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 literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/canvas.png b/examples/mini-program-example/src/assets/api/canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a11d7a66aded0526040ea4223560150cfde3c7 GIT binary patch literal 1035 zcmV+m1oZofP)Px&#Ysd#RCr$Pn@eaEK@f(kf+56s(TnI!ysZ#S_iQ8xx{(}>qLLg`6fZtdFN%_z z@gzRLgApGm6-6-kz+4rhC_(A&NWjHIay57n0*ONsvL%BX+)QS6dLELE)*iR3s;j@L zzk6V+5%{-&05Xq-1Q>{~A{Yn*slG`pX@#`4wXK<*oo%j6vA({3WN2vU$5QQWOA16v z`2+yEe2eebT6h1iK;8gA!MFH9t#vyC`9pw#aD|i!NGX@MWTccU5pf>?2qM~?kr=*YoE9SL2Y`*X!E3~B3=zAOQo}a+SOJkzt^LM-lPP za#(Owjzo0K7;`r*kX}T*;17a`?MkV^s3ewR+;N-&5qU@Yf*%oGG{*EYkTL-V!WHtH z087SK2@HgRR6o18LbyV>LSnt&v1C{>EE$$eECMVUmQ1XI;Zues!;)di#3I0wVadcQ z7(QiKGAtREOe_K{8J0|}g83__j1a>6rn|kIiNDLo`@1H;>sF8p&6$YahJE7={QCbd zwLpZGR#nmZ8XFr20@|)?TnN_b4Z5z|Su7SO z{T`7mRn}9K4IRhnBchWbekZinx8uaj=kxhesq`tx2N7>7rB20(7iF6%5Fx|?M0^-B z={>FWk*I`%#-)^J0pMED7!e&b#ym$@s}L#WGXU5VGT9ET^`a)YI16ZPZQU?8H|Moft`6{fuC?A9 zCtjFsCP0J`=MeEq$Rs^l>&sarTTPNgblwN^1pvoGHrdpz zqN#wCkLOnauq7bDaU$Agj2TV))GGbGdwMf7Gw%RkQ$XC0uIqNB*{f0k5klNR#K2<@ z5%(*l9%l(-K9&$-r`Nk4a_aOMV@@ZXH!%>$aSjpD{g9-t8)MESP0GekN_hzYdP1ag zSSj_uCXU}GF_4fOm0tY!6B831qobqKNfNU4DHIATCMPFfd$J7hNqn<24UnMgVP8t6 zQupxiaM5;QY3y2BT5@%Db>3B1|9+DAB4c78-sw`g7(|?!o}Mm_jEqdBS!7(_=H}+6 zhK7b55j9o%CcT)D7)ad2my10E@jWR9!a%Bvmn+1_=NGJO|6|y5jspMy002ovPDHLk FV1k8%%y<9* literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/cloud.png b/examples/mini-program-example/src/assets/api/cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..53a4e5c14f44f89af9f13a77b4139d0aed4e38d9 GIT binary patch literal 1922 zcmV-|2YvX7P)Px+JV``BRCr$PTYZRBRTMvGc1E%&!%|85!^ommS)F_Du)BSLK@z5EWr>y_MQBkZ z8Kq@XhDr88Wf-CuSSg8>m6?b_jb+)o_uiQ-1OKs7wvr|33v_p9?uon13~%1P8Rz2- zGcNDKW8uxc=lss^oqO-O=iEgIS{?%!@R83zK#0pD0zv{piZ2p@hXfuHct}|rX)tAi zDbs*croFv=cu!Bya74TW0Q$n=a92l1$H}sMyGEUBK4se5+lTh{_D&@vW{laWwcb^#5z%OLL?{%x8vyJx$vuvUwrQ>Blq#>Betr@1HvnAZ zQrt&GOSIN+l>^A#mvjCU0KDiy%JW+5mDR}h8e26Xobx>ZaEnX$5h7Zwwf@2nz>Kkb z5pj!$_sx+~Zu3KjFKY;6Y$YN-=O)7#Gb@ou{NyK48_f0g_WtQ1vrQ@0;g_z8J%lkf z77;Cw;SMl%(e#~+tbE2;8zK(adhOI~YHEsic6KJKC8lCRIOlHyz@tt8h`2yX`EIqK zijC)-uL6J-1^OfrF-}DL)9G|PnN0pwE|!W2X>D!2Je5k>T_x8LagUU8O1S{a?cdVU zazP{#`5FMCXBpc~L^}|1hf->9sd_3RgmZ4U!|hHbM0BUt`r}d+SJN*Ri(O}ou`$oE zQsfX(CjdOFwYD2T(N+;5jIq}caYyQmyqXrGTnMpNSJEjtPgu&BmB%tAugb-0<%nU@di@tLg%;Gz&l$ziLwk$#zWA|m^4twUvwRAdtMKYQE zr6JgGfXIXfi`~0nrpsxi)cJ1AB@x0HyAc4MK*Z@DM(Rsj4_8i7R|3xsnmi-+*Ye0CA0J7W%G$> zLXHs5`DOrE;8LVefm4#bP%bWA?d}tXE1s?3dz3mBScY zh=~31N2VP|&iO+Cu-@_VKL8k~lsew1hWLexbACGjICD7vT0-ox-A1I@Ht5%mtf4}P z$wcJLrk%Eg*mdI8Y$qaGr?t+@mHPEX8ch!8{2l<<>cDlx67sX_ys}U!wW-m-*8&e? z>@h^l)rxJE(Gt=N0Jap_-w<(zlyYY+05qCRA;bnETI9gB))Mj?09@vHxkf4VbfbZ< z1s=}1EqvuNYD9FuCFBPH81GORS4!DHZBRF_@~F-HSwg;aRoHvN;qb_gj*fo@Gb2KX zokVn-!^WgiDvDlA5z)-Sbh34SSjN~iyMQ|1BjOuU$|aa7BHIMMB>-}upyW*f)J9%FR??Jlb~;N1y{;CPsQeHjt}C_vTvGMlD$Woyg@~pgV$JW8 zm1u0CZr=cay*X{Of3_f1ax0k-w?s=&C=|Mih{h6;{YRj>HAJ*K;4%9Q8#e4%JRUz& zDVT~0sZ?R3j|&KKeW8GmfRN&oHt>+ZLjn&eYhw$hjEk=S0q(c87!tf=p8x;=07*qo IM6N<$f)sI%GXMYp literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/devices.png b/examples/mini-program-example/src/assets/api/devices.png new file mode 100644 index 0000000000000000000000000000000000000000..827aee51e439dd7b3a3981ff0a91bd8743aa3858 GIT binary patch literal 807 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 Cb*X>= literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/interface.png b/examples/mini-program-example/src/assets/api/interface.png new file mode 100644 index 0000000000000000000000000000000000000000..f461ad371a939159f7d15d9da7524c00e8fab8e6 GIT binary patch literal 2549 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 LNkvXXu0mjf2LrxJ literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/iphone.png b/examples/mini-program-example/src/assets/api/iphone.png new file mode 100644 index 0000000000000000000000000000000000000000..288291a3086dca74a0cbd26fe4a86be2a8b1b3f1 GIT binary patch literal 812 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$oCO|{#S9F5M?jcysy3fA0|V1N zPZ!6KiaBp*8)l0H3LO9cS?~GX#8WfW)(TlXowjFcO@oQo2I0U%rCdLm%C41}nJr2X zRN)YMqmq%FSXuGjqlw)ynv>PQ`_{#Y#R`J>`ZH8-| zCk#G^EA3)`FxBwc?tCBlOD49=52TFmt1sGoW)4$C$+^8BJH>+(eU*$D4xA~UTinl_ z)cUC)FE5Yb!NrW`SqytxB+j#VF{B+=Z$6lC)z~ksLniIv&YN*gk1WhwzO3$SGugPt zVg|F|)W;Uzve@^De!4Go$+@XxQN}Te;(r^mGiTM^x^d&joN_-0N2f&^voxoA^>r-c z-|gqJJ5c1N(h`wRrzDb>G5GvVJ$WU=_nkA!HKDT(izx8&*ot&8_ zQkNO#FTkRjy>)razQt+>K@+t;~w7Q3LKFbC3uAH#t{`>nYuV(%JVSB>Hu1f)!bl!iT l{!o+oLSVUT;1r*qjN3lnFE;sJkqAuw44$rjF6*2UngGJ$W2pcD literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/local.png b/examples/mini-program-example/src/assets/api/local.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8cc40fa0424d1ef026a8bdc3ea477c23d0cc3d GIT binary patch literal 4015 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 b-$VWbV@o`c&hhfF00000NkvXXu0mjfW3Jm~ literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/network.png b/examples/mini-program-example/src/assets/api/network.png new file mode 100644 index 0000000000000000000000000000000000000000..d7313b12c47bd41e84b6cb6c624b6190b017ff50 GIT binary patch literal 3559 zcmWlcc|26_7soHMWF0Bl8HACt3>C7Eor$qmB+J;>Bs-PN*dm0H5?Qim&pLh)Ut^Fa zM%GkgZAfEih<>-{^?L5}&wah_x#xU7=e(a(8>A@@rwAti06gYq2o!iC{%sC6@Oecb zw;4Q6hMKwD0RY~?f1By)d0tWQWt=&}z&@&&dLus6-XZ_*^TUG*?fZeuOgGv2Ia9J~ zh>CUP+Oo1Iq-B%ee0uP8BX7Ka#q)x?!!y@n*BN_>H{72 zoV^H3`NIYm`n94Nt_1)~5Zm)fg3|uNdI^8z&z(D0 zpr)o4rG8-45o_D_IdJo?YvPn%2~HTmu8Hnu+cnl~h@N+>^Zlqkrj0u4q$ZbFRvvfG zQ7^JX(qF&=Jq*VFWH$~7Y@*IIXh0$@!=0qYQ!hmC^Hg>DiCowvjK^~YYP&F`9Ieqr5>2uxq zgV>;;ARI7l2@67~OT0BE4%gK9o12@5%upk5l~XgL4G-R}N1*)t)_;tTk29ka#PlE7 zma{~`q0rK`waHgb(th8xjm>U(q0!^M0ReN06>%9@qRF0d?nvthC0ty*W^wz6W_d%y zmPbNDLh0wg1de`Inb?$x)mR-EY~9?Nl(JijZ;>fi&R4#rOCQP<#e1!Yc`nmWLJ8sF z;gP(N>Br-bv-@6GS9ccYDyV`3Qms>)Q5E)ANcLZ_~Z)MI98udZ;Kodj4&gWtO=1^r@OHtN_Z{**7>i__!&r zxe({Wrj^6~FzmOMa`H?|)XrCy*u5V+$#&OB>h%Af$eaNjg|z%hBoaBfMz1Vc>3XZe z=S})7F8aPCzb;Ufx~7z*%zgeWQH<|PFdBIxRPw<2+mNM(sj;z6{IBmLm7%i}L}JhC z%Gk4Ez{&?*UE|+3O3@Ok8^=PvMrirbR>rQW(vW~^fBo4QCyp?wOPAUeFI=Fe-=F5N zCgr81q;${C%{i@i9eV;?hmcuV^6z2L16u{lH&4z4w&Q;?;xJeR&VC;Od8AcCL&Nca z{;vTfRyENQ$B_TM$5rBVx0MQ{QG}+mZ+KE3fhaY+r3nl5k74wD8F;WKiAe=me28vr)6a+H`Len3Z^b< z1Wa3X#W8+y5&v-Tp9Hk{sZsk2_x@_yFYNB_c8ZIO52yMvCrxa3Z8nq>2!z`EUKl#J zN89zwYBWKB6KE_`xE>t5b<5O(4Y0Sjzd1TKwxEza!`q)O@vdVwu$`xLqmMSOEy)E< zU2dKe6bo`%^Z)9bE=ZKSz* zr?S1PgF_<$4pTAV+ZD{%H*Z+N5SUBPW5uR75BZQ<-SupmfYSETbT4Y zCiC+0?8U3cLsdf-d;F!fyk%D%ot&yzbFW!h{o&T<0#s!`!h ze*H2-o=N<%gkP#vAoMM^POOTC?gL2$ZZRVllA|WfhVI_IYrS8PiiKbXpxj10#2=5- z)3r~f_LYKC+_OeUvgnZdmqSm)%S#^sK%vVM)HqE!3!6=Liw#nPPpFIdyLALFWSZ^r zux^qY@kqp9R)zhpCCh_l=@{Nf_mz{!kB;`X>gwu}+uPeKdd3bmvSxHJ2JstZl96K&TN0P94 z{~Kg_EK{+NnTn#~Mi+VWDbP>+b~JjJnLRx{?bGYFT?$$utu25&gjqAQ+GgQz!;olC zk|19l=ein(PvmOgtR&D|ZO!ugBua?^!Y*St6%?$&Q%hKgHNUjTne8|!$RwtBLM|8f zz1~@6S0)*!oncy0TU)y%w#j8|s});Pk=OJjLiSYN)2CBl`Ai(9G`b_H;cU6|sH^C2 z%p!)^1QVZ^v_y75CPw`8(8edJ32-G>y&9HgPf8e0)=&O(Z`*RCOX3Gw%rakz zk%qkp%JaOU;)BPpn*bQaeqhT3I;i>gmwviGSIj&B{M1*Wq_D25=j7KqHL|rz4WBB{ z;{x*@A$>4|?~#P6s;aI6^Ctjw-*&3}i#I0%^c|)K;w#5ectkIq=!p{MQczM-htrs4 zqTyOv2W5CGJ;RNSjXw2x7C>e5-6Jl$hZ@bH%kN^Owb%ia#T?k;olIu7`3G=tpGu}e zKiP?CGC6TsSs;{Ow(ReG7(B!6=>RJevX*Q2^I@FE=XjbF()S zwKYk+eU7RN9Sq5MuQo)D4B?#mk}4p-co}E)j43MB%nW9^N1fXzIt#&&Rk>FsCUSux z;W=su+bjaVo_qq6=VTZ*F);`8Hay)o8{!eWc5$21Gt)COziBENgZ%HO>u;TRt~q zME1{|RJXRfDsc^#6op0`+lo0jIFQ+M_%;Yc0>Q#JC`gCt%OP;Jrbc%bR1-haG$%JV z@jH#N2VmjN5rDk49O-x@S03LPL*IDzDy-D2<@5AL*D+_zRc5jP)_QR5^Kh zy%l;4pV09q%ciC#VLF|D+m)>XL?7H7wH;3Lz=vXyfFxv+-4IJ7)}2oa4<{Q%Fb=D zQ8`0-Z@VIq2(YsL1_u9Qc5o=*g7Px|7Sgd>%jzc% ze0>*sMXao}bU7MEQIpw3Sy>S)j}G@SyKsy+?`<%{ApY?ru_iSr5T-$vSTLggyb;o? z(a_d*w{nj9g4aC_@-=W zVCbW^K5TM=yKplCa6$@H@Tf(3w=*g4Rv zGes{?XXOtNmP4^D?7T{}sH>5{os1ty=-|>Sh0=R9F9C7dGasb7`ENUa(r{Ix4Atm7I4;l5TB%{RO`MZ@?BaAY<~q{_Weh*5C*#G5t97 z1_AXis&sU4sLw_DgEM5JdRLBL^NexyLf|Dy{NLllM(#^DJqA*E{4Fg<7lJ!tn;JIx zRB5M#R+7SC^i+t)4J2}WbAW&1Qr&HwrlzJqqigrxWfXxK{bFOErg-(&H~*d1poVTLJZI9S=fzZWC`keUTEIMCB#qie90(NXdHU~UYt|#$yNId-@4ea zu&}&Q%JnZaMl+6KfPTRxHU6`hRp&tTl?D3;^joeC@Lxgh2$l#`-*s2<$76&N?HB7e z54ao2&wNkRS^@62SA+o2M_wzz(p?6KlGimc;HcrMsHnJgjAu;6*WD)GWX?J>4;|#Y e$FVc;mpN@DB78`hv;p4S0CQs`qQTJp!T$kxOXtA= literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/openapi.png b/examples/mini-program-example/src/assets/api/openapi.png new file mode 100644 index 0000000000000000000000000000000000000000..da04b5702e8ca1f07d5712c3e3b207217f22a5cf GIT binary patch literal 2411 zcmV-x36%DUP)Px;B}qg5lGzDEy!3xEVhOXPW=g#gHw~5w*3TXVnu3If_ckVH_ zd2jOe@#ejIXJ%)KnVU3C=AL`bcfNP-&$;(3LbuIf0K0t5WuQw)A|kqkbP35`B)Spu zQi_mOt5%)f+uOU6na^hCihmpi1@i!|AR#IK3m6{mFpBCN#}-%=&~%( zzVBa&h~JLMJV!*QH|wbFxCJ2u5pS1LZq5Q31i?kj{IjGCGvADe-zB0y*gEMVH!p;g z%jGl1#>SqBEtJU!87HD*PJ}dCT%%#z`uh5A92pszb#XXPw(W!nA+`X(Vj}uvWLyaG zP5{^$2gA&pl~T7i0vH6rL(Kf190x`K;6@@E%X8GWzpaD_A>~s#8N_T3=y|ztCjrQu2!qNT=mE0 zTP8#Z@l<%^o`VAsKOm+2LHx&ZxqQm(?Ciq;;5&dmFS$ktAua}hAEr&ALZNVGd_i}x zb6m6~LWB_JobaNrg^0eCvYH0Q_x(2@;th?ya%{|_g+gKN*x1;=GZx+oGY5(OiNl8v zzin!2>X0iLEfJD(aEk1oNJRh515+xMRx|S^W_}F-yaE7DM#Kqb-i3%#N_l^tj&LfP zl)#LSxBH3c{Wjy1GEGIuz`(#+Jv}`pb2Zs%y&>ZHQcANGcC3XFHn)p{nmtd%-B6dw9(ag zJLOZ7L8Ja^BD&kfjx!-b2oo75LZWs^YyGBbwfaXF!|j$G7#LXD)6+8v04KzBKTbp! zxY%lj5VLleOX8^AO+;6_7@aR!-}kp8;#G0|p63l#DwW-~Hk}Aby9V?;Z%w6AdCb<} ze99Gz#S1*oOJdnZMAzHebtU8$X09h~%`RNF;F^*1eg9EJTpb(xBoV#YR+keYLI`s| zaZ#k4nQu@^eaY5XC**wJ--w9cO4v$GBGd4=5;7-eG3mKd>ZhG>)Ye9^SnLmX!TJyv zoYsVdhcT14)SKsdD=L-B0b8)0kn8X7U$S`d;=h?YnOG#>93`1~7_15Leg6_ftlw_{ zzzh*B%`>nN{X&Q*0pN`>+jkPtCL1g+ge0#4_YhIp#z?1Sgb?P#T@tf<9}%s$!C_5^ z5aK!jxFe?YrA)|I0pOb0lzBucRo@J0+jz1;-nTTH9X=mr#o;4w*QfWYI9l!KBNJOT{<^QT#6Jn}; z3WY-btpxyT0ATJR%w4L{vy+*hsMTu26B85WywZ{8`~F7|@rn?KdD;6106fLa56sTa zet&Xu(rm%j&6*G)L@xjwwa`3+h}-jC<}CDNiU=Xh4rj7%ksYgl?g%HWNlBS*n;xk|s^%#DjadH+)6>%@ z?ccxuNM01=^`}flS1h2lE>){lvvs>q88gE7{q?5EEwQlfM#Qzr>YoN%^g~LidLd1o z(^>sN5Nu}VTU)^LfKqC0mW|v92}yYn5#O6obcmUEdY*THnfm}>1pvIL5VsxEC9>=L z{^f}HmE^$;0IaZ>(g~#$wM*`HRV|*a^er%@i9BJ*0)uw)lpkgod}7PhQwUV%x_1;*D

s7*2R?zA~7gfR7} zAGHOQBexF#z7}o$Ve)w?A`UY15=4AjYb^_fLS@gMJtpyVYE2R1Vj*0AOfj!n-Rpl1 z;i4myHO0C25|O!4pSL#egha^0LK{=}W&Xv>DYBe1C#K$X zdU|?!Z*TANTCKJm5$n&6k=)UvN2grxL)*dDf)LUU;Pa)UOGtv*E+Jh)vL{3?6H_j2d;M(Y3o002ovPDHLkV1m?8ifaG> literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/payment.png b/examples/mini-program-example/src/assets/api/payment.png new file mode 100644 index 0000000000000000000000000000000000000000..e6ecf00625e52372680290900039abe8cc26f0d1 GIT binary patch literal 913 zcmV;C18)3@P)Px&OG!jQRCr$Pn>}b0K@`W|Tkx)k9D*N}h+q*=IgWc9f+(2SSO|)ssT33;7O4aa zJ7a4TD`r#?vT_N#%R4ykc5i0( z|9<;_J0G`;Ag>q!6drK`0>pBJ01+VlFB0MqamWxHQm@xXs@3X2W*#YGuM`BqFGT#L zwf;Rwf8UgGUH2k0Uk8BtpoR+ayT{Crj4^l8^rix7Hk-4Ec(WjZW|GOw&x|qWk}4$v zA);3Ra4OSL3RV~q?FkVk}w5Ap)eVi$ZB<9A^R%_afqQ5CqHNCjf+>f5YwW_hrX%!tF(^b@<Z{N| zT-Tjv=IKlp0C=ypK9W|a&_IZYGs0Lc&disMF%OgK79Gd~0JxMDN~KcS*>1OglnzK3 zPTQaq?##fBxNLJBxN=) zWn9-i&CD;NN3ieo&2;pf6(*ts0MG$|?Gb6QJGJdwyGNPXo-MWz@wQTGA!qSrmP16( z0pM)3Vh{v}JkR^s+qdp%2>U7=sr&^17Bj2JSB14Zn7fm}m&TYgv5c_w645>Y_?oXc zHcicLt@XFQK*Ar1=okRJ-830FXqcH@V~nHaj1a~$%V=- n6d^z?*aAd=^v^$Wh{fk0`-IG6_K%U-00000NkvXXu0mjf*j=1s literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/qq.png b/examples/mini-program-example/src/assets/api/qq.png new file mode 100644 index 0000000000000000000000000000000000000000..cc5700df4bd4c6b4bcfd5552bb84cffc5fdf0f55 GIT binary patch literal 2568 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 LNkvXXu0mjfJm~rC literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/swan.png b/examples/mini-program-example/src/assets/api/swan.png new file mode 100644 index 0000000000000000000000000000000000000000..c8917b87cea57f5dfa4bcbf2a0587c6df58e63be GIT binary patch literal 1823 zcmV+)2jKXLP)Px**-1n}RCr$PTYZQXRTMvGo+}7JAM|Na87Z-4?7L@nx3xn3LlpYZi0qpR@}rf$ z%%Cq&Bl3^@h{F8Xpn}X&5VeFvL!)ea?wmVI$r82nA(drO5ew3;GdJ!sBeUasZ|2T> zZ}pG4FzjRJo^$X0y>ssQopbL)$lC}6Fvnvg0y!Wti^u`V0ja)8x^v1w;rj)3U5ZN+}IQ%?%MXFl(ihyK7cf zK|wM*lW8AoLs{vqMY@&Yyz#jehzQ4zH-JjAdq*yFoW?9w@00^J6V{%=`jvZUv*Vi|Y zMqipfbpu2QaU~*d1c2$$ft6BgnwpwcmrA9d(@dyRpZ50lONNGq79--5u|E5hQuC#h z{k7;1W$OY+;3A*LCbZS}{WY%ZcGqK~p^jp)*kM_g2IY>ZUPQd19xhZfAVP>`h`2Pi z=;xSuMLmIt>ms6O0pR7BH7=740s#wIY2ncu8sQfXz0=wSfpih**U zlyXyA9r1pd0U@Gx0QfShuuv#maq!^5AF@s+i(Fe<+XT<^zK_XX$IPWH`Z591(a~|v z;Nak=0B}t>sPFsdyRQ33mPynqQ!EzGvn=aqM9-nIW5-VI?(Y7}RCgvoh)7416QLCm zr#p_b-*oVL_P1?&no??CL}wQ>&o>>z7?3g%Wf3#KVLGr$|F*WaNxtuo_dM^Y>$-iF zWQnK~0M>@@vqT+*)nq`vv7y)A2_RcU-(+pHf zx!45#VzJn)lo}cs7&zSD-~V44St5!9l4zAeh}9vZ)d`{FIJc%5OZQ0)NJ~r0<%L2a z45|N&88c?G2_4s9SeB*D`Dy_8*7yBR*L6QhnrKW;cc075TdT=wnt%NG@vi~kEZxuZ zya~O%y+0<6Wdw*2VqTD|=&W?7lyY{O0m42+^eO;69+>_xv#nFMcBvnbss$iAZ$w)2?z&m{R&fCwRO)|*qH><}|gPEuU%JrQX(xy$ps<%L3F zigp747(~Pe9LIUTf=me!J;!l$f1^f3dLJ2P(>fSPDL+b5kQR{nh`1q8wuPDROi~5&-;bS=Q}6Jw1B^vws2+*JNRwTAqkr0f1p3 zl~T*4l;IjGPCpeOwry|FJ9VJNXmblkCL#ua-mcTSqj#ace+Q5wuYOgovI2fE8&85)ln&t(vD0(JxA=J}IRxG#j-> z0+QKfbaDm&4ahX`%H1(!hrrw%JyY-@C zbbVLARff-QOj^S>RUt&Cup55U%zUvneE>Mn=yE|6uttX6OvEezB&6$lBi@)LWSdw; z43NeUv#iuTFn!HGrs;`hq5N6FXef0LVtVG}P6Jb|^p|zf)#MtQ-06X9P5&FQ=xRC} zp8nTbAR0|TMx{Wc7gTErakM}gl@em$HmQrunyxnzfJ)~;qgrGRHrK>sh%$#pb;qVs zelx1a5P{q1+dZa8~UaE>&Qq0UR-IceL{90xlm;B;x1z*aqc2@uPAUazJA6<$&aXRQIUdLUIeqEyO75wjVZ{&LZ=y6^x1 N002ovPDHLkV1nCbSaARV literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/api/taro.png b/examples/mini-program-example/src/assets/api/taro.png new file mode 100644 index 0000000000000000000000000000000000000000..85e79b551f578e294c902f37fdac26a84d6ea0b1 GIT binary patch literal 373 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 literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/component/canvas.png b/examples/mini-program-example/src/assets/component/canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..21b38cb5814b4b0674a57eadca9b7df7d2d5ed58 GIT binary patch literal 1480 zcmV;(1vmPMP)Px)f=NU{RCodHm~CiVRTzMmkG7cn$ShJ2W<|F@{t+3ZX-b3LbV}(_&b>Jw@B5thob#T$YL!ZgfFhs>C<2OrBA^H;0*ZhlU;zR)3+QN=inX=1 z>*MkGCOY&ZKIFUM;o*BS2XJOSlw!HQzW(Of+1c&b_CPEaTQ|?f1rD*`#k>ZVeH3p1 zz#f~;c7Gy~aHI_Ro#(SixU8(Kzpt1b?h{JO2J zEj}MY=5xsaX=!P3jEs!z#<&*|H!@|n+m9kg1_lO3GmT!XToOR)>gsNso16O>uc#Me z@rKUw^736QiHnOFpY1=(1F5O0X$HhGjPn3u6nSiDXz0sq#^&?Ro=>HfTF2}4?gPeY z^z$HR91h2=dSHm1mOOSF8XBBaQ&S%T<56sg;}v^}Ck}~0dXwcmq_wrRY;tn)R0_r< zUeRn641sB>J%nSkVtjo3Ghl4SD=s;m&b#~j`y+b2BD1|^JcRhc9*ss%2n-B}l5aE` zhJZ;&aG8)+WSKqVD2hFj@{A2^p5GTk(V}gt;@%Sz6PuaI^(g)~0n&NO!x%EA)exf3 zm$;Pe1jaP|1PQc$(Ar17^^3BH5E}$AUSfl_nTlZ0405Qds_NCQuCA%f|8kYNlLWbw z$o(S@jOM|?!LD3&jd*W35N7irv-twbVT0{F`4>n6xeZ8n$$KQihIl(OJxw`h^85Yk zh(N!kf(ID8@vg%;D;xBOp-TqOXa|PeC$3_^{_5)L_Rh}ESXx&MtYNk##P(w7aqUb?*J(3gh!Tc*2r%|w;A`}GmDu3ET&^v%4wPZ)UJDF~AwFL~gBL`h z$H}%KKXNbehQr~@+3Fen&X8l5b$%y`y@Diw@n9|(qCCsw0wDHDnUv1|drJKRcPGVd z)VqSG-D?&M8D2M#Kp=2EGk%g8cVNH)V4O+Wl{2fXtn8rf7;V^ce6^Vs#e;bNy1WC% z6D$?khfGVlfy~Uzyoa{eVc@x@rlte=Xx`J)^AAR!lDgy@(`_X9VsGi-*-d|+0Qb}M ze`e*nfZ*C&QFIIP7fa>wrM^aG8im1Oc?L-G8-|p-yStwytK+{>m&^6EyfZr$41^o! zYK(bH6vnlm)AChH+VD*?3523wJOj8l(ceM&kN$RqLZLsUY<4Ob2sh3)l$E9O73*Ar zFinY#@;4e>L{_te)&k>w$}ajl!BXkb)R}>m3j)Haatn$-g~V7Y&lIW;?UUa+iCtu= zY~p#mqM|~|%a#fPf&qt_QK!tRo_huD)63#XA;9yl-rn9nmW>7jYX-uxScl?G%;sgc z+r3|p^7N4gA^~D35{Z1Ir#~awY6e2g@v;mIlp}0>Q9VikBOJ;9MyLZ_;u9&W=Ndx8uMB)y-V+-CfO`MR7PEFF!^kMP>Lfr8@n%RJI zY`NovViQ^t2ysUxN<54tI2zw9wnEF@|B^t6J9gk1*RWiAEO|6)B)lXL`r9sj0_AOu zeOt16KF96_Ec=CTpXcxrOB$(^Rs9 iKoL*`6oLOcfqwy-A`ls@Q1y}k0000M`_YZ{sc$b^^i98J`(-Wj^TPctf!kyF*S*{M^QKvU z4bL9)#U1Wvxvod#RAhb$QR}`n$1G*z*>$B#js-?d988QZ(n=gG0=XOxm)=kK^>q9E z|ND|x>Dc|A7Mavr>0WyNtpBYE!80wR7F4SLH~#SNedQ@aMS0V833iI4tL-B{1X}JYD@< J);T3K0RVkAq3!?x literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/component/form.png b/examples/mini-program-example/src/assets/component/form.png new file mode 100644 index 0000000000000000000000000000000000000000..a47bd243b6b9ecf9f00732219d9886380ebc258b GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$jKx9jP7LeL$-D$|=6Jd|hEy=V zy|GcSK|z4U;oc$*r`J=JGPrmpnK~}2K6=iP(EcK56Ni9;LjwaN6AOruP~8}@SK)ch z_G{;^?v(x1p|SN^cG>l0u~R6jpvr&jZtyGp!Dw}r@rVc91O&rDe?jnD(|ddUN*N4= fknCtUz|JD~B}Rhlq*!(V(47pPu6{1-oD!M0}4E>X;f08#H zD@FN`^xwpo5wtxm1Ki$+42 z-~zcVdn_|D_kG!TAm{a(gQp(bmn_@n+9`JN$~)=XUxNjE+}}%0&fK#2Z>rJEJ@fsR z-=FPwy!&k0=c4VmYa80SMchmt{z}fuPQPxqk?yEn4{#?Cp!7@+oJ8#Q=>uxpdWYM2ZH-?`lW798)b(|Pk_^^%pz-1pb4=KXm42k(@9epwgyO<>ykv}oq8nDZT9PyBbh zytwYAgPFJB{9o1ktPX4p-jea|b&u_o<@Ynqc`mYV+`i~!$6m9X+SwtxFJ*ThPthyn z;R`o;u;b9j-3i;9Pn~*pZtc6XbEYj8a=CLw?+Nejoz5kT?7nHA<1R09WAJ3Ua(v&_ zNe?*IJXD^eS@rN^#=%qOcfSj_o%!>An{R7%l12xMM+3{hriPsrrDE*?zgMK>P5hdA z(CvS*+OBdtIPzQB9BWBy%t(b)M1LJqp!2QuQtbp8qO?d{jvwNEEPV$u7> zUF-boMIXqDRmq2z)P^1F>YdNT^y*RQgMMdz7LIG0q8!r_=5ko-RQ8MSX&W6d+X*vh31Ph8z_ozmwGx_Ds+{p6U<-kc@V^qyq#}-|3 zxx4$xl7l6yGcW$~QSUo8M@&?wWJUFKnXi%SOm(B?KRtYTSytddpt>@xwjUW$TlOtH z@@&hBuN!w*ez9Bi;@1=JFk`Xzy$8#+oSgs4TXamzGjqGHUUjv{S9s!?2~iWZo?i|$@g1QiMlp00i_>zopr0Qji*l>h($ literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/component/map.png b/examples/mini-program-example/src/assets/component/map.png new file mode 100644 index 0000000000000000000000000000000000000000..e205568ba8c7b1e05d880b25ab17cc9b1f675b92 GIT binary patch literal 2408 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 LNkvXXu0mjfTVVr? literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/component/nav.png b/examples/mini-program-example/src/assets/component/nav.png new file mode 100644 index 0000000000000000000000000000000000000000..24e15b307d4eda324be166363005818ca7196fc1 GIT binary patch literal 1233 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$jKx9jP7LeL$-HD>VCnXBaSW+o zd^_DYBPLYjxb@^2hMcCyUM|vQ&Jyb?ovitUdD4_du3UqFi%mfXLpfhMEpl><+3~`O zt0^qTq~+0}OF>>!d9+qONXoD~!@fmOWvSjTMo(V_M|VZTi7Nm8UEY~kQG9>)F6}Qi z7JI+X{cQjI-tXDv#rfrLHXP@WU{p?E>1hx&U~)TvpY!2_V2ACQo?W|keOt43ZEedp zgK4*J-TGxM)*ZXt-oVt<^oxOM)2w^*nU>?2-yEwT~@`Pk!&` z=lAbv_wSl3HJQoDkC`@Z(eHcj78-i>wy?0Ux$~pcciXmYTR!9Q^c&WxjxuKoE#>;Z z2Yrr?zw`6ay2sh9&7Jki5+Zw=WY?@;pTFe8=@-8@?on%~Z4Yf(ZD?g>^)2Xg`mW4Z zXMd@3SZWLi;AW=Y$ z7P<5J+mfQ1uQjD@zos_-JtwQvr`28!Kg9RBJfA&p-oCDH=J%whO`mQ(=l=CYuP4r* zB_8=>lE3o&q)RK_7hU;od(=?6 z!6zy&eEs)(&z_vkU8de9tupyr+5ODZj?PleF0@QdeVjV)_#HvkC);im{Arc#z5U_` z%Xjg3F3a1EpU%nd{86HPP3NLW(JAlT>N_(;v!|^&`ZPzpaBhG?PP4qqqswp0lj2Xy z?>(GRy783yRLYUTZ-7pwf-*L3gP zR`F&YD9m=uSbuefRJ7qO#9!zo3(mYu8(|@Vfx3X55Y$qAf9b8Rv^s;^Jdt z?{dEludr`5H8^3Kw@UJsZsuaS*li{I9T)G3e3QKGcuUcWo9FloxNaZMj{DxaapT6{ zU9Pq-lJA5RZ(+aiGCT0>{H*Nk_sns(f3j>`yz1b#%I3wEU$#kcy0EgecG{VRf7jBr zdNp(Q?A8VsyZrg{=ZVp(5%Xtx+uGX3>+0#fvhQ5A zQ#kr~-O+PPF28(yGpEdOhWOWYmI=-)LtcqznJlWEW!881sNN>uzTWc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuU%v{0TQqR!T z+}y-mN5ROz&{W^RSl`${*T~q)#K6kLNC66zfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7I$IMft0d=ry1 z^FV@{U|qhxR-SpqC5d^-sh%#jN= zAx`t4dQ)(_#R#WfeV}9XLD7p8-7q0w8Uiuli5JL$C;!wuV45!iCho3zZU-3{m|l9i zIEGZ*dNbYIBP3Af*m;h?Zm+f`ua>xgl+`oM8Uq{;O0aoywl<#L;Oev0NL)ASiqi{6 zZq*o8&sH~QPgY$Yf!i=l>ppb!i|mg!z3GXa}obb3W&!dyIL_a~AL8 z@oSjQc`SxEuOZL9745uHq(7rWqS*2WkJLfOcjD_dl(H5`I{liYH?wTo zb=&)WbDxL`XMNpbd!)$1sV(tt!HRzED9i72+}%Dz-iqa2)RM!QQ?PFa=hwoc&sdVD zIoH0Ln0|A5dUN0rF{ATF;>mMrfEwfOxtMU^sCZEv?4|F_{M14tZG~Jo`;!%kC^#Cc9@#> z-BsMCS?MQn*s}U(f^UaP7-F9A*&qCDf37=F_`P|r zj(&sqn%id$qkpWu{mJ=E_f3obudaPRdul)LQ7+x|Hn2MS>Q&okS8d;(zRPd$S3K_B zo7!i2bAc4|nl-mi&yD*pDx{={9W9z5z&R0yewKfXZeV0s!W_Hddz*#bP0 Hl+XkK$68~Q literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/component/view.png b/examples/mini-program-example/src/assets/component/view.png new file mode 100644 index 0000000000000000000000000000000000000000..03c900331dae39f1b0fdf1bc8104557eb8b24bd9 GIT binary patch literal 653 zcmeAS@N?(olHy`uVBq!ia0vp^E+EXo1|%(nCvO5$jKx9jP7LeL$-HD>U~>0#aSW+o zd^_9TkI7NwSY)`6M$VR?k8Dy}P8k=j-8vVyx3T?z@Cinn##Ys!59%Rq`3o|Zw(_d5 zT>Bny;)gEFjHxM-`+e2UZ2z2AzW=^mg4#?^m5K=roN#ocsloiE=BJ-EY8*|IrYL9L zpC_{U(DQpX=U02|%rTp-|3aB%Nr1+iZ@>StH*Rb_sF%t3Nl~>s;M&C{2X+KW2-T=R z<*`oqvnuoKzk>+@V*STIy;0R%zO3CeI3t#c|Euv-uerO~oNHGuFR`j!_;q6V+WtNP zfy^5hk7aHBWy4kU_VNd_FIm54vmD9!UtY@881ARQ!o=cW-n;H2m zXPtI@>g>G7c7LWzF8;AjfTNLtal#n^CPpTOnTn|HI^q0%$N8#*?|mdCJMJ7@8M)qc z!j7{=>HB_JGOuYok~__M`Td!Re*#%uSez6b7*vc~92yur(oV=Y#F;LO(0S*$#`qG* z=Th9M9XdbuUvKbRUc8q3>DdJFSFcvyemm`Icg5NT%P;&|H-E3uF5490=GaS2kMDl} zo3l4AfA+qb;EcU@^Xk)#W=bc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuU%v{0TQqR!T z+}y-mN5ROz&{W^RSl`${*T~q)#K6kLNC66zfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7I$IMft0d=ry1 z^FV@{U|qhxR-SpqC5d^-sh%#jN*Q ziwjQkpn6kqy2aHMr(S)aWAs7Mixk~3Az&H;G2w|9$bl#S)I4CCF9IfR#`d&t3=E99 zo-U3d6}R5pKJUxqD02LxY%*)rr}Oi6cquGo*csW(o53!&P&9-2R-?>92BEV>Pg`D` zlsb0*v|o}@`(25Pt<&Fo*GV!x{9tEoeR_gVhoRV&^0$r*910B#OhBR}+Ij=Z0cb-McXfAbTP#wpF=kN8)=l1e$a=u|M9fP;nu10#!o1H;YMy*{iR zk7M8GJN&w1)K|V!XBE`p%%A2RyHt2T^;)*_37y{WuC+c#q9gtJUw$?DZ}5bD=Jdpr z_zK-umzn0h4wn4#sOGMj^P4RVbCoN#UL7{OcdDu?r0vwM(zXpNf*|HGFnO4NRXxD4 X{+!`%hS~|AKt+CqWJ*=k){+u=}iO) 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 literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/tab/api_select.png b/examples/mini-program-example/src/assets/tab/api_select.png new file mode 100644 index 0000000000000000000000000000000000000000..269d726af8a47b5da5b75f7690d6dce74b30066a GIT binary patch literal 4305 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 literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/tab/component.png b/examples/mini-program-example/src/assets/tab/component.png new file mode 100644 index 0000000000000000000000000000000000000000..b5917ae7a601804213d34934a850755cae8e7ec5 GIT binary patch literal 10129 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 literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/tab/component_select.png b/examples/mini-program-example/src/assets/tab/component_select.png new file mode 100644 index 0000000000000000000000000000000000000000..f79d9954bc1ade731d1cc00ca331c5b9e546b7b8 GIT binary patch literal 9569 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 literal 0 HcmV?d00001 diff --git a/examples/mini-program-example/src/assets/tab/home_select.png b/examples/mini-program-example/src/assets/tab/home_select.png new file mode 100644 index 0000000000000000000000000000000000000000..57d426fe49282e69f6158fe9339a6b74345dc392 GIT binary patch literal 5114 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 + textareaControl: Array + hiddenNum: Number +} + +export default class Index extends React.Component { + state = { + inputData: [], + textareaControl: [], + hiddenNum: 0, + } + componentDidMount(): void { + const buttonList = this.props.buttonList + const inputData: Array = [] + const textareaControl: Array = [] + buttonList.forEach((item) => { + if (item['inputData']) { + inputData.push(item.inputData) + } else { + inputData.push(undefined) + } + textareaControl.push(true) + }) + this.setState({ + inputData, + }) + } + changeData = (e, apiIndex) => { + const { inputData } = this.state + try { + inputData[apiIndex] = JSON.parse(e.detail.value) + } catch (err) { + inputData[apiIndex] = e.detail.value + } + this.setState({ + inputData, + }) + } + submitData = (data, apiItem, apiIndex) => { + if (apiItem.func != null) { + if (typeof data == 'string') { + Taro.showToast({ + icon: 'error', + title: '请检查参数格式', + }) + } else if (data == undefined) { + apiItem.func(apiIndex) + } else { + apiItem.func(apiIndex, data) + } + } + } + minusHidden = () => { + const { hiddenNum } = this.state + if (hiddenNum > 0) { + this.setState({ + hiddenNum: hiddenNum - 1, + }) + } else { + Taro.showToast({ + title: '已全部显示', + }) + } + } + addHidden = () => { + const { hiddenNum } = this.state + const btnLength = this.props.buttonList.length + if (hiddenNum < btnLength) { + this.setState({ + hiddenNum: hiddenNum + 1, + }) + } else { + Taro.showToast({ + title: '已全部隐藏', + }) + } + } + hideTextarea = (apiIndex: Number) => { + const { textareaControl } = this.state + textareaControl[apiIndex] = !textareaControl[apiIndex] + this.setState({ + textareaControl, + }) + } + + isAdvancedAPI = (APIName) => { + try { + // @ts-ignore + return asAPIMap.get(APIName) + } catch (err) { + return false + } + } + render() { + const { buttonList } = this.props + const { inputData, textareaControl, hiddenNum } = this.state + return ( + + + 隐藏按钮 + + + - + + {hiddenNum} + + + + + + + {buttonList.map((item, apiIndex) => { + return ( + + {inputData[apiIndex] != undefined ? ( + + + polyline: + + circles: + + polygons: + + + ) + } +} diff --git a/examples/mini-program-example/src/pages/component/map/map.scss b/examples/mini-program-example/src/pages/component/map/map.scss new file mode 100644 index 000000000000..b466b7edb047 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/map/map.scss @@ -0,0 +1,18 @@ +.flex-wrp { + margin-top: 60px; + display: flex; +} +.flex-item { + width: 200px; + height: 300px; + font-size: 26px; +} +.flex-item-V { + margin: 0 auto; + width: 300px; + height: 200px; +} + +.page-section-title { + text-align: center; +} diff --git a/examples/mini-program-example/src/pages/component/match-media/match-media.config.ts b/examples/mini-program-example/src/pages/component/match-media/match-media.config.ts new file mode 100644 index 000000000000..1399075dd433 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/match-media/match-media.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '第二个页面', +}) diff --git a/examples/mini-program-example/src/pages/component/match-media/match-media.scss b/examples/mini-program-example/src/pages/component/match-media/match-media.scss new file mode 100644 index 000000000000..461be2c97024 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/match-media/match-media.scss @@ -0,0 +1,19 @@ +.overlay_black { + background: #0d0d0d; +} + +.overlay_white { + background: #f4f4f4; +} +.customStyle { + background: #8065df; +} + + + +.gridStyle { + width: 1000px; +} + + + diff --git a/examples/mini-program-example/src/pages/component/match-media/match-media.tsx b/examples/mini-program-example/src/pages/component/match-media/match-media.tsx new file mode 100644 index 000000000000..603f6d7d0040 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/match-media/match-media.tsx @@ -0,0 +1,28 @@ +import { View, Image, MatchMedia } from '@tarojs/components' +import { useLoad } from '@tarojs/taro' +import './match-media.scss' +import React from 'react' +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default function PageView() { + useLoad(() => { + console.log('Page loaded.') + }) + + return ( + + +
+ + {' '} + +
+ + + + + +
+ ) +} diff --git a/examples/mini-program-example/src/pages/component/movable-view/movable-view.config.js b/examples/mini-program-example/src/pages/component/movable-view/movable-view.config.js new file mode 100644 index 000000000000..a80e22fff91e --- /dev/null +++ b/examples/mini-program-example/src/pages/component/movable-view/movable-view.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'MovableView和MovableArea组件', +} diff --git a/examples/mini-program-example/src/pages/component/movable-view/movable-view.js b/examples/mini-program-example/src/pages/component/movable-view/movable-view.js new file mode 100644 index 000000000000..9e204b3f3b40 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/movable-view/movable-view.js @@ -0,0 +1,133 @@ +import './movable-view.scss' + +import React from 'react' +import { Button, MovableArea, MovableView, View } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageView extends React.Component { + state = { + x: 0, + y: 0, + scale: 2, + } + + tap = () => { + this.setState({ + x: 30, + y: 30, + }) + } + + tap2 = () => { + this.setState({ + scale: 3, + }) + } + + onChange(e) { + console.log(e.detail) + } + + onScale(e) { + console.log(e.detail) + } + + render() { + return ( + + +
+ + {' '} + +
+ + + movable-view区域小于movable-area + + + text + + + + + + + + + movable-view区域大于movable-area + + + text + + + + + + 只可以横向移动 + + + text + + + + + + 只可以纵向移动 + + + text + + + + + + 可超出边界 + + + text + + + + + + 带有惯性 + + + text + + + + + + 可放缩 + + + text + + + + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/movable-view/movable-view.scss b/examples/mini-program-example/src/pages/component/movable-view/movable-view.scss new file mode 100644 index 000000000000..ced1f46b0acd --- /dev/null +++ b/examples/mini-program-example/src/pages/component/movable-view/movable-view.scss @@ -0,0 +1,46 @@ +.example-body{ + text-align: center; +} + +.movable-view { + display: flex; + align-items: center; + justify-content: center; + height: 50px; + width: 50px; + background: #1AAD19; + color: #fff; +} + +.movable-area { + height: 200px; + width: 200px; + margin: 25px 0px 0 25px; + background-color: #ccc; + overflow: hidden; +} +.max { + width: 300px; + height: 300px; +} +.page-section { + width: 100%; + margin-bottom: 10px; +} + +.page-section-title { + margin-top: 25px; + font-size: 14px; + color: #999999; + margin-bottom: 5px; + padding-left: 15px; + padding-right: 15px; +} + +.page-section-title.first { + margin-top: 0; +} +.btn-area { + margin-top: 10px; + padding-bottom: 50px; +} diff --git a/examples/mini-program-example/src/pages/component/navigator/navigator.config.js b/examples/mini-program-example/src/pages/component/navigator/navigator.config.js new file mode 100644 index 000000000000..dcd052c2f040 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/navigator/navigator.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Navigator组件', +} diff --git a/examples/mini-program-example/src/pages/component/navigator/navigator.js b/examples/mini-program-example/src/pages/component/navigator/navigator.js new file mode 100644 index 000000000000..2c170c0cb4ac --- /dev/null +++ b/examples/mini-program-example/src/pages/component/navigator/navigator.js @@ -0,0 +1,51 @@ +import './navigator.scss' + +import Taro from '@tarojs/taro' +import React from 'react' + +import { View, Navigator, Text } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageSwitch extends React.Component { + state = {} + + render() { + return ( + + +
+ + {' '} + +
+ + + + {Taro.getEnv() != Taro.ENV_TYPE.WEB && Taro.getEnv() != Taro.ENV_TYPE.MPHARMONY ? ( + + + 跳转到新页面 + + + 在当前页打开 + + + ) : ( + 暂未支持,请使用Taro API + )} + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/navigator/navigator.scss b/examples/mini-program-example/src/pages/component/navigator/navigator.scss new file mode 100644 index 000000000000..dd98af4c271f --- /dev/null +++ b/examples/mini-program-example/src/pages/component/navigator/navigator.scss @@ -0,0 +1,11 @@ +.example-body{ + text-align: center; +} + +.example-body__navigators-item { + height: 80px; + line-height: 80px; + margin: 20px 100px 0; + text-align: center; + border: 1px solid #ccc; +} diff --git a/examples/mini-program-example/src/pages/component/page-container/page-container.config.ts b/examples/mini-program-example/src/pages/component/page-container/page-container.config.ts new file mode 100644 index 000000000000..1399075dd433 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/page-container/page-container.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '第二个页面', +}) diff --git a/examples/mini-program-example/src/pages/component/page-container/page-container.scss b/examples/mini-program-example/src/pages/component/page-container/page-container.scss new file mode 100644 index 000000000000..461be2c97024 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/page-container/page-container.scss @@ -0,0 +1,19 @@ +.overlay_black { + background: #0d0d0d; +} + +.overlay_white { + background: #f4f4f4; +} +.customStyle { + background: #8065df; +} + + + +.gridStyle { + width: 1000px; +} + + + diff --git a/examples/mini-program-example/src/pages/component/page-container/page-container.tsx b/examples/mini-program-example/src/pages/component/page-container/page-container.tsx new file mode 100644 index 000000000000..1110e9488cfe --- /dev/null +++ b/examples/mini-program-example/src/pages/component/page-container/page-container.tsx @@ -0,0 +1,153 @@ +import { View, Text, Button, PageContainer } from '@tarojs/components' +import { useLoad } from '@tarojs/taro' +import './page-container.scss' +import React, { useState } from 'react' +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default function PageView() { + const [container_show, setContainerShow] = useState(false) + const [position, setTransitionPosition] = useState('bottom') + const [round, setRound] = useState(false) + const [overlay, setOverlay] = useState(false) + const [overlayStyle, setOverlayStyle] = useState('overlay_black') + + useLoad(() => { + console.log('Page loaded.') + }) + + return ( + + +
+ + {' '} + +
+ + setContainerShow(false)} + bindbeforeenter={() => { + console.log('==bindbeforeenter==') + }} + bindenter={() => { + console.log('==bindenter==') + }} + bindafterenter={() => { + console.log('==bindafterenter==') + }} + bindbeforeleave={() => { + console.log('==bindbeforeleave==') + }} + bindleave={() => { + console.log('==bindleave==') + }} + bindafterleave={() => { + console.log('==bindafterleave==') + }} + duration={2000} + zIndex={20} + customStyle='customStyle' + > + Hello world! + Hello world! + Hello world! + Hello world! + + + + + 弹出位置 + + + + + + + + + 弹出圆角 + + + + 遮罩层 + + + + + + + + +
+ ) +} diff --git a/examples/mini-program-example/src/pages/component/picker-view/picker-view.config.js b/examples/mini-program-example/src/pages/component/picker-view/picker-view.config.js new file mode 100644 index 000000000000..03270f5b0d6b --- /dev/null +++ b/examples/mini-program-example/src/pages/component/picker-view/picker-view.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'PickerView组件', +} diff --git a/examples/mini-program-example/src/pages/component/picker-view/picker-view.js b/examples/mini-program-example/src/pages/component/picker-view/picker-view.js new file mode 100644 index 000000000000..527ecc795487 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/picker-view/picker-view.js @@ -0,0 +1,82 @@ +import Taro, { Component } from '@tarojs/taro' +import React from 'react' + +import { View, PickerView, PickerViewColumn } from '@tarojs/components' +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class Picks extends React.Component { + constructor() { + super(...arguments) + const date = new Date() + const years = [] + const months = [] + const days = [] + for (let i = 1990; i <= date.getFullYear(); i++) { + years.push(i) + } + for (let i = 1; i <= 12; i++) { + months.push(i) + } + for (let i = 1; i <= 31; i++) { + days.push(i) + } + this.state = { + years: years, + year: date.getFullYear(), + months: months, + month: 2, + days: days, + day: 2, + value: [9999, 1, 1], + } + } + + onChange = (e) => { + const val = e.detail.value + this.setState({ + year: this.state.years[val[0]], + month: this.state.months[val[1]], + day: this.state.days[val[2]], + value: val, + }) + } + + render() { + return ( + + +
+ + {' '} + +
+ + {this.state.year}年{this.state.month}月{this.state.day}日 + + + + {this.state.years.map((item) => { + return {item}年 + })} + + + {this.state.months.map((item) => { + return {item}月 + })} + + + {this.state.days.map((item) => { + return {item}日 + })} + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/picker/picker.config.js b/examples/mini-program-example/src/pages/component/picker/picker.config.js new file mode 100644 index 000000000000..00fadb619186 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/picker/picker.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Picker组件', +} diff --git a/examples/mini-program-example/src/pages/component/picker/picker.js b/examples/mini-program-example/src/pages/component/picker/picker.js new file mode 100644 index 000000000000..0d6caa05c135 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/picker/picker.js @@ -0,0 +1,125 @@ +import './picker.scss' + +import Taro from '@tarojs/taro' +import React from 'react' +import { View, Text, Picker } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PagePicker extends React.Component { + state = { + timeSel: '12:01', + dateSel: '2018-04-22', + selectorValue: 1, + mulitSelectorValues: [0, 0], + selector: ['美国', '中国', '巴西', '日本'], + multiSelector: [ + ['饭', '粥', '粉'], + ['猪肉', '牛肉'], + ], + } + + handleChange = (e) => { + this.setState({ + selectorValue: e.detail.value, + }) + } + + handleMulitChange = (e) => { + const values = e.detail.value.map((item, index) => { + return this.state.multiSelector[index][item] + }) + this.setState({ + mulitSelectorValues: e.detail.value, + }) + } + + handleColumnchange = (e) => { + console.log(e.detail) + } + + handleTimeChange = (e) => { + this.setState({ + timeSel: e.detail.value, + }) + } + + handleDateChange = (e) => { + const val = e.detail.value + const dateSel = Array.isArray(val) ? val.join('-') : val + this.setState({ dateSel }) + } + + render() { + const { selector, multiSelector, selectorValue, mulitSelectorValues, timeSel, dateSel } = this.state + return ( + +
+ + {' '} + + + + + 普通选择器 + + + + 当前选择:{selector[selectorValue]} + + + + {Taro.getEnv() !== Taro.ENV_TYPE.ALIPAY ? ( + + + 多行选择器 + + + + + 当前选择:{' '} + {`${this.state.multiSelector[0][mulitSelectorValues[0]]}, ${ + this.state.multiSelector[1][mulitSelectorValues[1]] + }`} + + + + + ) : ( + + + 支付宝小程序暂不支持多列选择器 + + + )} + + + 时间选择器 + + + + 当前选择:{timeSel} + + + + + + 日期选择器 + + + + 当前选择:{dateSel} + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/picker/picker.scss b/examples/mini-program-example/src/pages/component/picker/picker.scss new file mode 100644 index 000000000000..953c842a08df --- /dev/null +++ b/examples/mini-program-example/src/pages/component/picker/picker.scss @@ -0,0 +1,5 @@ +.picker{ + position: relative; + padding: 15px 30px; + background-color: #FFFFFF; +} \ No newline at end of file diff --git a/examples/mini-program-example/src/pages/component/progress/progress.config.js b/examples/mini-program-example/src/pages/component/progress/progress.config.js new file mode 100644 index 000000000000..a05dc9d8175c --- /dev/null +++ b/examples/mini-program-example/src/pages/component/progress/progress.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Progress组件', +} diff --git a/examples/mini-program-example/src/pages/component/progress/progress.js b/examples/mini-program-example/src/pages/component/progress/progress.js new file mode 100644 index 000000000000..eb2531b98e56 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/progress/progress.js @@ -0,0 +1,84 @@ +import './progress.scss' +import React from 'react' +import { View, Progress, Button } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageView extends React.Component { + constructor() { + super(...arguments) + this._timmer = null + } + + state = { + progress: 0, + } + + handleStart = () => { + if (this._timmer || this.state.progress > 100) return + this._timmer = setInterval(() => { + const value = this.state.progress + 2 + if (value > 100) { + return this.handleStop() + } + this.setState({ + progress: value, + }) + }, 100) + } + + handleStop = () => { + if (this._timmer) { + clearInterval(this._timmer) + this._timmer = null + } + } + + handleReset = () => { + this.handleStop() + this.setState({ + progress: 0, + }) + } + + render() { + const { progress } = this.state + return ( + + +
+ + {' '} + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/progress/progress.scss b/examples/mini-program-example/src/pages/component/progress/progress.scss new file mode 100644 index 000000000000..e33741f4ecd4 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/progress/progress.scss @@ -0,0 +1,5 @@ +.example-progress { + font-size: 32px; + position: relative; + margin-bottom: 80px; +} \ No newline at end of file diff --git a/examples/mini-program-example/src/pages/component/radio-group/radio-group.config.ts b/examples/mini-program-example/src/pages/component/radio-group/radio-group.config.ts new file mode 100644 index 000000000000..1399075dd433 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/radio-group/radio-group.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '第二个页面', +}) diff --git a/examples/mini-program-example/src/pages/component/radio-group/radio-group.scss b/examples/mini-program-example/src/pages/component/radio-group/radio-group.scss new file mode 100644 index 000000000000..198f1bcdd141 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/radio-group/radio-group.scss @@ -0,0 +1,46 @@ + +.furit-multiple-selected { + left: 3px; + top: 3px; + width: 14px; + height: 14px; + background: #1aad19; +} + +.furit-multiple-normal { + left: 3px; + top: 3px; + width: 12px; + height: 12px; + stroke-width: 2; + border-color:#1aad19; + fill: #fcfff4; + border-style: solid; +} + +.furit-selected { + left: 3px; + top: 3px; + width: 14px; + height: 14px; + background: #1aad19; + border-radius: 50%; +} + +.furit-normal { + left: 3px; + top: 3px; + width: 12px; + height: 12px; + stroke-width: 2; + border-color:#1aad19; + fill: #fcfff4; + border-radius: 50%; + border-style:solid; +} + +.furit-item { + display: flex; + flex-direction: row; + align-content: center; +} diff --git a/examples/mini-program-example/src/pages/component/radio-group/radio-group.tsx b/examples/mini-program-example/src/pages/component/radio-group/radio-group.tsx new file mode 100644 index 000000000000..0a1f45bd27e5 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/radio-group/radio-group.tsx @@ -0,0 +1,59 @@ +import { View, Image, Text, RadioGroup, Radio, Label } from '@tarojs/components' +import { useLoad } from '@tarojs/taro' +import './radio-group.scss' +import React, { useState } from 'react' +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +const furits = [ + { + key: 'apple', + name: '苹果', + }, + { + key: 'banana', + name: '香蕉', + }, + { + key: 'peach', + name: '桃子', + }, +] +export default function PageView() { + useLoad(() => { + console.log('Page loaded.') + }) + + let [singleSelectedFurits, setSingleSelectedFurits] = useState(null) + + return ( + + +
+ + {' '} + +
+ + { + setSingleSelectedFurits(event.detail.value) + }} + > +

单选:

+ {furits.map((item) => { + let checked = singleSelectedFurits == item.key + return ( +
+ +
+ +
+ ) + })} +
+
+
+ ) +} diff --git a/examples/mini-program-example/src/pages/component/radio/radio.config.js b/examples/mini-program-example/src/pages/component/radio/radio.config.js new file mode 100644 index 000000000000..d4cfe62ecbab --- /dev/null +++ b/examples/mini-program-example/src/pages/component/radio/radio.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Radio组件', +} diff --git a/examples/mini-program-example/src/pages/component/radio/radio.js b/examples/mini-program-example/src/pages/component/radio/radio.js new file mode 100644 index 000000000000..0e8eaad9864c --- /dev/null +++ b/examples/mini-program-example/src/pages/component/radio/radio.js @@ -0,0 +1,106 @@ +import './radio.scss' +import React from 'react' +import { Component } from '@tarojs/taro' +import { View, Text, Radio, Label, RadioGroup } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageRadio extends React.Component { + state = { + isChecked: false, + selectValue: '中国', + list: [ + { + value: '美国', + text: '美国', + checked: false, + }, + { + value: '中国', + text: '中国', + checked: true, + }, + { + value: '巴西', + text: '巴西', + checked: false, + }, + { + value: '日本', + text: '日本', + checked: false, + }, + { + value: '英国', + text: '英国', + checked: false, + }, + { + value: '法国', + text: '法国', + checked: false, + }, + ], + } + + radioChange = (e) => { + const list = this.state.list.map((item) => { + item.checked = item.value == e.detail.value + return item + }) + this.setState({ + list, + selectValue: e.detail.value, + }) + } + + render() { + return ( + + +
+ + {' '} + +
+ + + + 默认样式 + + + + 选中 + + + 未选中 + + + + + + 推荐展示样式 + + + 选中的值是: {this.state.selectValue} + + + {this.state.list.map((item, i) => { + return ( + + ) + })} + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/radio/radio.scss b/examples/mini-program-example/src/pages/component/radio/radio.scss new file mode 100644 index 000000000000..f991fd1ffcca --- /dev/null +++ b/examples/mini-program-example/src/pages/component/radio/radio.scss @@ -0,0 +1,54 @@ +.components-page__body { + padding: 0; + .example-body{ + text-align: center; + } +} + +.example-body__radios { + position: relative; + padding: 0px 15px; + background-color: #FFFFFF; + &::before { + content: " "; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #e5e5e5; + color: #e5e5e5; + } + &::after { + content: " "; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 1px; + border-top: 1px solid #e5e5e5; + color: #e5e5e5; + } + &-item { + position: relative; + display: flex; + padding: 20px 15px; + &:not(:first-child) { + &::before { + content: ""; + position: absolute; + left: 0; + top: 0; + right: 0; + height: 1px; + border-top: 1px solid #e5e5e5; + color: #e5e5e5; + left: 15px; + } + } + } +} + +.example-body__select-box { + margin: 20px 0; +} \ No newline at end of file diff --git a/examples/mini-program-example/src/pages/component/root-portal/root-portal.config.ts b/examples/mini-program-example/src/pages/component/root-portal/root-portal.config.ts new file mode 100644 index 000000000000..1399075dd433 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/root-portal/root-portal.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '第二个页面', +}) diff --git a/examples/mini-program-example/src/pages/component/root-portal/root-portal.scss b/examples/mini-program-example/src/pages/component/root-portal/root-portal.scss new file mode 100644 index 000000000000..461be2c97024 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/root-portal/root-portal.scss @@ -0,0 +1,19 @@ +.overlay_black { + background: #0d0d0d; +} + +.overlay_white { + background: #f4f4f4; +} +.customStyle { + background: #8065df; +} + + + +.gridStyle { + width: 1000px; +} + + + diff --git a/examples/mini-program-example/src/pages/component/root-portal/root-portal.tsx b/examples/mini-program-example/src/pages/component/root-portal/root-portal.tsx new file mode 100644 index 000000000000..7a1406c892ac --- /dev/null +++ b/examples/mini-program-example/src/pages/component/root-portal/root-portal.tsx @@ -0,0 +1,39 @@ +import { View, Text, RootPortal } from '@tarojs/components' +import { useLoad } from '@tarojs/taro' +import './root-portal.scss' +import React from 'react' +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default function PageView() { + useLoad(() => { + console.log('Page loaded.') + }) + + return ( + + +
+ + {' '} + +
+ + Hello RootPortal! + Hello RootPortal! + +
+ ) +} diff --git a/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.config.js b/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.config.js new file mode 100644 index 000000000000..7e4aebdeed19 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'ScrollView组件', +} diff --git a/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.js b/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.js new file mode 100644 index 000000000000..455fd617fe6c --- /dev/null +++ b/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.js @@ -0,0 +1,52 @@ +import './scroll-view.scss' +import React from 'react' +import { View, Text, ScrollView, Button } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageView extends React.Component { + render() { + return ( + + +
+ + {' '} + +
+ + + + Horizontal 横向滚动 + + + + + + + + + + + + + Vertical 纵向滚动 + + + + + + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.scss b/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.scss new file mode 100644 index 000000000000..7e2431248cbc --- /dev/null +++ b/examples/mini-program-example/src/pages/component/scroll-view/scroll-view.scss @@ -0,0 +1,24 @@ +/*postcss-pxtransform rn eject enable*/ +.scroll-view { + .example-body__scroll-view { + &--H { + white-space: nowrap; + .example-body__scroll-view-item { + display: inline-block; + width: 100%; + background-color: #0bb20c; + margin: 5px; + } + } + &--V { + height: 300px; + } + .example-body__scroll-view-item { + height: 300px; + background-color: #0bb20c; + margin: 5px; + } + } +} + +/*postcss-pxtransform rn eject disable*/ diff --git a/examples/mini-program-example/src/pages/component/share-element/share-element.config.ts b/examples/mini-program-example/src/pages/component/share-element/share-element.config.ts new file mode 100644 index 000000000000..e9d3a5c067ac --- /dev/null +++ b/examples/mini-program-example/src/pages/component/share-element/share-element.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: 'ShareElement', +}) diff --git a/examples/mini-program-example/src/pages/component/share-element/share-element.scss b/examples/mini-program-example/src/pages/component/share-element/share-element.scss new file mode 100644 index 000000000000..461be2c97024 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/share-element/share-element.scss @@ -0,0 +1,19 @@ +.overlay_black { + background: #0d0d0d; +} + +.overlay_white { + background: #f4f4f4; +} +.customStyle { + background: #8065df; +} + + + +.gridStyle { + width: 1000px; +} + + + diff --git a/examples/mini-program-example/src/pages/component/share-element/share-element.tsx b/examples/mini-program-example/src/pages/component/share-element/share-element.tsx new file mode 100644 index 000000000000..1f947390b636 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/share-element/share-element.tsx @@ -0,0 +1,32 @@ +import { View, Text, Button, PageContainer, ShareElement } from '@tarojs/components' +import { useLoad } from '@tarojs/taro' +import './share-element.scss' +import React, { useState } from 'react' +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default function PageView() { + const [container_show, setContainerShow] = useState(false) + const [position, setTransitionPosition] = useState('bottom') + const [round, setRound] = useState(false) + const [overlay, setOverlay] = useState(false) + const [overlayStyle, setOverlayStyle] = useState('overlay_black') + + useLoad(() => { + console.log('Page loaded.') + }) + + return ( + + +
+ + {' '} + +
+ + ShareElement动画正在开发中…… + +
+ ) +} diff --git a/examples/mini-program-example/src/pages/component/slider/slider.config.js b/examples/mini-program-example/src/pages/component/slider/slider.config.js new file mode 100644 index 000000000000..052314569641 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/slider/slider.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Slider组件', +} diff --git a/examples/mini-program-example/src/pages/component/slider/slider.js b/examples/mini-program-example/src/pages/component/slider/slider.js new file mode 100644 index 000000000000..86a9734fe425 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/slider/slider.js @@ -0,0 +1,98 @@ +import React from 'react' +import { View, Button, Text, Slider } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageSlider extends React.Component { + state = { + value: 50, + } + + setValue = () => { + const value = Math.floor(Math.random() * 100) + console.log(value) + this.setState({ + value, + }) + } + + handleChaning = (e) => {} + + handleChange = (e) => {} + + render() { + return ( + + +
+ + {' '} + +
+ + + + 设置step + + + + + + + + + 显示当前的value + + + + + + + + + 设置最小/最大值 + + + + + + + + + UI设置 + + + + + + + + + 数据绑定 + + + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.config.ts b/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.config.ts new file mode 100644 index 000000000000..1399075dd433 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '第二个页面', +}) diff --git a/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.scss b/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.scss new file mode 100644 index 000000000000..461be2c97024 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.scss @@ -0,0 +1,19 @@ +.overlay_black { + background: #0d0d0d; +} + +.overlay_white { + background: #f4f4f4; +} +.customStyle { + background: #8065df; +} + + + +.gridStyle { + width: 1000px; +} + + + diff --git a/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.tsx b/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.tsx new file mode 100644 index 000000000000..0f064cfb8200 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/sticky-header/sticky-header.tsx @@ -0,0 +1,46 @@ +import { View, StickyHeader, StickySection, CoverImage } from '@tarojs/components' +import { useLoad } from '@tarojs/taro' +import './sticky-header.scss' +import React from 'react' +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default function PageView() { + useLoad(() => { + console.log('Page loaded.') + }) + + return ( + + +
+ + {' '} + +
+ + 我是吸顶容器 + + + + + + +
+ ) +} diff --git a/examples/mini-program-example/src/pages/component/swiper/swiper.config.js b/examples/mini-program-example/src/pages/component/swiper/swiper.config.js new file mode 100644 index 000000000000..476ffe05dba2 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/swiper/swiper.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Swiper组件', +} diff --git a/examples/mini-program-example/src/pages/component/swiper/swiper.js b/examples/mini-program-example/src/pages/component/swiper/swiper.js new file mode 100644 index 000000000000..c378ef66ae5a --- /dev/null +++ b/examples/mini-program-example/src/pages/component/swiper/swiper.js @@ -0,0 +1,217 @@ +import './swiper.scss' +import React from 'react' + +import { Component } from '@tarojs/taro' +import { View, Text, Swiper, SwiperItem, Switch, Slider } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageView extends React.Component { + constructor() { + super(...arguments) + this.state = { + current: 1, + duration: 500, + interval: 5000, + isCircular: true, + verticalIsCircular: true, + isAutoplay: false, + verticalIsAutoplay: false, + hasIndicatorDots: true, + verticalHasIndicatorDots: true, + } + } + + setAutoPlay = (e) => { + this.setState({ + isAutoplay: e.detail.value, + }) + } + + setVerticalAutoPlay = (e) => { + this.setState({ + verticalIsAutoplay: e.detail.value, + }) + } + + setCircular = (e) => { + this.setState({ + isCircular: e.detail.value, + }) + } + + setVerticalCircular = (e) => { + this.setState({ + verticalIsCircular: e.detail.value, + }) + } + + setIndicatorDots = (e) => { + this.setState({ + hasIndicatorDots: e.detail.value, + }) + } + + setVerticalIndicatorDots = (e) => { + this.setState({ + verticalHasIndicatorDots: e.detail.value, + }) + } + + setInterval = (e) => { + this.setState({ + interval: e.detail.value, + }) + } + + setDuration = (e) => { + console.log(this) + this.setState({ + duration: e.detail.value, + }) + } + + render() { + const { + current, + isAutoplay, + duration, + isCircular, + interval, + hasIndicatorDots, + verticalIsCircular, + verticalHasIndicatorDots, + verticalIsAutoplay, + } = this.state + return ( + + +
+ + {' '} + +
+ + + + Swiper 横向滑动 + + + + + + + + + + + + + + + + 指示点 + + + + 自动播放 + + + + 循环播放 + + + + + + + 幻灯片切换时长(ms) + + + + + + + + 自动播放间隔时长(ms) + + + + + + + + + + + Swiper 纵向滑动 + + + + + + + + + + + + + + + + + 指示点 + + + + 自动播放 + + + + 循环播放 + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/swiper/swiper.scss b/examples/mini-program-example/src/pages/component/swiper/swiper.scss new file mode 100644 index 000000000000..7005b674a24a --- /dev/null +++ b/examples/mini-program-example/src/pages/component/swiper/swiper.scss @@ -0,0 +1,62 @@ +.components-page__body { + &.swiper { + padding: 0; + } + .switch-list { + position: relative; + padding: 0 15px; + font-size: 30px; + background-color: #FFFFFF; + &__item { + position: relative; + display: flex; + padding: 10px 0; + &:not(:first-child) { + &::before { + content: ""; + position: absolute; + left: 15px; + right: -15px; + top: 0; + height: 1px; + border-top: 1px solid #e5e5e5; + color: #e5e5e5; + } + } + } + &__text { + display: flex; + flex: 1; + align-items: center; + padding-left: 15px; + } + } + .slider-list { + margin-top: 80px; + padding: 0 40px; + &__item { + margin-bottom: 40px; + &-header { + font-size: 28px; + color: #999999; + text-align: center; + margin-bottom: 15px; + } + &-body {} + } + } +} +.demo-text { + &-1 { + height: 150PX; + background-color: #0bb20c; + } + &-2 { + height: 150PX; + background-color: #4F7DE2; + } + &-3 { + height: 150PX; + background-color: #ce3c39; + } +} diff --git a/examples/mini-program-example/src/pages/component/switch/switch.config.js b/examples/mini-program-example/src/pages/component/switch/switch.config.js new file mode 100644 index 000000000000..306ffb24a2fb --- /dev/null +++ b/examples/mini-program-example/src/pages/component/switch/switch.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Switch组件', +} diff --git a/examples/mini-program-example/src/pages/component/switch/switch.js b/examples/mini-program-example/src/pages/component/switch/switch.js new file mode 100644 index 000000000000..3255bed58be9 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/switch/switch.js @@ -0,0 +1,66 @@ +import './switch.scss' +import React from 'react' +import { View, Text, Switch } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageSwitch extends React.Component { + state = { + isChecked: true, + } + + setIsChecked = (e) => { + const { detail } = e + this.setState({ + isChecked: detail.value, + }) + } + + render() { + return ( + +
+ + {' '} + + + + + 静态展示 + + + + 关闭 + + + + 开启中 + + + + 更换颜色 + + + + CheckBox形式 + + + + + + + 数据绑定 + + + + {this.state.isChecked ? '开启' : '关闭'} + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/switch/switch.scss b/examples/mini-program-example/src/pages/component/switch/switch.scss new file mode 100644 index 000000000000..ec6cd7ad0db2 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/switch/switch.scss @@ -0,0 +1,28 @@ +.switch-list { + position: relative; + padding: 0 15px; + background-color: #FFFFFF; + &__item { + position: relative; + display: flex; + padding: 10px 0; + &:not(:first-child) { + &::before { + content: ""; + position: absolute; + left: 15px; + right: -15px; + top: 0; + height: 1px; + border-top: 1px solid #e5e5e5; + color: #e5e5e5; + } + } + } + &__text { + display: flex; + flex: 1; + align-items: center; + padding-left: 15px; + } +} \ No newline at end of file diff --git a/examples/mini-program-example/src/pages/component/text/text.config.js b/examples/mini-program-example/src/pages/component/text/text.config.js new file mode 100644 index 000000000000..d00c6ad73a17 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/text/text.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Text组件', +} diff --git a/examples/mini-program-example/src/pages/component/text/text.js b/examples/mini-program-example/src/pages/component/text/text.js new file mode 100644 index 000000000000..8fdeacf21801 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/text/text.js @@ -0,0 +1,62 @@ +import './text.scss' +import React from 'react' +import { View, Text } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageView extends React.Component { + constructor() { + super(...arguments) + } + + render() { + return ( + + +
+ + {' '} + +
+ + + + H5、小程序通用 + + + + 可选择的文字 + + + 不可选择的文字 + + + + + + 仅工作在小程序 + + + + 不支持多 空格文字 + + + 多 空格文字(ensp) + + + 多 空格文字(nbsp) + + + 不解码文字> + + + 解码文字> + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/text/text.scss b/examples/mini-program-example/src/pages/component/text/text.scss new file mode 100644 index 000000000000..23089cff12ca --- /dev/null +++ b/examples/mini-program-example/src/pages/component/text/text.scss @@ -0,0 +1,7 @@ +.example-body{ + &__text{ + font-size: 36px; + text-align: center; + margin-bottom: 20px; + } +} \ No newline at end of file diff --git a/examples/mini-program-example/src/pages/component/textarea/textarea.config.js b/examples/mini-program-example/src/pages/component/textarea/textarea.config.js new file mode 100644 index 000000000000..f15fe74db5da --- /dev/null +++ b/examples/mini-program-example/src/pages/component/textarea/textarea.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Textare组件', +} diff --git a/examples/mini-program-example/src/pages/component/textarea/textarea.js b/examples/mini-program-example/src/pages/component/textarea/textarea.js new file mode 100644 index 000000000000..4d6a1d0ea438 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/textarea/textarea.js @@ -0,0 +1,78 @@ +import './textarea.scss' + +import React from 'react' +import { View, Text, Textarea, Button } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageTextarea extends React.Component { + state = { + value: '初始值', + } + + handleClick = () => { + this.setState({ + value: '点击了按钮', + }) + } + + blur = () => { + console.log('blur') + } + + focus = () => { + console.log('focus') + } + + input = (e) => { + console.log(e) + this.setState({ + value: e.target.value, + }) + } + + render() { + return ( + + +
+ + {' '} + +
+ + + + 输入区域高度自适应,不会出现滚动条 + + + + + + + + + + + + 这是一个可以自动聚焦的textarea + + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/textarea/textarea.scss b/examples/mini-program-example/src/pages/component/textarea/textarea.scss new file mode 100644 index 000000000000..1aac714778da --- /dev/null +++ b/examples/mini-program-example/src/pages/component/textarea/textarea.scss @@ -0,0 +1,6 @@ +.components-page__body{ + padding: 0; + .example-body__button { + text-align: center; +} +} \ No newline at end of file diff --git a/examples/mini-program-example/src/pages/component/video/video.config.js b/examples/mini-program-example/src/pages/component/video/video.config.js new file mode 100644 index 000000000000..eebc80b4b8c3 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/video/video.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'Video组件', +} diff --git a/examples/mini-program-example/src/pages/component/video/video.js b/examples/mini-program-example/src/pages/component/video/video.js new file mode 100644 index 000000000000..ce535a5bfca1 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/video/video.js @@ -0,0 +1,37 @@ +import './video.scss' +import React from 'react' +import { View, Video } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageView extends React.Component { + render() { + return ( + + +
+ + {' '} + +
+ + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/video/video.scss b/examples/mini-program-example/src/pages/component/video/video.scss new file mode 100644 index 000000000000..dc354861f094 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/video/video.scss @@ -0,0 +1,3 @@ +.example-body{ + text-align: center; +} \ No newline at end of file diff --git a/examples/mini-program-example/src/pages/component/view/view.config.js b/examples/mini-program-example/src/pages/component/view/view.config.js new file mode 100644 index 000000000000..17cd1b0a9c2f --- /dev/null +++ b/examples/mini-program-example/src/pages/component/view/view.config.js @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: 'View组件', +} diff --git a/examples/mini-program-example/src/pages/component/view/view.js b/examples/mini-program-example/src/pages/component/view/view.js new file mode 100644 index 000000000000..4f1641f038a7 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/view/view.js @@ -0,0 +1,48 @@ +import './view.scss' + +import React from 'react' +import { View, Text } from '@tarojs/components' + +import Header from '../../../components/head/head' +import ComponentState from '../../../components/component_state/component_state' + +export default class PageView extends React.Component { + render() { + return ( + + +
+ + {' '} + +
+ + + + flex-direction: row 横向布局 + + + + + + + + + + + + flex-direction: column 纵向布局 + + + + + + + + + + +
+ ) + } +} diff --git a/examples/mini-program-example/src/pages/component/view/view.scss b/examples/mini-program-example/src/pages/component/view/view.scss new file mode 100644 index 000000000000..e4dbdd328fa3 --- /dev/null +++ b/examples/mini-program-example/src/pages/component/view/view.scss @@ -0,0 +1,23 @@ +.example{ + margin-bottom: 60px; + &-body{ + &__list{ + display: flex; + &-item{ + flex: auto; + height: 300px; + background-color: #0bb20c; + margin: 5px; + } + } + &__list--vertical{ + width: 200px; + flex-direction: column; + margin-left: auto; + margin-right: auto; + .example-body__list-item{ + flex: 1 1 200px; + } + } + } +} diff --git a/examples/mini-program-example/src/pages/error/index.config.ts b/examples/mini-program-example/src/pages/error/index.config.ts new file mode 100644 index 000000000000..8e4792d0aa4b --- /dev/null +++ b/examples/mini-program-example/src/pages/error/index.config.ts @@ -0,0 +1,3 @@ +export default { + navigationBarTitleText: '页面未找到', +} diff --git a/examples/mini-program-example/src/pages/error/index.scss b/examples/mini-program-example/src/pages/error/index.scss new file mode 100644 index 000000000000..a282368e2e5b --- /dev/null +++ b/examples/mini-program-example/src/pages/error/index.scss @@ -0,0 +1,7 @@ +.error-page { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} diff --git a/examples/mini-program-example/src/pages/error/index.tsx b/examples/mini-program-example/src/pages/error/index.tsx new file mode 100644 index 000000000000..22cadb13615c --- /dev/null +++ b/examples/mini-program-example/src/pages/error/index.tsx @@ -0,0 +1,14 @@ +import React from 'react' +import { View } from '@tarojs/components' +import './index.scss' + +/** + * 页面未找到 + * @returns + */ + +export default class Index extends React.Component { + render() { + return 页面未找到啦 + } +} diff --git a/examples/mini-program-example/src/pages/index/index.config.ts b/examples/mini-program-example/src/pages/index/index.config.ts new file mode 100644 index 000000000000..a7c25c75b76b --- /dev/null +++ b/examples/mini-program-example/src/pages/index/index.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '首页', +}) diff --git a/examples/mini-program-example/src/pages/index/index.scss b/examples/mini-program-example/src/pages/index/index.scss new file mode 100644 index 000000000000..20fe3a04711b --- /dev/null +++ b/examples/mini-program-example/src/pages/index/index.scss @@ -0,0 +1,24 @@ +//@import '@tarojs/components-mpharmony/dist/style/components/page-container'; + + +.overlay_black { + background: #0d0d0d; +} + +.overlay_white { + background: #f4f4f4; +} +.customStyle { + background: #8065df; +} + + + +.gridStyle { + width: 1000px; +} + +.buttonStyle { + width: 200px; + margin-top: 100px; +} diff --git a/examples/mini-program-example/src/pages/index/index.tsx b/examples/mini-program-example/src/pages/index/index.tsx new file mode 100644 index 000000000000..135869ac3e75 --- /dev/null +++ b/examples/mini-program-example/src/pages/index/index.tsx @@ -0,0 +1,70 @@ +import { View, Button } from '@tarojs/components' +import Taro, { useLoad, useDidShow } from '@tarojs/taro' +import './index.scss' +import { TestConsole } from '@/util/util' +import nativeApi from "@/util/nativeApi"; + +export default function Index() { + useLoad(() => { + console.log('Page loaded.') + }) + useDidShow(() => { + if (Taro.getCurrentInstance().preloadData) { + TestConsole.consoleSuccess( + '接收来至pages/api/basics/index页面 Taro。preload传递的参数:' + + JSON.stringify(Taro.getCurrentInstance().preloadData) + ) + } + }) + return ( + + + + + + + + ) +} diff --git a/examples/mini-program-example/src/pages/performance/index/index.config.ts b/examples/mini-program-example/src/pages/performance/index/index.config.ts new file mode 100644 index 000000000000..bb4e054d12d8 --- /dev/null +++ b/examples/mini-program-example/src/pages/performance/index/index.config.ts @@ -0,0 +1,7 @@ +export default { + navigationBarTitleText: '性能压测', + enablePullDownRefresh: true, + backgroundTextStyle: 'dark', + onReachBottomDistance: 50, + pageOrientation: 'auto', +} diff --git a/examples/mini-program-example/src/pages/performance/index/index.scss b/examples/mini-program-example/src/pages/performance/index/index.scss new file mode 100644 index 000000000000..42bb2fbda5ef --- /dev/null +++ b/examples/mini-program-example/src/pages/performance/index/index.scss @@ -0,0 +1,15 @@ +@import "@/styles/variables.scss"; + +.test-style { + color: #f5f5f5; + background-color: $color-success; +} + +.callback-content { + display: none; +} + +.performance_result { + font-size: 20px; + margin-top: 5px; +} diff --git a/examples/mini-program-example/src/pages/performance/index/index.tsx b/examples/mini-program-example/src/pages/performance/index/index.tsx new file mode 100644 index 000000000000..84efe0564397 --- /dev/null +++ b/examples/mini-program-example/src/pages/performance/index/index.tsx @@ -0,0 +1,548 @@ +import React from 'react' +import { View, Button, Text } from '@tarojs/components' +// import { TestConsole } from '@/util/util' +import './index.scss' +import Taro from "@tarojs/taro"; + +function methodTime(fun: (endFun: ()=>void)=>void): Promise { + return new Promise((resolve)=>{ + let startTimeTaro: number = Date.now() + fun(()=>{ + const excuteTime = Date.now() - startTimeTaro + resolve(excuteTime) + }) + }) +} + +function taroAndNativeMethodTime(methodName: string, taroFun: (endFun: ()=>void)=>void, nativeFun: (endFun:()=>void)=>void): Promise<{taroTime: number, nativeTime: number, excuteLog: string}>{ + const taroPromise = methodTime(taroFun) + const nativePromise = methodTime(nativeFun) + return Promise.all([taroPromise, nativePromise]).then((result)=>{ + const taroTime = result[0] + const nativeTime = result[1] + const excuteLog = `同步调用${methodName}() 耗时:Taro ${result[0]} ms, Native ${result[1]}ms` + return {taroTime, nativeTime, excuteLog} + }) +} + +function jsFetch(endFun: ()=>void){ + // 定义请求头 + const headers = new Headers(); + headers.append("Content-Type", "application/x-www-form-urlencoded,application/json"); // 替换为实际的访问令牌 + headers.append("scene", '1001'); + headers.append("appCode", '0'); + headers.append("thirdKey", "UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH"); + headers.append("cateCode", ""); + headers.append("version", "2.2"); + headers.append("wxsysinfo", "eyJicmFuZCI6IkhVQVdFSSIsIm1vZGVsIjoiTk9ILUFOMDAiLCJwaXhlbFJhdGlvIjozLjUsInNjcmVlbldpZHRoIjozODQsInNjcmVlbkhlaWdodCI6NzkyLCJ3aW5kb3dXaWR0aCI6Mzg0LCJ3aW5kb3dIZWlnaHQiOjc5Miwic3RhdHVzQmFySGVpZ2h0IjozOSwibGFuZ3VhZ2UiOiJ6aC1IYW5zIiwidmVyc2lvbiI6IjQuMC4xMC4xMCIsInN5c3RlbSI6Ik9wZW5IYXJtb255LTQuMC4xMC4xMCIsInBsYXRmb3JtIjoiT3Blbkhhcm1vbnkiLCJmb250U2l6ZVNldHRpbmciOjE2LCJTREtWZXJzaW9uIjoiMTAiLCJiZW5jaG1hcmtMZXZlbCI6LTEsImFsYnVtQXV0aG9yaXplZCI6ZmFsc2UsImNhbWVyYUF1dGhvcmaserwefsdgesryhcvbiOmZhbHNlLCJtaWNyb3Bob25lQXV0aG9yaXplZCI6ZmFsc2UsIm5vdGlmaWNhdGlvbkF1dGhvcml6ZWQiOnRydWUsInBob25lQ2FsZW5kYXJBdXRob3JpemVkIjpmYWxzZSwiYmx1ZXRvb3RoRW5hYmxlZCI6dHJ1ZSwibG9jYXRpb25FbmFibGVkIjpmYWxzZSwid2lmaUVuYWJsZerteyrbdfdserytrhbdfgdLCJoZWlnaHQiOjc1MywibGVmdCI6MCwicmlnaHQiOjM4NCwidG9wIjozOSwid2lkdGgiOjM4NH0sImxvY2F0aW9uUmVkdWNlZEFjY3VyYWN5Ijp0cnVlLCJ0aGVtZSI6ImxpZ2h0IiwiaG9zdCI6eyJhcHBJZCI6ImNvbS53dWJhLmxpZmVfQkxQYzZzTlIyNFhpSGFmZExXako4UnErbS9rckNxVXdwV3Bqam1jRGZTRkZKMkNDQlNZTHFOUlBiZmdCeXFlYkl2emw0Q0tKZ2ZQbnBjaTN3VE9leElZPSJ9LCJlbmFibGVEZWJ1ZyI6dHJ1ZSwiZGV2aWNlT3JpZW50YXRpb24iOiJxx3J0cmFpdCJ9"); + headers.append("listName", "bj"); + headers.append("content-type", "application/json"); + headers.append("idxx", "B41CF5FA70F3DD19B1D87389CF045C8A1614CBEE645A9174BDDFDF1265A56129"); + headers.append("Cookie", "PPU=\"\";idxx=sdfergdshrthfbscaswqr;sessionid=sdddgerhfgjntfyjvzserweagergsderty;"); + headers.append("accuracy", ""); + headers.append("geo", ""); + headers.append("abtest", ""); + + // 发起GET请求 + fetch('http://10.253.108.182:9999/api/pressure/feed?app=sdfwef&lon=&lat=&session=sdfwefwefsgrhrjgjtyjkyukyuksdfxsddr×tamp=170442018xx28&mediauid=dfghrhgfjyukhmgertdfbvdfhrtyrtdfg&devidmd5=IMEI&utm_source=xxun&spm=u-2h6kyt1yf988m1ww31.wx_mjh_feed_zhaogongzuo&brand=HUAWEI&os=OpenHarmony&model=NOH-AN00&city=bj&cate=pugongjg&slot=lm_list_template&pn=1&ps=10&url=https%3A%2F%2Fwxzzmp.xx.com%2Flist.shtml%3F-15%3D20&sign=3ccfb781037ed655120d63c4b5e5c391&debug=1', { + method: 'GET', + headers: headers, + }) + .then(response => { + if (!response.ok) { + throw new Error(`Network response was not ok, status: ${response.status}`); + } + return response.json(); + }) + .then(data => { + endFun() + // 在这里处理返回的JSON数据 + // console.log(data); + }) + .catch(error => { + console.error('Error during fetch operation:', error); + }); +} + +export default class Index extends React.Component { + state = { + syncSingleResult: '', + requestSingleResult: '', + requestConcurrentResult: '', + requestHignConcurrentResult: '', + syncResult: '', + requestByJsResult: '' + } + syncSingleTest = ()=>{ + Promise.all([ + methodTime((endFun)=>{ + Taro.getWindowInfo() + endFun() + }), + methodTime((endFun)=>{ + // @ts-ignore + native.getWindowInfo() + endFun() + }), + methodTime((endFun)=>{ + Taro.getScreenBrightness({ + success: function () {endFun()}, + fail: function (){endFun()}, + complete: function () {} + }) + }), + methodTime((endFun)=>{ + // @ts-ignore + native.getScreenBrightness({ + success: function () {endFun()}, + fail: function (){endFun()}, + }) + }) + ]) + .then((result)=>{ + let totalExcuteLog: string[] = [] + totalExcuteLog.push(`同步调用getWindowInfo() 耗时:Taro ${result[0]} ms, Native ${result[1]}ms`) + totalExcuteLog.push(`异步调用getScreenBrightness() 耗时:Taro ${result[2]} ms, Native ${result[3]}ms`) + this.setState({ + syncSingleResult: totalExcuteLog.join('\n') + }) + }) + } + + syncPressureTest = ()=>{ + Promise.all([ + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getWindowInfo', (endFun)=>{Taro.getWindowInfo();endFun()}, (endFun)=>{native.getWindowInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemSetting', (endFun)=>{Taro.getSystemSetting();endFun()}, (endFun)=>{native.getSystemSetting();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppBaseInfo', (endFun)=>{Taro.getAppBaseInfo();endFun()}, (endFun)=>{native.getAppBaseInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppAuthorizeSetting', (endFun)=>{Taro.getAppAuthorizeSetting();endFun()}, (endFun)=>{native.getAppAuthorizeSetting();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getWindowInfo', (endFun)=>{Taro.getWindowInfo();endFun()}, (endFun)=>{native.getWindowInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppBaseInfo', (endFun)=>{Taro.getAppBaseInfo();endFun()}, (endFun)=>{native.getAppBaseInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppAuthorizeSetting', (endFun)=>{Taro.getAppAuthorizeSetting();endFun()}, (endFun)=>{native.getAppAuthorizeSetting();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getWindowInfo', (endFun)=>{Taro.getWindowInfo();endFun()}, (endFun)=>{native.getWindowInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemSetting', (endFun)=>{Taro.getSystemSetting();endFun()}, (endFun)=>{native.getSystemSetting();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppBaseInfo', (endFun)=>{Taro.getAppBaseInfo();endFun()}, (endFun)=>{native.getAppBaseInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppAuthorizeSetting', (endFun)=>{Taro.getAppAuthorizeSetting();endFun()}, (endFun)=>{native.getAppAuthorizeSetting();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getMenuButtonBoundingClientRect', (endFun)=>{Taro.getMenuButtonBoundingClientRect();endFun()}, (endFun)=>{native.getMenuButtonBoundingClientRect();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getWindowInfo', (endFun)=>{Taro.getWindowInfo();endFun()}, (endFun)=>{native.getWindowInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppBaseInfo', (endFun)=>{Taro.getAppBaseInfo();endFun()}, (endFun)=>{native.getAppBaseInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppAuthorizeSetting', (endFun)=>{Taro.getAppAuthorizeSetting();endFun()}, (endFun)=>{native.getAppAuthorizeSetting();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getWindowInfo', (endFun)=>{Taro.getWindowInfo();endFun()}, (endFun)=>{native.getWindowInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppBaseInfo', (endFun)=>{Taro.getAppBaseInfo();endFun()}, (endFun)=>{native.getAppBaseInfo();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getSystemInfoSync', (endFun)=>{Taro.getSystemInfoSync();endFun()}, (endFun)=>{native.getSystemInfoSync();endFun()}), + // @ts-ignore + taroAndNativeMethodTime('getAppAuthorizeSetting', (endFun)=>{Taro.getAppAuthorizeSetting();endFun()}, (endFun)=>{native.getAppAuthorizeSetting();endFun()}), + ]) + .then((result)=>{ + let totalElapsedTimeTaro = 0 + let totalElapsedTimeNative = 0 + const totalExcuteLog: string[] = [] + totalExcuteLog.push('同步方法压测:case构建:冷启动场景,28次同步调用') + result.forEach(({taroTime, nativeTime, excuteLog})=>{ + totalElapsedTimeTaro += taroTime + totalElapsedTimeNative += nativeTime + totalExcuteLog.push(excuteLog) + }) + totalExcuteLog.push(`总计调用 ${result.length}个方法 \n Taro执行总时间 ${totalElapsedTimeTaro} ms,Native执行总时间 ${totalElapsedTimeNative} ms`) + this.setState({ + syncResult: totalExcuteLog.join('\n') + }) + }) + } + requestSingleTest = ()=>{ + Promise.all([ + methodTime((endFun)=>{ + // 日志请求 + Taro.request({ + url: 'http://10.253.108.182:9999/api/pressure/tracklog?wxid=wlfkjwoejfjsdfjowie&uid=slkfjowejfkmofwe&loginUid=undefined&trackURL=%7B%22pagePath%22%3A%22%2Fpages%2Findex%2Findex%22%2C%22refPagePath%22%3A%22%2Fpages%2Fprivacy%2Findex%22%2C%22pageParam%22%3A%22stamp%253DAE%2526%252524taroTimestamp%253D1704420185161%22%2C%22pageType%22%3A%22index%22%2C%22pageName%22%3A%22index%22%2C%22pageInfo%22%3A%22%22%2C%22loadTime%22%3A0%2C%22cateCode%22%3A%22%22%2C%22cate%22%3A%22%22%2C%22xxx_id%22%3A%22%22%2C%22bendiicontype%22%3A%22%22%2C%22currInfoId%22%3A%22%22%2C%22currentCateCode%22%3A%22%22%2C%22scene%22%3A1001%2C%22thirdKey%22%3A%22UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH%22%2C%22area%22%3A%221%22%2C%22openId%22%3A%22B41CF5FA70F3DD19B1D87389CF045C8A1614CBEE645A9174BDDFDF1265A56129%22%2C%22unionId%22%3A%22C8684F4C3107AD7AA8B19B343D75DDF989D120311D18F9F41EB2320F6FFA66BE%22%2C%22pagetype%22%3A%22index%22%2C%22page%22%3A%22%22%2C%22qudao%22%3A%22weixin%22%2C%22url%22%3A%22%2Fpages%2Findex%2Findex%22%2C%22referrer%22%3A%22%2Fpages%2Fprivacy%2Findex%22%2C%22version%22%3A%222.12.12%22%2C%22spm%22%3A%22%22%2C%22utm_source%22%3A%22%22%2C%22launch_source%22%3A%22%22%2C%22from_userid%22%3A%22%22%2C%22hasuserid%22%3A0%7D&v=1.0.0&rand_id=0.9838634192853211&thirdKey=UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH&appCode=0&debug=1', + method: 'GET', + data: {}, + header: { + "Content-Type": "application/x-www-form-urlencoded,application/json", + "scene": 1001, + "appCode": "0", + "thirdKey": "sklfmowejfklsmfoijwfjlksdmgvioejrgkdmv;ojdspjrlmsdsvklnsoidjfpwk", + "cateCode": "", + "version": "2.12.12", + "wxsysinfo": "eyJicmFuZCI6IkhVQVdFSSIsIm1vZGVsIjoiTk9ILUFOMDAiLCJwaXhlbFJhdGlvIjozLjUsInNjcmVlbldpZHRoIjozODQsInNjcmVlbkhlaWdodCI6NzkyLCJ3aW5kb3dXaWR0aCI6Mzg0LCJ3aW5kb3dIZWlnaHQiOjc5Miwic3RhdHVzQmFySGVpZ2h0IjozOSwibGFuZ3VhZ2UiOiJ6aC1IYW5zIiwidmVyc2lvbiI6I23123113161RlbSI6Ik9wZW5IYXJtb255LTQuMC4xMC4xMCIsInBsYXRmb3JtIjoiT3Blbkhhcm1vbnkiLCJmb250U2l6ZVNldHRpbmciOjE2LCJTREtWZXJzaW9uIjoiMTAiLCJiZW5jaG1hcmtMZXZlbCI6LTEsImFsYnVtQXV0aG9yaXplZCI6ZmFsc2UsImNhbWVyYUF1dGhvcml6ZWQiOmZhbHNlLCJsb2NhdGlvbkF1dGhvcml6ZWQisdfwefsdgv3Bob25lQXV0aG9yaXplZCI6ZmFsgwegfwegwegsdgfkF1dGhvcml6ZWQiOnRydWUsInBob25lQ2FsZW5kYXJBdXRob3JpemVkIjpmYWxzZSwiYmx1ZXRvb3RoRW5hYmxlZCI6dHJ1ZSwqwrqwdasdafsdfgdfghergewvcxbcvxcvhdfydid2lmaUVuYWJsZWQiOnRydWUsInNhZmVBcmVhIjp7ImJvdHRvbSI6NzkyLCJoZWlnaHQiOjc1MywibGVmdCI6MCwicmlnaHQiOjM4NCwidG9wIjozOSwid2lkdGgiOjM4NH0sImxvY2F0aW9uUmVkdWNlZEFjY3VyYWN5Ijp0cnVlLCJ0aGVtZSI6ImxpZ2h0IiwisefkwoejfowfwecHBJZCI6ImNvbS53dWJhLmxpZmVfQkxQYzZzTlIyNFhpSGFmZExXako4UnErbS9rckNxVXdwV3Bqam1jRGZTRkZKMkNDQlNZTHFOUlBiZmdCeXFlYkl2emw0Q0tKZ2ZQbnBjaTN3VE9leElZPSJ9LCJlbmFibGVEZWJ1ZyI6dHJ1ZSwiZGV2aWNlT3JpZW50YXRpb24iOiJxx3J0cmFpdCJ9", + "listName": "bj" + }, + fail(res){ + console.log('request fail **** ', res) + endFun() + }, + success(res) { + console.log('request result ***** ', res.data) + endFun() + }, + }) + }), + methodTime((endFun)=>{ + // @ts-ignore 日志请求 + native.request({ + url: 'http://10.253.108.182:9999/api/pressure/tracklog?wxid=wlfkjwoejfjsdfjowie&uid=slkfjowejfkmofwe&loginUid=undefined&trackURL=%7B%22pagePath%22%3A%22%2Fpages%2Findex%2Findex%22%2C%22refPagePath%22%3A%22%2Fpages%2Fprivacy%2Findex%22%2C%22pageParam%22%3A%22stamp%253DAE%2526%252524taroTimestamp%253D1704420185161%22%2C%22pageType%22%3A%22index%22%2C%22pageName%22%3A%22index%22%2C%22pageInfo%22%3A%22%22%2C%22loadTime%22%3A0%2C%22cateCode%22%3A%22%22%2C%22cate%22%3A%22%22%2C%22xxx_id%22%3A%22%22%2C%22bendiicontype%22%3A%22%22%2C%22currInfoId%22%3A%22%22%2C%22currentCateCode%22%3A%22%22%2C%22scene%22%3A1001%2C%22thirdKey%22%3A%22UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH%22%2C%22area%22%3A%221%22%2C%22openId%22%3A%22B41CF5FA70F3DD19B1D87389CF045C8A1614CBEE645A9174BDDFDF1265A56129%22%2C%22unionId%22%3A%22C8684F4C3107AD7AA8B19B343D75DDF989D120311D18F9F41EB2320F6FFA66BE%22%2C%22pagetype%22%3A%22index%22%2C%22page%22%3A%22%22%2C%22qudao%22%3A%22weixin%22%2C%22url%22%3A%22%2Fpages%2Findex%2Findex%22%2C%22referrer%22%3A%22%2Fpages%2Fprivacy%2Findex%22%2C%22version%22%3A%222.12.12%22%2C%22spm%22%3A%22%22%2C%22utm_source%22%3A%22%22%2C%22launch_source%22%3A%22%22%2C%22from_userid%22%3A%22%22%2C%22hasuserid%22%3A0%7D&v=1.0.0&rand_id=0.9838634192853211&thirdKey=UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH&appCode=0&debug=1', + method: 'GET', + data: {}, + header: { + "Content-Type": "application/x-www-form-urlencoded,application/json", + "scene": 1001, + "appCode": "0", + "thirdKey": "sklfmowejfklsmfoijwfjlksdmgvioejrgkdmv;ojdspjrlmsdsvklnsoidjfpwk", + "cateCode": "", + "version": "2.12.12", + "wxsysinfo": "eyJicmFuZCI6IkhVQVdFSSIsIm1vZGVsIjoiTk9ILUFOMDAiLCJwaXhlbFJhdGlvIjozLjUsInNjcmVlbldpZHRoIjozODQsInNjcmVlbkhlaWdodCI6NzkyLCJ3aW5kb3dXaWR0aCI6Mzg0LCJ3aW5kb3dIZWlnaHQiOjc5Miwic3RhdHVzQmFySGVpZ2h0IjozOSwibGFuZ3VhZ2UiOiJ6aC1IYW5zIiwidmVyc2lvbiI6I23123113161RlbSI6Ik9wZW5IYXJtb255LTQuMC4xMC4xMCIsInBsYXRmb3JtIjoiT3Blbkhhcm1vbnkiLCJmb250U2l6ZVNldHRpbmciOjE2LCJTREtWZXJzaW9uIjoiMTAiLCJiZW5jaG1hcmtMZXZlbCI6LTEsImFsYnVtQXV0aG9yaXplZCI6ZmFsc2UsImNhbWVyYUF1dGhvcml6ZWQiOmZhbHNlLCJsb2NhdGlvbkF1dGhvcml6ZWQisdfwefsdgv3Bob25lQXV0aG9yaXplZCI6ZmFsgwegfwegwegsdgfkF1dGhvcml6ZWQiOnRydWUsInBob25lQ2FsZW5kYXJBdXRob3JpemVkIjpmYWxzZSwiYmx1ZXRvb3RoRW5hYmxlZCI6dHJ1ZSwqwrqwdasdafsdfgdfghergewvcxbcvxcvhdfydid2lmaUVuYWJsZWQiOnRydWUsInNhZmVBcmVhIjp7ImJvdHRvbSI6NzkyLCJoZWlnaHQiOjc1MywibGVmdCI6MCwicmlnaHQiOjM4NCwidG9wIjozOSwid2lkdGgiOjM4NH0sImxvY2F0aW9uUmVkdWNlZEFjY3VyYWN5Ijp0cnVlLCJ0aGVtZSI6ImxpZ2h0IiwisefkwoejfowfwecHBJZCI6ImNvbS53dWJhLmxpZmVfQkxQYzZzTlIyNFhpSGFmZExXako4UnErbS9rckNxVXdwV3Bqam1jRGZTRkZKMkNDQlNZTHFOUlBiZmdCeXFlYkl2emw0Q0tKZ2ZQbnBjaTN3VE9leElZPSJ9LCJlbmFibGVEZWJ1ZyI6dHJ1ZSwiZGV2aWNlT3JpZW50YXRpb24iOiJxx3J0cmFpdCJ9", + "listName": "bj" + }, + fail(res){ + console.log('request fail **** ', res) + endFun() + }, + success(res) { + console.log('request result ***** ', res.data) + endFun() + }, + }) + }), + methodTime((endFun)=>{ + // 日志请求 + Taro.request({ + url: 'http://10.253.108.182:9999/api/pressure/feed?app=sdfwef&lon=&lat=&session=sdfwefwefsgrhrjgjtyjkyukyuksdfxsddr×tamp=170442018xx28&mediauid=dfghrhgfjyukhmgertdfbvdfhrtyrtdfg&devidmd5=IMEI&utm_source=xxun&spm=u-2h6kyt1yf988m1ww31.wx_mjh_feed_zhaogongzuo&brand=HUAWEI&os=OpenHarmony&model=NOH-AN00&city=bj&cate=pugongjg&slot=lm_list_template&pn=1&ps=10&url=https%3A%2F%2Fwxzzmp.xx.com%2Flist.shtml%3F-15%3D20&sign=3ccfb781037ed655120d63c4b5e5c391&debug=1', + method: 'GET', + data: {}, + header: { + "Content-Type": "application/x-www-form-urlencoded,application/json", + "scene": 1001, + "appCode": "0", + "thirdKey": "UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH", + "cateCode": "", + "version": 2.2, + "wxsysinfo": "eyJicmFuZCI6IkhVQVdFSSIsIm1vZGVsIjoiTk9ILUFOMDAiLCJwaXhlbFJhdGlvIjozLjUsInNjcmVlbldpZHRoIjozODQsInNjcmVlbkhlaWdodCI6NzkyLCJ3aW5kb3dXaWR0aCI6Mzg0LCJ3aW5kb3dIZWlnaHQiOjc5Miwic3RhdHVzQmFySGVpZ2h0IjozOSwibGFuZ3VhZ2UiOiJ6aC1IYW5zIiwidmVyc2lvbiI6IjQuMC4xMC4xMCIsInN5c3RlbSI6Ik9wZW5IYXJtb255LTQuMC4xMC4xMCIsInBsYXRmb3JtIjoiT3Blbkhhcm1vbnkiLCJmb250U2l6ZVNldHRpbmciOjE2LCJTREtWZXJzaW9uIjoiMTAiLCJiZW5jaG1hcmtMZXZlbCI6LTEsImFsYnVtQXV0aG9yaXplZCI6ZmFsc2UsImNhbWVyYUF1dGhvcmaserwefsdgesryhcvbiOmZhbHNlLCJtaWNyb3Bob25lQXV0aG9yaXplZCI6ZmFsc2UsIm5vdGlmaWNhdGlvbkF1dGhvcml6ZWQiOnRydWUsInBob25lQ2FsZW5kYXJBdXRob3JpemVkIjpmYWxzZSwiYmx1ZXRvb3RoRW5hYmxlZCI6dHJ1ZSwibG9jYXRpb25FbmFibGVkIjpmYWxzZSwid2lmaUVuYWJsZerteyrbdfdserytrhbdfgdLCJoZWlnaHQiOjc1MywibGVmdCI6MCwicmlnaHQiOjM4NCwidG9wIjozOSwid2lkdGgiOjM4NH0sImxvY2F0aW9uUmVkdWNlZEFjY3VyYWN5Ijp0cnVlLCJ0aGVtZSI6ImxpZ2h0IiwiaG9zdCI6eyJhcHBJZCI6ImNvbS53dWJhLmxpZmVfQkxQYzZzTlIyNFhpSGFmZExXako4UnErbS9rckNxVXdwV3Bqam1jRGZTRkZKMkNDQlNZTHFOUlBiZmdCeXFlYkl2emw0Q0tKZ2ZQbnBjaTN3VE9leElZPSJ9LCJlbmFibGVEZWJ1ZyI6dHJ1ZSwiZGV2aWNlT3JpZW50YXRpb24iOiJxx3J0cmFpdCJ9", + "listName": "bj", + "content-type": "application/json", + "idxx": "B41CF5FA70F3DD19B1D87389CF045C8A1614CBEE645A9174BDDFDF1265A56129", + "Cookie": "PPU=\"\";idxx=sdfergdshrthfbscaswqr;sessionid=sdddgerhfgjntfyjvzserweagergsderty;", + "accuracy": "", + "geo": "", + "abtest": "" + }, + fail(res){ + console.log('request fail **** ', res) + endFun() + }, + success(res) { + console.log('request result ***** ', JSON.stringify(res.data)) + endFun() + }, + }) + }), + methodTime((endFun)=>{ + // @ts-ignore 日志请求 + native.request({ + url: 'http://10.253.108.182:9999/api/pressure/feed?app=sdfwef&lon=&lat=&session=sdfwefwefsgrhrjgjtyjkyukyuksdfxsddr×tamp=170442018xx28&mediauid=dfghrhgfjyukhmgertdfbvdfhrtyrtdfg&devidmd5=IMEI&utm_source=xxun&spm=u-2h6kyt1yf988m1ww31.wx_mjh_feed_zhaogongzuo&brand=HUAWEI&os=OpenHarmony&model=NOH-AN00&city=bj&cate=pugongjg&slot=lm_list_template&pn=1&ps=10&url=https%3A%2F%2Fwxzzmp.xx.com%2Flist.shtml%3F-15%3D20&sign=3ccfb781037ed655120d63c4b5e5c391&debug=1', + method: 'GET', + data: {}, + header: { + "Content-Type": "application/x-www-form-urlencoded,application/json", + "scene": 1001, + "appCode": "0", + "thirdKey": "UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH", + "cateCode": "", + "version": 2.2, + "wxsysinfo": "eyJicmFuZCI6IkhVQVdFSSIsIm1vZGVsIjoiTk9ILUFOMDAiLCJwaXhlbFJhdGlvIjozLjUsInNjcmVlbldpZHRoIjozODQsInNjcmVlbkhlaWdodCI6NzkyLCJ3aW5kb3dXaWR0aCI6Mzg0LCJ3aW5kb3dIZWlnaHQiOjc5Miwic3RhdHVzQmFySGVpZ2h0IjozOSwibGFuZ3VhZ2UiOiJ6aC1IYW5zIiwidmVyc2lvbiI6IjQuMC4xMC4xMCIsInN5c3RlbSI6Ik9wZW5IYXJtb255LTQuMC4xMC4xMCIsInBsYXRmb3JtIjoiT3Blbkhhcm1vbnkiLCJmb250U2l6ZVNldHRpbmciOjE2LCJTREtWZXJzaW9uIjoiMTAiLCJiZW5jaG1hcmtMZXZlbCI6LTEsImFsYnVtQXV0aG9yaXplZCI6ZmFsc2UsImNhbWVyYUF1dGhvcmaserwefsdgesryhcvbiOmZhbHNlLCJtaWNyb3Bob25lQXV0aG9yaXplZCI6ZmFsc2UsIm5vdGlmaWNhdGlvbkF1dGhvcml6ZWQiOnRydWUsInBob25lQ2FsZW5kYXJBdXRob3JpemVkIjpmYWxzZSwiYmx1ZXRvb3RoRW5hYmxlZCI6dHJ1ZSwibG9jYXRpb25FbmFibGVkIjpmYWxzZSwid2lmaUVuYWJsZerteyrbdfdserytrhbdfgdLCJoZWlnaHQiOjc1MywibGVmdCI6MCwicmlnaHQiOjM4NCwidG9wIjozOSwid2lkdGgiOjM4NH0sImxvY2F0aW9uUmVkdWNlZEFjY3VyYWN5Ijp0cnVlLCJ0aGVtZSI6ImxpZ2h0IiwiaG9zdCI6eyJhcHBJZCI6ImNvbS53dWJhLmxpZmVfQkxQYzZzTlIyNFhpSGFmZExXako4UnErbS9rckNxVXdwV3Bqam1jRGZTRkZKMkNDQlNZTHFOUlBiZmdCeXFlYkl2emw0Q0tKZ2ZQbnBjaTN3VE9leElZPSJ9LCJlbmFibGVEZWJ1ZyI6dHJ1ZSwiZGV2aWNlT3JpZW50YXRpb24iOiJxx3J0cmFpdCJ9", + "listName": "bj", + "content-type": "application/json", + "idxx": "B41CF5FA70F3DD19B1D87389CF045C8A1614CBEE645A9174BDDFDF1265A56129", + "Cookie": "PPU=\"\";idxx=sdfergdshrthfbscaswqr;sessionid=sdddgerhfgjntfyjvzserweagergsderty;", + "accuracy": "", + "geo": "", + "abtest": "" + }, + fail(res){ + console.log('request fail **** ', res) + endFun() + }, + success(res) { + console.log('request result ***** ', JSON.stringify(res.data)) + endFun() + }, + }) + }) + ]) + .then((result)=>{ + const logs: string[] = [] + logs.push(`tracklog请求耗时:Taro ${result[0]} ms, Native ${result[1]} ms`) + logs.push(`Feed请求耗时:Taro ${result[2]} ms, Native ${result[3]} ms`) + this.setState({ + requestSingleResult: logs.join('\n') + }) + }) + } + requestConcurentTest = ()=>{ + const startTime = Date.now() + const promiseArray:Promise[] = [] + for (let i=1; i <= 5; i++) { + promiseArray.push(methodTime((endFun)=>{ + // 日志请求 + Taro.request({ + url: 'http://10.253.108.182:9999/api/pressure/tracklog?wxid=wlfkjwoejfjsdfjowie&uid=slkfjowejfkmofwe&loginUid=undefined&trackURL=%7B%22pagePath%22%3A%22%2Fpages%2Findex%2Findex%22%2C%22refPagePath%22%3A%22%2Fpages%2Fprivacy%2Findex%22%2C%22pageParam%22%3A%22stamp%253DAE%2526%252524taroTimestamp%253D1704420185161%22%2C%22pageType%22%3A%22index%22%2C%22pageName%22%3A%22index%22%2C%22pageInfo%22%3A%22%22%2C%22loadTime%22%3A0%2C%22cateCode%22%3A%22%22%2C%22cate%22%3A%22%22%2C%22xxx_id%22%3A%22%22%2C%22bendiicontype%22%3A%22%22%2C%22currInfoId%22%3A%22%22%2C%22currentCateCode%22%3A%22%22%2C%22scene%22%3A1001%2C%22thirdKey%22%3A%22UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH%22%2C%22area%22%3A%221%22%2C%22openId%22%3A%22B41CF5FA70F3DD19B1D87389CF045C8A1614CBEE645A9174BDDFDF1265A56129%22%2C%22unionId%22%3A%22C8684F4C3107AD7AA8B19B343D75DDF989D120311D18F9F41EB2320F6FFA66BE%22%2C%22pagetype%22%3A%22index%22%2C%22page%22%3A%22%22%2C%22qudao%22%3A%22weixin%22%2C%22url%22%3A%22%2Fpages%2Findex%2Findex%22%2C%22referrer%22%3A%22%2Fpages%2Fprivacy%2Findex%22%2C%22version%22%3A%222.12.12%22%2C%22spm%22%3A%22%22%2C%22utm_source%22%3A%22%22%2C%22launch_source%22%3A%22%22%2C%22from_userid%22%3A%22%22%2C%22hasuserid%22%3A0%7D&v=1.0.0&rand_id=0.9838634192853211&thirdKey=UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH&appCode=0&debug=1', + method: 'GET', + data: {}, + header: { + "Content-Type": "application/x-www-form-urlencoded,application/json", + "scene": 1001, + "appCode": "0", + "thirdKey": "sklfmowejfklsmfoijwfjlksdmgvioejrgkdmv;ojdspjrlmsdsvklnsoidjfpwk", + "cateCode": "", + "version": "2.12.12", + "wxsysinfo": "eyJicmFuZCI6IkhVQVdFSSIsIm1vZGVsIjoiTk9ILUFOMDAiLCJwaXhlbFJhdGlvIjozLjUsInNjcmVlbldpZHRoIjozODQsInNjcmVlbkhlaWdodCI6NzkyLCJ3aW5kb3dXaWR0aCI6Mzg0LCJ3aW5kb3dIZWlnaHQiOjc5Miwic3RhdHVzQmFySGVpZ2h0IjozOSwibGFuZ3VhZ2UiOiJ6aC1IYW5zIiwidmVyc2lvbiI6I23123113161RlbSI6Ik9wZW5IYXJtb255LTQuMC4xMC4xMCIsInBsYXRmb3JtIjoiT3Blbkhhcm1vbnkiLCJmb250U2l6ZVNldHRpbmciOjE2LCJTREtWZXJzaW9uIjoiMTAiLCJiZW5jaG1hcmtMZXZlbCI6LTEsImFsYnVtQXV0aG9yaXplZCI6ZmFsc2UsImNhbWVyYUF1dGhvcml6ZWQiOmZhbHNlLCJsb2NhdGlvbkF1dGhvcml6ZWQisdfwefsdgv3Bob25lQXV0aG9yaXplZCI6ZmFsgwegfwegwegsdgfkF1dGhvcml6ZWQiOnRydWUsInBob25lQ2FsZW5kYXJBdXRob3JpemVkIjpmYWxzZSwiYmx1ZXRvb3RoRW5hYmxlZCI6dHJ1ZSwqwrqwdasdafsdfgdfghergewvcxbcvxcvhdfydid2lmaUVuYWJsZWQiOnRydWUsInNhZmVBcmVhIjp7ImJvdHRvbSI6NzkyLCJoZWlnaHQiOjc1MywibGVmdCI6MCwicmlnaHQiOjM4NCwidG9wIjozOSwid2lkdGgiOjM4NH0sImxvY2F0aW9uUmVkdWNlZEFjY3VyYWN5Ijp0cnVlLCJ0aGVtZSI6ImxpZ2h0IiwisefkwoejfowfwecHBJZCI6ImNvbS53dWJhLmxpZmVfQkxQYzZzTlIyNFhpSGFmZExXako4UnErbS9rckNxVXdwV3Bqam1jRGZTRkZKMkNDQlNZTHFOUlBiZmdCeXFlYkl2emw0Q0tKZ2ZQbnBjaTN3VE9leElZPSJ9LCJlbmFibGVEZWJ1ZyI6dHJ1ZSwiZGV2aWNlT3JpZW50YXRpb24iOiJxx3J0cmFpdCJ9", + "listName": "bj" + }, + fail(res){ + console.log('request fail **** ', res) + endFun() + }, + success(res) { + console.log('request result ***** ', res.data) + endFun() + }, + }) + })) + } + + Promise.all(promiseArray) + .then((result)=>{ + const totalTime = Date.now() - startTime + const logs: string[] = [] + + let serialTime = 0 + result.forEach((value, index)=>{ + logs.push(`请求${index}的耗时: ${value} ms`) + serialTime += value + }) + + logs.push(`并发请求时间:${totalTime}ms,串行请求时间:${serialTime} ms`) + logs.push(`是否为并行执行:${totalTime < serialTime}`) + this.setState({ + requestConcurrentResult: logs.join('\n') + }) + }) + } + requestHignConcurentTest = ()=>{ + const startTime = Date.now() + const promiseArray:Promise[] = [] + for (let i=1; i <= 30; i++) { + promiseArray.push(methodTime((endFun)=>{ + // 日志请求 + Taro.request({ + url: 'http://10.253.108.182:9999/api/pressure/feed?app=sdfwef&lon=&lat=&session=sdfwefwefsgrhrjgjtyjkyukyuksdfxsddr×tamp=170442018xx28&mediauid=dfghrhgfjyukhmgertdfbvdfhrtyrtdfg&devidmd5=IMEI&utm_source=xxun&spm=u-2h6kyt1yf988m1ww31.wx_mjh_feed_zhaogongzuo&brand=HUAWEI&os=OpenHarmony&model=NOH-AN00&city=bj&cate=pugongjg&slot=lm_list_template&pn=1&ps=10&url=https%3A%2F%2Fwxzzmp.xx.com%2Flist.shtml%3F-15%3D20&sign=3ccfb781037ed655120d63c4b5e5c391&debug=1', + method: 'GET', + data: {}, + header: { + "Content-Type": "application/x-www-form-urlencoded,application/json", + "scene": 1001, + "appCode": "0", + "thirdKey": "UPYIu5EGmjPu2pQqHOYUaMLk0j4m5tgt9aK1tboYlYeixxkotYfsTvbyRSPNNNjH", + "cateCode": "", + "version": 2.2, + "wxsysinfo": "eyJicmFuZCI6IkhVQVdFSSIsIm1vZGVsIjoiTk9ILUFOMDAiLCJwaXhlbFJhdGlvIjozLjUsInNjcmVlbldpZHRoIjozODQsInNjcmVlbkhlaWdodCI6NzkyLCJ3aW5kb3dXaWR0aCI6Mzg0LCJ3aW5kb3dIZWlnaHQiOjc5Miwic3RhdHVzQmFySGVpZ2h0IjozOSwibGFuZ3VhZ2UiOiJ6aC1IYW5zIiwidmVyc2lvbiI6IjQuMC4xMC4xMCIsInN5c3RlbSI6Ik9wZW5IYXJtb255LTQuMC4xMC4xMCIsInBsYXRmb3JtIjoiT3Blbkhhcm1vbnkiLCJmb250U2l6ZVNldHRpbmciOjE2LCJTREtWZXJzaW9uIjoiMTAiLCJiZW5jaG1hcmtMZXZlbCI6LTEsImFsYnVtQXV0aG9yaXplZCI6ZmFsc2UsImNhbWVyYUF1dGhvcmaserwefsdgesryhcvbiOmZhbHNlLCJtaWNyb3Bob25lQXV0aG9yaXplZCI6ZmFsc2UsIm5vdGlmaWNhdGlvbkF1dGhvcml6ZWQiOnRydWUsInBob25lQ2FsZW5kYXJBdXRob3JpemVkIjpmYWxzZSwiYmx1ZXRvb3RoRW5hYmxlZCI6dHJ1ZSwibG9jYXRpb25FbmFibGVkIjpmYWxzZSwid2lmaUVuYWJsZerteyrbdfdserytrhbdfgdLCJoZWlnaHQiOjc1MywibGVmdCI6MCwicmlnaHQiOjM4NCwidG9wIjozOSwid2lkdGgiOjM4NH0sImxvY2F0aW9uUmVkdWNlZEFjY3VyYWN5Ijp0cnVlLCJ0aGVtZSI6ImxpZ2h0IiwiaG9zdCI6eyJhcHBJZCI6ImNvbS53dWJhLmxpZmVfQkxQYzZzTlIyNFhpSGFmZExXako4UnErbS9rckNxVXdwV3Bqam1jRGZTRkZKMkNDQlNZTHFOUlBiZmdCeXFlYkl2emw0Q0tKZ2ZQbnBjaTN3VE9leElZPSJ9LCJlbmFibGVEZWJ1ZyI6dHJ1ZSwiZGV2aWNlT3JpZW50YXRpb24iOiJxx3J0cmFpdCJ9", + "listName": "bj", + "content-type": "application/json", + "idxx": "B41CF5FA70F3DD19B1D87389CF045C8A1614CBEE645A9174BDDFDF1265A56129", + "Cookie": "PPU=\"\";idxx=sdfergdshrthfbscaswqr;sessionid=sdddgerhfgjntfyjvzserweagergsderty;", + "accuracy": "", + "geo": "", + "abtest": "" + }, + fail(res){ + console.log('request fail **** ', res) + endFun() + }, + success(res) { + console.log('request result ***** ', JSON.stringify(res.data)) + endFun() + }, + }) + })) + } + + Promise.all(promiseArray) + .then((result)=>{ + const totalTime = Date.now() - startTime + const logs: string[] = [] + + let serialTime = 0 + result.forEach((value, index)=>{ + logs.push(`请求${index}的耗时: ${value} ms`) + serialTime += value + }) + + logs.push(`并发请求时间:${totalTime}ms,串行请求时间:${serialTime} ms`) + logs.push(`可能线程数:${serialTime / totalTime}`) + this.setState({ + requestHignConcurrentResult: logs.join('\n') + }) + }) + } + requestByJsTest=()=>{ + const startTime = Date.now() + const promiseArray:Promise[] = [] + for (let i=1; i <= 30; i++) { + promiseArray.push(methodTime((endFun)=>{jsFetch(endFun)})) + } + Promise.all(promiseArray) + .then((result)=>{ + const totalTime = Date.now() - startTime + const logs: string[] = [] + + let serialTime = 0 + result.forEach((value, index)=>{ + logs.push(`请求${index}的耗时: ${value} ms`) + serialTime += value + }) + + logs.push(`并发请求时间:${totalTime}ms,串行请求时间:${serialTime} ms`) + logs.push(`可能线程数:${serialTime / totalTime}`) + this.setState({ + requestByJsResult: logs.join('\n') + }) + }) + } + render() { + const { syncSingleResult, requestSingleResult,requestConcurrentResult,requestHignConcurrentResult,syncResult, requestByJsResult } = this.state + return ( + + + { + syncSingleResult.split("\n").map((text, index)=>{ + return ( + + {text} +
+
+ ) + }) + } +
+ + + { + syncResult.split("\n").map((text, index)=>{ + return ( + + {text} +
+
+ ) + }) + } +
+ + + { + requestSingleResult.split("\n").map((text, index)=>{ + return ( + + {text} +
+
+ ) + }) + } +
+ + + { + requestConcurrentResult.split("\n").map((text, index)=>{ + return ( + + {text} +
+
+ ) + }) + } +
+ + + { + requestHignConcurrentResult.split("\n").map((text, index)=>{ + return ( + + {text} +
+
+ ) + }) + } +
+ + + { + requestByJsResult.split("\n").map((text, index)=>{ + return ( + + {text} +
+
+ ) + }) + } +
+ +
+ ) + } +} diff --git a/examples/mini-program-example/src/styles/mixins.scss b/examples/mini-program-example/src/styles/mixins.scss new file mode 100644 index 000000000000..c00e30314aad --- /dev/null +++ b/examples/mini-program-example/src/styles/mixins.scss @@ -0,0 +1,60 @@ +/** + * 对于部分不兼容的样式,可以通过 mixins 统一处理 + */ + +/** + * // NOTE Taro 编译成 RN 时对 border 的处理有问题 + * RN 不支持针对某一边设置 style,即 border-bottom-style 会报错 + * 那么 border-bottom: 1px 就需要写成如下形式: + * border: 0 style color; border-bottom-width: 1px; + */ +@mixin border($dir, $width, $style, $color) { + border: 0 $style $color; + @each $d in $dir { + #{border-#{$d}-width}: $width; + } +} + +/** + * 对于不能打包到 RN 的样式,可以用 mixins 引入,相对美观一些 + */ +@mixin eject($attr, $value) { + /*postcss-pxtransform rn eject enable*/ + #{$attr}: $value; + /*postcss-pxtransform rn eject disable*/ +} + +/** + * // TODO 1px 的线在各端上实现方式不同,统一出来后续再兼容,目前注意两点: + * 1. Taro 中大写的 PX 不会被编译成 rpx/em,但 RN 还未兼容该写法 + * 2. H5 中 1px(转成 rem 后实际小于 0.5px) + border-radius 会导致 border 不显示 + */ +@mixin hairline($attr) { + #{$attr}: 1px; + @include eject($attr, 1PX); +} + +/** + * NOTE RN 无法通过 text-overflow 实现省略号,这些代码不能打包到 RN 中 + */ +@mixin text-ellipsis() { + /*postcss-pxtransform rn eject enable*/ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + /*postcss-pxtransform rn eject disable*/ +} + +/** + * NOTE 实现多行文本省略,RN 用 Text 标签的 numberOfLines,H5/小程序用 -webkit-line-clamp + */ +@mixin lamp-clamp($line) { + /*postcss-pxtransform rn eject enable*/ + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: $line; + /* autoprefixer: ignore next */ + -webkit-box-orient: vertical; + /*postcss-pxtransform rn eject disable*/ +} diff --git a/examples/mini-program-example/src/styles/tabPage.scss b/examples/mini-program-example/src/styles/tabPage.scss new file mode 100644 index 000000000000..d4314e89b5af --- /dev/null +++ b/examples/mini-program-example/src/styles/tabPage.scss @@ -0,0 +1,85 @@ +@import '@/styles/variables.scss'; + +.index-hd { + padding: 80px 80px 40px; + text-align: center; + } + .index-bd { + padding: 0 30px 40px; + } + .index-ft { + padding-bottom: 20px; + text-align: center; + } + .index-logo { + width: 86px; + height: 86px; + align-self: center; + } + .index-desc { + margin-top: 20px; + color: rgba(0, 0, 0, 0.5); + font-size: 28px; + } + + .navigator-box { + opacity: 0; + position: relative; + background-color: $color-bg-base; + line-height: 1.41176471; + font-size: 34px; + transform: translateY(-50%); + transition: 0.3s; + border-top: 1px solid $color-bg; + } + .navigator-box-show { + opacity: 1; + transform: translateY(0); + } + .navigator { + padding: 20px 30px; + } + .navigator-arrow { + position: absolute; + right: 56px; + top: 20px; + color: rgba(0, 0, 0, 0.3); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.454 6.58l1.06-1.06 5.78 5.779a.996.996 0 010 1.413l-5.78 5.779-1.06-1.061 5.425-5.425-5.425-5.424z' fill='%23B2B2B2' fill-rule='evenodd'/%3E%3C/svg%3E"); + width: 24px; + height: 48px; + } + .navigator-bottom-line { + border-bottom: 1px solid $color-bg; + } + + .kind-list-item { + margin: 20px 0; + background-color: $color-bg-base; + border-radius: 4px; + overflow: hidden; + } + .kind-list-text { + flex: 1; + } + .kind-list-img { + width: 60px; + height: 60px; + } + .kind-list-item-hd { + padding: 30px; + display: flex; + align-items: center; + flex-direction: row; + transition: opacity 0.3s; + } + .kind-list-item-hd-show { + opacity: 0.2; + } + .kind-list-item-bd { + height: 0; + overflow: hidden; + } + .kind-list-item-bd-show { + height: auto; + } + \ No newline at end of file diff --git a/examples/mini-program-example/src/styles/variables.scss b/examples/mini-program-example/src/styles/variables.scss new file mode 100644 index 000000000000..8d5d183be9e0 --- /dev/null +++ b/examples/mini-program-example/src/styles/variables.scss @@ -0,0 +1,98 @@ +$hd: 2 !default; // 基本单位 + +/* The Color of O2Team Brand */ +$color-brand: #6190e8 !default; +$color-brand-light: #78a4f4 !default; +$color-brand-dark: #346fc2 !default; + +/* Color */ +$color-success: #317af7 !default; +$color-error: #e84026 !default; +$color-warning: #ed6f21 !default; +$color-oncall: #64bb5c !default; +$color-advanced: #63d095 !default; + +/* Color Palette */ +$color-black-0: #000 !default; +$color-black-1: #333 !default; +$color-black-2: #7f7f7f !default; +$color-black-3: #b2b2b2 !default; + +$color-grey-0: #333 !default; +$color-grey-1: #666 !default; +$color-grey-2: #999 !default; +$color-grey-3: #ccc !default; +$color-grey-4: #e5e5e5 !default; +$color-grey-5: #f0f0f0 !default; +$color-grey-6: #f7f7f7 !default; + +$color-white: #fff !default; + +/* Text Color */ +$color-text-base: #333 !default; // 文字的基本色 +$color-text-base-inverse: #fff !default; // 反色 +$color-text-secondary: #36d57d !default; // 辅助色 +$color-text-placeholder: #c9c9c9 !default; +$color-text-disabled: #ccc !default; +$color-text-title: #2c405a !default; // 文章标题 +$color-text-paragraph: #3f536e !default; // 文章段落 + +/* Link */ +$color-link: #6190e8 !default; +$color-link-hover: #79a1eb !default; +$color-link-active: #4f7de2 !default; +$color-link-disabled: #bfbfbf !default; + +/* 背景色 */ +$color-bg: #fff !default; +$color-bg-base: #f1f3f5 !default; +$color-bg-light: #ecf5fd !default; +$color-bg-lighter: tint($color-bg-light, 50%) !default; +$color-bg-grey: #f7f7f7 !default; + +/* 边框颜色 */ +$color-border-base: #c5d9e8 !default; +$color-border-split: tint($color-border-base, 20%) !default; // 分割线 +$color-border-light: tint($color-border-base, 30%) !default; +$color-border-lighter: tint($color-border-base, 50%) !default; +$color-border-lightest: tint($color-border-base, 80%) !default; +$color-border-grey: #ccc !default; + +/* 图标颜色 */ +$color-icon-base: #ccc !default; + +/* Border Radius */ +$border-radius-sm: 2px * $hd !default; +$border-radius-md: 4px * $hd !default; +$border-radius-lg: 6px * $hd !default; +$border-radius-circle: 50% !default; + +/* 透明度 */ +$opacity-active: 0.6 !default; // Button 等组件点击态额透明度 +$opacity-disabled: 0.4 !default; // Button 等组件禁用态的透明度 + +/* Font */ +$font-size-xs: 10px * $hd !default; // 非常用字号,用于标签 +$font-size-sm: 12px * $hd !default; // 用于辅助信息 +$font-size-base: 14px * $hd !default; // 常用字号 +$font-size-lg: 16px * $hd !default; // 常规标题 +$font-size-xl: 18px * $hd !default; // 大标题 +$font-size-xxl: 20px * $hd !default; // 用于大号的数字 + +/* 水平间距 */ +$spacing-h-sm: 5px * $hd !default; +$spacing-h-md: 8px * $hd !default; +$spacing-h-lg: 12px * $hd !default; +$spacing-h-xl: 16px * $hd !default; + +/* 垂直间距 */ +$spacing-v-xs: 3px * $hd !default; +$spacing-v-sm: 6px * $hd !default; +$spacing-v-md: 9px * $hd !default; +$spacing-v-lg: 12px * $hd !default; +$spacing-v-xl: 15px * $hd !default; + +/* 图标尺寸 */ +$icon-size-sm: 18px * $hd !default; +$icon-size-md: 22px * $hd !default; +$icon-size-lg: 36px * $hd !default; diff --git a/examples/mini-program-example/src/util/nativeApi.ts b/examples/mini-program-example/src/util/nativeApi.ts new file mode 100644 index 000000000000..5ddecd49d9dc --- /dev/null +++ b/examples/mini-program-example/src/util/nativeApi.ts @@ -0,0 +1,11 @@ +// @proxyClassSign('') +class NativeApi { + // @ts-ignore + @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) + harmonyNavigateTo(options: any) { + return options + } +} + +const nativeApi = new NativeApi() +export default nativeApi diff --git a/examples/mini-program-example/src/util/util.ts b/examples/mini-program-example/src/util/util.ts new file mode 100644 index 000000000000..6ac07fed470b --- /dev/null +++ b/examples/mini-program-example/src/util/util.ts @@ -0,0 +1,77 @@ +function setCallbackRes(res, type, apiIndex) { + if (apiIndex != -1) { + const apiList = this.state.list + if (apiList[apiIndex].callbackRes == null) { + apiList[apiIndex].callbackRes = {} + } + if (type === 'success' || type === 'fail') { + if (apiList[apiIndex].callbackRes['success']) { + delete apiList[apiIndex].callbackRes['success'] + } + if (apiList[apiIndex].callbackRes['fail']) { + delete apiList[apiIndex].callbackRes['fail'] + } + } + apiList[apiIndex].callbackRes[type] = res + this.setState({ + list: apiList, + }) + } +} + +let startTime = NaN + +function getCostTime() { + return startTime ? Date.now() - startTime : -1 +} + +export const TestConsole = { + consoleTest: (apiName: string) => { + startTime = Date.now() + console.log( + `\n%c------------------------------start test [${apiName}]------------------------------`, + 'color:blue;font-weight:bold' + ) + }, + consoleSuccess: function (res, apiIndex = -1) { + const costTime = getCostTime() + setCallbackRes.call(this, res, 'success', apiIndex) + setCallbackRes.call(this, costTime, 'costTime', apiIndex) + console.log('%csuccess:\n', 'color:green;font-weight:bold', { success: res, costTime }) + }, + consoleFail: function (res, apiIndex = -1) { + const costTime = getCostTime() + setCallbackRes.call(this, res, 'fail', apiIndex) + setCallbackRes.call(this, costTime, 'costTime', apiIndex) + console.log('%cfail:\n', 'color:red;font-weight:bold', { fail: res, costTime }) + }, + consoleComplete: function (res, apiIndex = -1) { + const costTime = getCostTime() + setCallbackRes.call(this, res, 'complete', apiIndex) + setCallbackRes.call(this, costTime, 'costTime', apiIndex) + console.log('%ccomplete:\n', 'color:black;font-weight:bold', { complete: res, costTime }) + }, + consoleResult: function (res, apiIndex = -1) { + const costTime = getCostTime() + startTime = NaN + setCallbackRes.call(this, res, 'result', apiIndex) + setCallbackRes.call(this, costTime, 'costTime', apiIndex) + console.log('%cresult:\n', 'color:blue;font-weight:bold', { result: res, costTime }) + }, + consoleOnCallback: function (res, apiName, apiIndex = -1) { + const costTime = getCostTime() + setCallbackRes.call(this, res, 'callback', apiIndex) + setCallbackRes.call(this, costTime, 'costTime', apiIndex) + console.log(`%c${apiName} callback:\n`, 'color:green;font-weight:bold', { callback: res, costTime }) + }, + consoleNormal: (name: string, data?: any) => { + if (data) { + console.log(`%c${name}:\n`, 'color:gray;font-weight:bold', data) + } else { + console.log(`%c${name}`, 'color:gray;font-weight:bold') + } + }, + consoleDebug: (name: string, errMsg?: any) => { + console.warn('debug:\n', name, ':', errMsg) + }, +} diff --git a/examples/mini-program-example/tsconfig.json b/examples/mini-program-example/tsconfig.json new file mode 100644 index 000000000000..d252b2fe4109 --- /dev/null +++ b/examples/mini-program-example/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "es2017", + "module": "commonjs", + "removeComments": false, + "preserveConstEnums": true, + "moduleResolution": "node", + "experimentalDecorators": true, + "noImplicitAny": false, + "allowSyntheticDefaultImports": true, + "outDir": "lib", + "noUnusedLocals": true, + "noUnusedParameters": true, + "strictNullChecks": true, + "sourceMap": true, + "baseUrl": ".", + "rootDir": ".", + "jsx": "react-jsx", + "allowJs": true, + "resolveJsonModule": true, + "typeRoots": ["node_modules/@types"], + "paths": { + "@/styles/*": ["./src/styles/*"], + "@/util/*": ["./src/util/*"], + "@/assets/*": ["./src/assets/*"], + "@/components/*": ["./src/components/*"] + } + }, + "include": ["./src", "./types"], + "compileOnSave": false +} diff --git a/examples/mini-program-example/types/global.d.ts b/examples/mini-program-example/types/global.d.ts new file mode 100644 index 000000000000..36087b094c99 --- /dev/null +++ b/examples/mini-program-example/types/global.d.ts @@ -0,0 +1,19 @@ +/// + +declare module '*.png'; +declare module '*.gif'; +declare module '*.jpg'; +declare module '*.jpeg'; +declare module '*.svg'; +declare module '*.css'; +declare module '*.less'; +declare module '*.scss'; +declare module '*.sass'; +declare module '*.styl'; + +declare namespace NodeJS { + interface ProcessEnv { + TARO_ENV: 'weapp' | 'swan' | 'alipay' | 'h5' | 'rn' | 'tt' | 'quickapp' | 'qq' | 'jd' + } +} + From 93fedf68ed73b20374c4d767fccaec64a62f1d2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E9=98=B3?= Date: Tue, 2 Apr 2024 14:39:28 +0800 Subject: [PATCH 03/19] =?UTF-8?q?=E5=90=8C=E6=AD=A5harmony=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E5=BC=80=E5=8F=91=E5=88=86=E6=94=AF=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=9A=E4=BE=8B=E5=AD=90=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/mini-program-example/package.json | 11 +++-------- pnpm-workspace.yaml | 1 + 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/examples/mini-program-example/package.json b/examples/mini-program-example/package.json index ca5dd7be450e..0b9da6885b90 100644 --- a/examples/mini-program-example/package.json +++ b/examples/mini-program-example/package.json @@ -20,8 +20,7 @@ "build:qq": "taro build --type qq", "build:jd": "taro build --type jd", "build:quickapp": "taro build --type quickapp", - "build:mpharmony": "taro build --type mpharmony", - "build:mpandroid": "taro build --type mpandroid", + "build:harmony-hybrid": "taro build --type harmony-hybrid", "dev:weapp": "npm run build:weapp -- --watch", "dev:swan": "npm run build:swan -- --watch", "dev:alipay": "npm run build:alipay -- --watch", @@ -31,8 +30,7 @@ "dev:qq": "npm run build:qq -- --watch", "dev:jd": "npm run build:jd -- --watch", "dev:quickapp": "npm run build:quickapp -- --watch", - "dev:mpharmony": "npm run build:mpharmony -- --watch", - "dev:mpandroid": "npm run build:mpandroid -- --watch", + "dev:harmony-hybrid": "npm run build:harmony-hybrid -- --watch", "clear:mpharmony": "rm -rf node_modules/.taro/mpharmony && npm run dev:mpharmony", "rebuild": "cd ../../packages/%npm_config_package% && pnpm build && cd ../../examples/mini-program-example && rimraf node_modules && pnpm install" }, @@ -53,10 +51,7 @@ "@tarojs/plugin-platform-jd": "workspace:*", "@tarojs/plugin-platform-qq": "workspace:*", "@tarojs/plugin-platform-h5": "workspace:*", - "@tarojs/plugin-platform-mpharmony": "workspace:*", - "@tarojs/plugin-platform-mpandroid": "workspace:*", - "@tarojs/components-mpharmony": "workspace:*", - "@tarojs/taro-mpharmony": "workspace:*", + "@tarojs/plugin-platform-harmony-hybrid": "workspace:*", "@tarojs/runtime": "workspace:*", "@tarojs/shared": "workspace:*", "@tarojs/taro": "workspace:*", diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b20453aa7e24..c0042802e850 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,3 +4,4 @@ packages: - '!**/__tests__/**' - 'npm/**' - 'crates/native_binding' + - 'examples/mini-program-example' From 7cf1285192566c3aa0a579e9680e45e2f26eb478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E9=98=B3?= Date: Wed, 3 Apr 2024 15:59:31 +0800 Subject: [PATCH 04/19] =?UTF-8?q?=E5=90=8C=E6=AD=A5harmony=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E5=BC=80=E5=8F=91=E5=88=86=E6=94=AF=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=9A=E9=80=82=E9=85=8D=E6=9C=80=E6=96=B0=E7=9A=84?= =?UTF-8?q?Taro=20Api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/mini-program-example/package.json | 2 +- .../src/pages/api/basics/basics/index.tsx | 2 +- .../pages/component/navigator/navigator.js | 2 +- .../build/config/harmony-definition.json | 227 +- .../taro-platform-harmony-hybrid/package.json | 10 +- .../src/api/apis/ad/index.ts | 68 + .../src/api/apis/ai/facial.ts | 20 + .../src/api/apis/ai/index.ts | 23 + .../src/api/apis/ai/inference.ts | 13 + .../src/api/apis/ai/visual.ts | 57 + .../src/api/apis/alipay/index.ts | 13 + .../src/api/apis/cloud/index.ts | 81 + .../api/apis/data-analysis/getExptInfoSync.ts | 9 + .../src/api/apis/data-analysis/index.ts | 15 + .../api/apis/data-analysis/reportAnalytics.ts | 7 + .../api/apis/device/wifi/offWifiConnected.ts | 2 +- .../wifi/offWifiConnectedWithPartialInfo.ts | 2 +- .../src/api/apis/framework/index.ts | 2 - .../src/api/apis/index.ts | 2 +- .../src/api/apis/location/getLocation.ts | 6 +- .../api/apis/location/offLocationChange.ts | 10 +- .../apis/location/offLocationChangeError.ts | 4 +- .../src/api/apis/location/onLocationChange.ts | 4 +- .../apis/location/onLocationChangeError.ts | 6 +- .../api/apis/location/startLocationUpdate.ts | 6 +- .../location/startLocationUpdateBackground.ts | 6 +- .../api/apis/location/stopLocationUpdate.ts | 6 +- .../src/api/apis/media/EditorContext.ts | 16 +- .../apis/storage/getBackgroundFetchData.ts | 5 +- .../apis/storage/setBackgroundFetchToken.ts | 16 +- .../src/api/apis/storage/util.ts | 2 +- .../tsconfig.json | 9 +- pnpm-lock.yaml | 3547 ++++++----------- 33 files changed, 1718 insertions(+), 2482 deletions(-) create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ad/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts create mode 100644 packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts diff --git a/examples/mini-program-example/package.json b/examples/mini-program-example/package.json index 0b9da6885b90..018d091f750d 100644 --- a/examples/mini-program-example/package.json +++ b/examples/mini-program-example/package.json @@ -31,7 +31,7 @@ "dev:jd": "npm run build:jd -- --watch", "dev:quickapp": "npm run build:quickapp -- --watch", "dev:harmony-hybrid": "npm run build:harmony-hybrid -- --watch", - "clear:mpharmony": "rm -rf node_modules/.taro/mpharmony && npm run dev:mpharmony", + "clear:harmony-hybrid": "rm -rf node_modules/.taro/harmony-hybrid && npm run dev:harmony-hybrid", "rebuild": "cd ../../packages/%npm_config_package% && pnpm build && cd ../../examples/mini-program-example && rimraf node_modules && pnpm install" }, "browserslist": [ diff --git a/examples/mini-program-example/src/pages/api/basics/basics/index.tsx b/examples/mini-program-example/src/pages/api/basics/basics/index.tsx index 13f449a39511..35407ba61c79 100644 --- a/examples/mini-program-example/src/pages/api/basics/basics/index.tsx +++ b/examples/mini-program-example/src/pages/api/basics/basics/index.tsx @@ -4,7 +4,7 @@ import { View } from '@tarojs/components' import { TestConsole } from '@/util/util' import ButtonList from '@/components/buttonList' import './index.scss' -import definition from '@tarojs/plugin-platform-mpharmony/build/config/harmony-definition.json' +import definition from '@tarojs/plugin-platform-harmony-hybrid/build/config/harmony-definition.json' /** * 基础 diff --git a/examples/mini-program-example/src/pages/component/navigator/navigator.js b/examples/mini-program-example/src/pages/component/navigator/navigator.js index 2c170c0cb4ac..daa1b96778fe 100644 --- a/examples/mini-program-example/src/pages/component/navigator/navigator.js +++ b/examples/mini-program-example/src/pages/component/navigator/navigator.js @@ -23,7 +23,7 @@ export default class PageSwitch extends React.Component { - {Taro.getEnv() != Taro.ENV_TYPE.WEB && Taro.getEnv() != Taro.ENV_TYPE.MPHARMONY ? ( + {Taro.getEnv() != Taro.ENV_TYPE.WEB && Taro.getEnv() != Taro.ENV_TYPE.HARMONYHYBRID ? ( { + return new InterstitialAd() +} + +/** + * 插屏广告组件类 + * + * @canUse InterstitialAd + * @null_implementation + */ +class InterstitialAd implements Taro.InterstitialAd { + destroy (): void { + + } + + offClose (_callback: Taro.InterstitialAd.OnCloseCallback): void { + + } + + offError (_callback: Taro.InterstitialAd.OnErrorCallback): void { + + } + + offLoad (_callback: Taro.InterstitialAd.OnLoadCallback): void { + + } + + onClose (_callback: Taro.InterstitialAd.OnCloseCallback): void { + + } + + onError (_callback: Taro.InterstitialAd.OnErrorCallback): void { + + } + + onLoad (_callback: Taro.InterstitialAd.OnLoadCallback): void { + + } + + load (): Promise { + return Promise.resolve() + } + + show (): Promise { + return Promise.resolve() + } +} \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts new file mode 100644 index 000000000000..c20c834c7093 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts @@ -0,0 +1,20 @@ +/** + * 停止人脸识别 + * + * @canNotUse stopFaceDetect + */ +export { stopFaceDetect } from '@tarojs/taro-h5' + +/** + * 初始化人脸识别 + * + * @canNotUse initFaceDetect + */ +export { initFaceDetect } from '@tarojs/taro-h5' + +/** + * 人脸识别 + * + * @canNotUse faceDetect + */ +export { faceDetect } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts new file mode 100644 index 000000000000..1f7d7ab74e9e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts @@ -0,0 +1,23 @@ +/** + * 获取通用AI推理引擎版本 + * + * @canNotUse getInferenceEnvInfo + */ +export { getInferenceEnvInfo } from '@tarojs/taro-h5' + +/** + * 创建 AI 推理 Session + * + * @canNotUse createInferenceSession + */ +export { createInferenceSession } from '@tarojs/taro-h5' + +/** + * InferenceSession类 + * + * @canNotUse InferenceSession + */ + +export * from './facial' +export * from './inference' +export * from './visual' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts new file mode 100644 index 000000000000..7798cfe768e9 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts @@ -0,0 +1,13 @@ +/** + * 获取通用AI推理引擎版本 + * + * @canNotUse getInferenceEnvInfo + */ +export { getInferenceEnvInfo } from '@tarojs/taro-h5' + +/** + * 创建 AI 推理 Session + * + * @canNotUse createInferenceSession + */ +export { createInferenceSession } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts new file mode 100644 index 000000000000..d21115072b8a --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts @@ -0,0 +1,57 @@ +/** + * 判断支持版本 + * + * @canNotUse isVKSupport + */ +export { isVKSupport } from '@tarojs/taro-h5' + +/** + * 创建 vision kit 会话对象 + * + * @canNotUse createVKSession + */ +export { createVKSession } from '@tarojs/taro-h5' + +/** + * @canNotUse VKBodyAnchor + */ + +/** + * @canNotUse VKCamera + */ + +/** + * @canNotUse VKDepthAnchor + */ + +/** + * @canNotUse VKFaceAnchor + */ + +/** + * @canNotUse VKFrame + */ + +/** + * @canNotUse VKHandAnchor + */ + +/** + * @canNotUse VKMarkerAnchor + */ + +/** + * @canNotUse VKOCRAnchor + */ + +/** + * @canNotUse VKOSDAnchor + */ + +/** + * @canNotUse VKPlaneAnchor + */ + +/** + * @canNotUse VKSession + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts new file mode 100644 index 000000000000..0def59eb7178 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts @@ -0,0 +1,13 @@ +/** + * 获取支付宝会员的基础信息 + * + * @canNotUse getOpenUserInfo + */ +export { getOpenUserInfo } from '@tarojs/taro-h5' + +/** + * 此接口是用于发起支付的 API + * + * @canNotUse tradePay + */ +export { tradePay } from '@tarojs/taro-h5' \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts new file mode 100644 index 000000000000..60ddd21d943e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts @@ -0,0 +1,81 @@ +import Taro from '@tarojs/api' + +/** + * 云开发 SDK 实例 + * + * @canUse cloud + * @null_implementation + */ +export class cloud implements Taro.cloud { + Cloud: new (options: Taro.cloud.IOptions) => Taro.Cloud + + init = (config?: Taro.cloud.IInitConfig) => { + if (config && typeof config === 'object') { + // do nothing + } else { + // do nothing + } + Promise.resolve() + } + + CloudID = (cloudID: string) => { + if (typeof cloudID === 'string') { + // do nothing + } + } + + // @ts-ignore + callFunction = (param: any) => { + if (typeof param === 'object') { + // do nothing + } + } + + // @ts-ignore + uploadFile = (param: any) => { + if (typeof param === 'object') { + // do nothing + } + } + + // @ts-ignore + downloadFile = (param: any) => { + if (typeof param === 'object') { + // do nothing + } + } + + // @ts-ignore + getTempFileURL = (param: any) => { + if (typeof param === 'object') { + // do nothing + } + } + + // @ts-ignore + deleteFile = (param: any) => { + if (typeof param === 'object') { + // do nothing + } + } + + // @ts-ignore + database = (config?: Taro.cloud.IConfig) => { + if (config && typeof config === 'object') { + // do nothing + } + } + + // @ts-ignore + callContainer = (params: any) => { + if (typeof params === 'object') { + // do nothing + } + } +} + +/** + * 云开发 SDK 数据库实例 Taro.cloud.database() + * + * @canNotUse DB + */ \ No newline at end of file diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts new file mode 100644 index 000000000000..64cc4ba3a83e --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts @@ -0,0 +1,9 @@ +/** + * canvas 组件的绘图上下文 + * + * @canUse getExptInfoSync + * @null_implementation + */ +export const getExptInfoSync = function () { + return {} +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts new file mode 100644 index 000000000000..81080ede9c06 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts @@ -0,0 +1,15 @@ +/** + * 自定义业务数据监控上报接口 + * + * @canNotUse reportMonitor + */ +export { reportMonitor } from '@tarojs/taro-h5' + +/** + * 事件上报 + * + * @canNotUse reportEvent + */ +export * from './getExptInfoSync' +export * from './reportAnalytics' +export { reportEvent } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts new file mode 100644 index 000000000000..6b53070b5471 --- /dev/null +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts @@ -0,0 +1,7 @@ +/** + * canvas 组件的绘图上下文 + * + * @canUse reportAnalytics + * @null_implementation + */ +export const reportAnalytics = function () {} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts index 5a34fb4fda0e..02dfdd6464f6 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnected.ts @@ -34,6 +34,6 @@ export const offWifiConnected: typeof Taro.offWifiConnected = (callback) => { frequency: res.wifi.frequency, }, } - callback(result) + callback && callback(result) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts index faaaa4163892..9a862115f830 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/offWifiConnectedWithPartialInfo.ts @@ -23,6 +23,6 @@ export const offWifiConnectedWithPartialInfo: typeof Taro.offWifiConnectedWithPa /** 只包含 SSID 属性的 WifiInfo 对象 */ wifi: { SSID: res.wifi.SSID }, } - callback(result) + callback && callback(result) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts index 0aa360fc9155..2bd93e5217dd 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts @@ -5,8 +5,6 @@ export const getApp: typeof Taro.getApp = function { return Promise.reject(res) } const { - altitude = 'false', + altitude = false, highAccuracyExpireTime, isHighAccuracy = false, type = 'wgs84', @@ -37,7 +37,7 @@ export const getLocation: typeof Taro.getLocation = (options) => { return new Promise((resolve, reject) => { const loc: Partial = {} let flag = true - let timeoutId: NodeJS.Timeout + let timeoutId: number // 只有开启了高精度定位才需要设置超时时间,默认超时时间10秒 if (isHighAccuracy) { timeoutId = setTimeout(function () { @@ -79,7 +79,7 @@ export const getLocation: typeof Taro.getLocation = (options) => { /** 位置的精确度 */ accuracy: res.accuracy, /** 高度,单位 m */ - altitude: JSON.parse(altitude) ? res.altitude : 0, + altitude: altitude ? res.altitude : 0, /** 水平精度,单位 m */ horizontalAccuracy: res.accuracy, /** 纬度,范围为 -90~90,负数表示南纬 */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts index 157fd31a67b5..77f4ae460a74 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChange.ts @@ -1,11 +1,11 @@ import Taro from '@tarojs/taro' -import { shouldBeFunction } from 'src/utils' +import { shouldBeFunction } from 'src/api/apis/utils' import native from '../NativeApi' /** * 取消监听实时地理位置变化事件 - * + * * @canUse offLocationChange */ export const offLocationChange: typeof Taro.offLocationChange = (callback) => { @@ -34,10 +34,6 @@ export const offLocationChange: typeof Taro.offLocationChange = (callback) => { /** 垂直精度,单位 m */ verticalAccuracy: res.accuracy, } - const result: TaroGeneral.CallbackResult = { - /** 错误信息 */ - errMsg: JSON.stringify(cbResult), - } - callback(result) + callback && callback(cbResult) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts index f7c6223ff83d..85a2b13c3355 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/offLocationChangeError.ts @@ -1,9 +1,9 @@ import Taro from '@tarojs/taro' -import { shouldBeFunction } from 'src/utils' +import { shouldBeFunction } from 'src/api/apis/utils' /** * 取消监听持续定位接口返回失败时触发 - * + * * @canUse offLocationChangeError */ export const offLocationChangeError: typeof Taro.offLocationChangeError = (callback) => { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts index 28e62344addf..cc0f7aea604a 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChange.ts @@ -1,11 +1,11 @@ import Taro from '@tarojs/taro' -import { shouldBeFunction } from 'src/utils' +import { shouldBeFunction } from 'src/api/apis/utils' import native from '../NativeApi' /** * 监听实时地理位置变化事件 - * + * * @canUse onLocationChange * @__callback [accuracy, altitude, horizontalAccuracy, atitude, longitude, speed, verticalAccuracy] */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts index 8bedc0660116..5604f5bce3f2 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/onLocationChangeError.ts @@ -1,9 +1,9 @@ import Taro from '@tarojs/taro' -import { shouldBeFunction } from 'src/utils' +import { shouldBeFunction } from 'src/api/apis/utils' -/** +/** * 监听持续定位接口返回失败时触发 - * + * * @canUse onLocationChangeError * @__callback [errCode] */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts index e46141f22c1f..72c1b5c24488 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdate.ts @@ -1,10 +1,10 @@ import Taro from '@tarojs/taro' -import { shouldBeObject } from 'src/utils' -import { MethodHandler } from 'src/utils/handler' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' /** * 开启小程序进入前台时接收位置消息 - * + * * @canUse startLocationUpdate */ export const startLocationUpdate: typeof Taro.startLocationUpdate = (options) => { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts index 88ae1df9266e..a7210588c2c4 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/startLocationUpdateBackground.ts @@ -1,10 +1,10 @@ import Taro from '@tarojs/taro' -import { shouldBeObject } from 'src/utils' -import { MethodHandler } from 'src/utils/handler' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' /** * 开启小程序进入前后台时均接收位置消息 - * + * * @canUse startLocationUpdateBackground */ export const startLocationUpdateBackground: typeof Taro.startLocationUpdateBackground = (options) => { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts index 7eab28054507..059188966bdc 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/stopLocationUpdate.ts @@ -1,10 +1,10 @@ import Taro from '@tarojs/taro' -import { shouldBeObject } from 'src/utils' -import { MethodHandler } from 'src/utils/handler' +import { shouldBeObject } from 'src/api/apis/utils' +import { MethodHandler } from 'src/api/apis/utils/handler' /** * 关闭监听实时位置变化,前后台都停止消息接收 - * + * * @canUse stopLocationUpdate */ export const stopLocationUpdate: typeof Taro.stopLocationUpdate = (options) => { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts index a126cc8b003d..4b1088faf61f 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/media/EditorContext.ts @@ -2,10 +2,10 @@ import Taro from '@tarojs/api' /** * EditorContext 实例 - * + * * @canUse EditorContext - * @__class - * [blur, clear, format, getContents, getSelectionText, insertDivider, insertImage, insertText, redo, removeFormat,\ + * @__class + * [blur, clear, format, getContents, getSelectionText, insertDivider, insertImage, insertText, redo, removeFormat,\ * scrollIntoView, setContents, undo] */ export class EditorContext implements Taro.EditorContext { @@ -169,15 +169,15 @@ export class EditorContext implements Taro.EditorContext { } } - getContents (option?: Taro.EditorContext.GetContents.Option | undefined): void { + getContents (option?: Taro.EditorContext.GetContentsOption): void { try { const editor = this.activeEditor() if (editor) { option?.success?.({ - errMsg: 'ok', - html: editor.getContent({ format: 'html' }), - text: editor.getContent({ format: 'text' }), - delta: editor.getContent({ format: 'tree' }), + errMsg: 'ok' + // html: editor.getContent({ format: 'html' }), + // text: editor.getContent({ format: 'text' }), + // delta: editor.getContent({ format: 'tree' }), }) } } catch (e) { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts index 630d62c3bdc6..a162b65b3aef 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/getBackgroundFetchData.ts @@ -2,13 +2,14 @@ import Taro from '@tarojs/taro' /** * 拉取 backgroundFetch 客户端缓存数据 - * + * * @canUse getBackgroundFetchData * @null_implementation */ export const getBackgroundFetchData: typeof Taro.getBackgroundFetchData = function (option) { const name = 'getBackgroundFetchData' - return new Promise(() => { + + return new Promise(() => { try { option?.fail?.({ errMsg: `${name}:fail` }) } finally { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts index 48848040aeae..b1902f8066dd 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/setBackgroundFetchToken.ts @@ -15,18 +15,18 @@ export const setBackgroundFetchToken: typeof Taro.setBackgroundFetchToken = func // options must be an Object const isObject = shouldBeObject(options) - if (!isObject.flag) { - const res = { errMsg: `${name}:fail ${isObject.msg}` } - console.error(res.errMsg) - return - } + // if (!isObject.flag) { + // const res = { errMsg: `${name}:fail ${isObject.msg}` } + // console.error(res.errMsg) + // return + // } const { token, success, fail, complete } = options as Exclude const handle = new MethodHandler({ name, success, fail, complete }) // token must be String - if (typeof token !== 'string') { - return handle.fail({ + if (!isObject.flag || typeof token !== 'string') { + return handle.fail({ errMsg: getParameterError({ para: 'token', correct: 'string', @@ -35,7 +35,7 @@ export const setBackgroundFetchToken: typeof Taro.setBackgroundFetchToken = func }) } - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { native.setStorage({ key: 'setStorageSync', data: 'token', diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts index 1b82a78f0354..046b5b7c0001 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/storage/util.ts @@ -9,7 +9,7 @@ export function displayExecRes (status: Status, method: string) { } export function handleData (data) { - const type = typeof dataåå + const type = typeof data let obj = {} if (type === 'symbol') { diff --git a/packages/taro-platform-harmony-hybrid/tsconfig.json b/packages/taro-platform-harmony-hybrid/tsconfig.json index 5ae684488b8a..1a0486f3d24a 100644 --- a/packages/taro-platform-harmony-hybrid/tsconfig.json +++ b/packages/taro-platform-harmony-hybrid/tsconfig.json @@ -2,13 +2,12 @@ "extends": "../../tsconfig.root.json", "compilerOptions": { "baseUrl": ".", - "declaration": true, - "module": "ESNext", - "sourceMap": true, "esModuleInterop": true, - "outDir": "dist" + "module": "ESNext", + "preserveConstEnums": true, + "sourceMap": true }, - "include": ["./src", "./types", "rollup.config.ts"], + "include": ["./src", "./types", "./rollup.config.ts"], "ts-node": { "compilerOptions": { "forceConsistentCasingInFileNames": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32b9fd84ae6c..67b8e6000943 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: false + excludeLinksFromLockfile: false + packageExtensionsChecksum: 4febf6665ca78aef4b39b91c5bd86984 importers: @@ -381,6 +385,127 @@ importers: specifier: 5.3.1 version: registry.npmjs.org/ava@5.3.1 + examples/mini-program-example: + dependencies: + '@babel/runtime': + specifier: ^7.14.5 + version: registry.npmjs.org/@babel/runtime@7.21.5 + '@tarojs/components': + specifier: workspace:* + version: link:../../packages/taro-components + '@tarojs/helper': + specifier: workspace:* + version: link:../../packages/taro-helper + '@tarojs/plugin-framework-react': + specifier: workspace:* + version: link:../../packages/taro-plugin-react + '@tarojs/plugin-platform-alipay': + specifier: workspace:* + version: link:../../packages/taro-alipay + '@tarojs/plugin-platform-h5': + specifier: workspace:* + version: link:../../packages/taro-platform-h5 + '@tarojs/plugin-platform-harmony-hybrid': + specifier: workspace:* + version: link:../../packages/taro-platform-harmony-hybrid + '@tarojs/plugin-platform-jd': + specifier: workspace:* + version: link:../../packages/taro-jd + '@tarojs/plugin-platform-qq': + specifier: workspace:* + version: link:../../packages/taro-qq + '@tarojs/plugin-platform-swan': + specifier: workspace:* + version: link:../../packages/taro-swan + '@tarojs/plugin-platform-tt': + specifier: workspace:* + version: link:../../packages/taro-tt + '@tarojs/plugin-platform-weapp': + specifier: workspace:* + version: link:../../packages/taro-weapp + '@tarojs/react': + specifier: workspace:* + version: link:../../packages/taro-react + '@tarojs/runtime': + specifier: workspace:* + version: link:../../packages/taro-runtime + '@tarojs/shared': + specifier: workspace:* + version: link:../../packages/shared + '@tarojs/taro': + specifier: workspace:* + version: link:../../packages/taro + react: + specifier: ^18.2.0 + version: registry.npmjs.org/react@18.2.0 + react-dom: + specifier: ^18.2.0 + version: registry.npmjs.org/react-dom@18.2.0(react@18.2.0) + devDependencies: + '@babel/core': + specifier: ^7.8.0 + version: registry.npmjs.org/@babel/core@7.21.8 + '@pmmmwh/react-refresh-webpack-plugin': + specifier: ^0.5.5 + version: registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin@0.5.10(@types/webpack@4.41.33)(react-refresh@0.11.0)(webpack-dev-server@4.11.1)(webpack@5.78.0) + '@tarojs/cli': + specifier: workspace:* + version: link:../../packages/taro-cli + '@tarojs/webpack5-runner': + specifier: workspace:* + version: link:../../packages/taro-webpack5-runner + '@types/node': + specifier: ^18.15.11 + version: registry.npmjs.org/@types/node@18.19.3 + '@types/react': + specifier: ^18.2.0 + version: registry.npmjs.org/@types/react@18.2.6 + '@types/webpack-env': + specifier: ^1.13.6 + version: registry.npmjs.org/@types/webpack-env@1.18.4 + '@typescript-eslint/eslint-plugin': + specifier: ^5.20.0 + version: registry.npmjs.org/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.41.0)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.20.0 + version: registry.npmjs.org/@typescript-eslint/parser@5.62.0(eslint@8.41.0)(typescript@4.9.5) + babel-preset-taro: + specifier: workspace:* + version: link:../../packages/babel-preset-taro + eslint: + specifier: ^8.12.0 + version: registry.npmjs.org/eslint@8.41.0 + eslint-config-taro: + specifier: workspace:* + version: link:../../packages/eslint-config-taro + eslint-plugin-import: + specifier: ^2.12.0 + version: registry.npmjs.org/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.62.0)(eslint@8.41.0) + eslint-plugin-react: + specifier: ^7.8.2 + version: registry.npmjs.org/eslint-plugin-react@7.10.0(eslint@8.41.0) + eslint-plugin-react-hooks: + specifier: ^4.2.0 + version: registry.npmjs.org/eslint-plugin-react-hooks@4.6.0(eslint@8.41.0) + postcss: + specifier: ^8.4.18 + version: registry.npmjs.org/postcss@8.4.23 + react-refresh: + specifier: ^0.11.0 + version: registry.npmjs.org/react-refresh@0.11.0 + stylelint: + specifier: ^14.4.0 + version: registry.npmjs.org/stylelint@14.16.1 + ts-node: + specifier: ^10.9.1 + version: registry.npmjs.org/ts-node@10.9.1(@types/node@18.19.3)(typescript@4.9.5) + typescript: + specifier: ^4.1.0 + version: registry.npmjs.org/typescript@4.9.5 + webpack: + specifier: 5.78.0 + version: registry.npmjs.org/webpack@5.78.0 + npm/darwin-arm64: {} npm/darwin-x64: {} @@ -408,13 +533,13 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -436,13 +561,13 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -515,19 +640,19 @@ importers: version: registry.npmjs.org/@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.8) '@vue/babel-preset-jsx': specifier: ^1.2.4 - version: registry.npmjs.org/@vue/babel-preset-jsx@1.4.0(@babel/core@7.21.8) + version: registry.npmjs.org/@vue/babel-preset-jsx@1.4.0(@babel/core@7.21.8)(vue@2.7.14) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -567,10 +692,10 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) packages/eslint-config-taro: dependencies: @@ -622,10 +747,10 @@ importers: devDependencies: jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) postcss: specifier: ^8.4.18 version: registry.npmjs.org/postcss@8.4.23 @@ -641,22 +766,22 @@ importers: devDependencies: jest: specifier: ^29.7.0 - version: registry.npmjs.org/jest@29.7.0 + version: registry.npmjs.org/jest@29.7.0(@types/node@14.18.45) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.7.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.7.0)(typescript@4.9.5) packages/shared: devDependencies: '@rollup/plugin-typescript': specifier: ^11.1.0 - version: registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(tslib@2.6.2)(typescript@4.9.5) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) lodash: specifier: ^4.17.21 version: registry.npmjs.org/lodash@4.17.21 @@ -665,10 +790,10 @@ importers: version: registry.npmjs.org/rollup@3.21.5 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -677,16 +802,16 @@ importers: devDependencies: jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -699,10 +824,10 @@ importers: devDependencies: jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 @@ -743,7 +868,7 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -765,7 +890,7 @@ importers: version: registry.npmjs.org/@babel/core@7.21.8 '@rollup/plugin-babel': specifier: ^6.0.4 - version: registry.npmjs.org/@rollup/plugin-babel@6.0.4(@babel/core@7.21.8)(rollup@3.21.5) + version: registry.npmjs.org/@rollup/plugin-babel@6.0.4(@babel/core@7.21.8)(@types/babel__core@7.20.0)(rollup@3.21.5) '@rollup/plugin-commonjs': specifier: ^24.0.0 version: registry.npmjs.org/@rollup/plugin-commonjs@24.1.0(rollup@3.21.5) @@ -774,13 +899,13 @@ importers: version: registry.npmjs.org/@rollup/plugin-node-resolve@15.0.2(rollup@3.21.5) '@rollup/plugin-typescript': specifier: ^11.1.0 - version: registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(tslib@2.6.2)(typescript@4.9.5) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 @@ -792,10 +917,10 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -874,16 +999,16 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -941,16 +1066,16 @@ importers: version: link:../taro jest: specifier: ^29.7.0 - version: registry.npmjs.org/jest@29.7.0 + version: registry.npmjs.org/jest@29.7.0(@types/node@14.18.45) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.7.0 + version: registry.npmjs.org/jest-cli@29.7.0(@types/node@14.18.45) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.7.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.7.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.7.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1123,7 +1248,7 @@ importers: version: registry.npmjs.org/rollup-plugin-postcss@4.0.2(postcss@8.4.23) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1178,7 +1303,7 @@ importers: version: registry.npmjs.org/rollup-plugin-postcss@4.0.2(postcss@8.4.23) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1227,7 +1352,7 @@ importers: version: registry.npmjs.org/rollup-plugin-postcss@4.0.2(postcss@8.4.23) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1276,7 +1401,7 @@ importers: version: registry.npmjs.org/rollup-plugin-postcss@4.0.2(postcss@8.4.23) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1310,7 +1435,7 @@ importers: version: registry.npmjs.org/@babel/core@7.21.8 '@rollup/plugin-babel': specifier: ^6.0.4 - version: registry.npmjs.org/@rollup/plugin-babel@6.0.4(@babel/core@7.21.8)(rollup@3.21.5) + version: registry.npmjs.org/@rollup/plugin-babel@6.0.4(@babel/core@7.21.8)(@types/babel__core@7.20.0)(rollup@3.21.5) '@rollup/plugin-commonjs': specifier: ^24.0.0 version: registry.npmjs.org/@rollup/plugin-commonjs@24.1.0(rollup@3.21.5) @@ -1334,7 +1459,7 @@ importers: version: registry.npmjs.org/rollup-plugin-postcss@4.0.2(postcss@8.4.23) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1441,16 +1566,16 @@ importers: devDependencies: jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1529,10 +1654,10 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-jsdom@29.5.0 @@ -1544,7 +1669,7 @@ importers: version: registry.npmjs.org/jest-mock-console@1.3.0(jest@29.5.0) jest-transform-css: specifier: ^6.0.1 - version: registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23) + version: registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23)(ts-node@10.9.1) jsdom: specifier: ^21.1.0 version: registry.npmjs.org/jsdom@21.1.2 @@ -1571,10 +1696,10 @@ importers: version: registry.npmjs.org/rollup-plugin-postcss@4.0.2(postcss@8.4.23) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1631,7 +1756,7 @@ importers: version: registry.npmjs.org/cross-spawn@7.0.3 debug: specifier: 4.3.4 - version: registry.npmjs.org/debug@4.3.4 + version: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) dotenv: specifier: ^16.0.3 version: registry.npmjs.org/dotenv@16.0.3 @@ -1668,10 +1793,10 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 @@ -1696,7 +1821,7 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1715,16 +1840,16 @@ importers: devDependencies: jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -1905,16 +2030,16 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 jest-transform-css: specifier: ^6.0.1 - version: registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23) + version: registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23)(ts-node@10.9.1) memfs: specifier: ^3.1.2 version: registry.npmjs.org/memfs@3.5.1 @@ -1926,13 +2051,13 @@ importers: version: registry.npmjs.org/postcss@8.4.23 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 vue-loader: specifier: ^15.10.1 - version: registry.npmjs.org/vue-loader@15.10.1(css-loader@5.2.7)(lodash@4.17.21)(webpack@4.46.0) + version: registry.npmjs.org/vue-loader@15.10.1(css-loader@5.2.7)(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0)(vue-template-compiler@2.7.14)(webpack@4.46.0) webpack-merge: specifier: ^4.2.2 version: registry.npmjs.org/webpack-merge@4.2.2 @@ -1984,7 +2109,7 @@ importers: version: registry.npmjs.org/@rollup/plugin-node-resolve@15.0.2(rollup@3.21.5) '@rollup/plugin-typescript': specifier: ^11.1.0 - version: registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(typescript@5.3.3) + version: registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(tslib@2.6.2)(typescript@5.3.3) '@tarojs/taro': specifier: workspace:* version: link:../taro @@ -1999,7 +2124,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@5.3.3) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@5.3.3) ts-node: specifier: ^10.9.1 version: registry.npmjs.org/ts-node@10.9.1(@types/node@14.18.45)(typescript@5.3.3) @@ -2036,6 +2161,9 @@ importers: '@tarojs/taro-h5': specifier: workspace:* version: link:../taro-h5 + axios: + specifier: ^1.6.8 + version: registry.npmjs.org/axios@1.6.8 babel-plugin-transform-taroapi: specifier: workspace:* version: link:../babel-plugin-transform-taroapi @@ -2062,17 +2190,23 @@ importers: version: 3.6.2 devDependencies: '@rollup/plugin-commonjs': - specifier: ^20.0.0 - version: 20.0.0(rollup@2.79.1) + specifier: ^24.0.0 + version: registry.npmjs.org/@rollup/plugin-commonjs@24.1.0(rollup@3.21.5) '@rollup/plugin-json': - specifier: ^4.1.0 - version: 4.1.0(rollup@2.79.1) + specifier: ^6.1.0 + version: registry.npmjs.org/@rollup/plugin-json@6.1.0(rollup@3.21.5) '@rollup/plugin-node-resolve': - specifier: ^8.0.0 - version: 8.4.0(rollup@2.79.1) + specifier: ^15.0.0 + version: registry.npmjs.org/@rollup/plugin-node-resolve@15.0.2(rollup@3.21.5) '@rollup/plugin-typescript': specifier: ^11.1.0 - version: 11.1.1(rollup@2.79.1)(typescript@5.3.3) + version: 11.1.1(rollup@3.21.5)(tslib@2.6.2)(typescript@5.3.3) + '@tarojs/taro': + specifier: workspace:* + version: link:../taro + '@types/node': + specifier: ^14.14.31 + version: registry.npmjs.org/@types/node@14.18.45 fast-glob: specifier: ^3.3.1 version: 3.3.1 @@ -2080,17 +2214,17 @@ importers: specifier: ^4.17.21 version: 4.17.21 rollup: - specifier: ^2.79.0 - version: 2.79.1 + specifier: ^3.8.1 + version: registry.npmjs.org/rollup@3.21.5 rollup-plugin-node-externals: specifier: ^5.0.0 - version: 5.1.3(rollup@2.79.1) + version: 5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: 3.2.0(rollup@2.79.1)(typescript@5.3.3) + version: 3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@5.3.3) ts-node: specifier: ^10.9.1 - version: 10.9.1(typescript@5.3.3) + version: 10.9.1(@types/node@14.18.45)(typescript@5.3.3) tsconfig-paths: specifier: ^3.14.1 version: 3.14.2 @@ -2133,7 +2267,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2158,10 +2292,10 @@ importers: version: registry.npmjs.org/@rollup/plugin-node-resolve@15.0.2(rollup@3.21.5) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 @@ -2173,10 +2307,10 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) tslib: specifier: ^2.6.2 version: registry.npmjs.org/tslib@2.6.2 @@ -2201,7 +2335,7 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2257,7 +2391,7 @@ importers: devDependencies: '@pmmmwh/react-refresh-webpack-plugin': specifier: ^0.5.5 - version: registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.11.0)(webpack@5.78.0) + version: registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin@0.5.10(@types/webpack@4.41.33)(react-refresh@0.11.0)(webpack-dev-server@4.11.1)(webpack@5.78.0) '@prefresh/babel-plugin': specifier: ^0.4.1 version: registry.npmjs.org/@prefresh/babel-plugin@0.4.4 @@ -2299,7 +2433,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2342,7 +2476,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2382,7 +2516,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2419,7 +2553,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2465,7 +2599,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2493,7 +2627,7 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@2.79.1) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2515,10 +2649,10 @@ importers: version: link:../shared jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 @@ -2530,10 +2664,10 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2687,7 +2821,7 @@ importers: dependencies: '@rollup/plugin-babel': specifier: ^5.3.1 - version: registry.npmjs.org/@rollup/plugin-babel@5.3.1(@babel/core@7.21.8)(rollup@2.79.1) + version: registry.npmjs.org/@rollup/plugin-babel@5.3.1(@babel/core@7.21.8)(@types/babel__core@7.20.0)(rollup@2.79.1) '@rollup/plugin-commonjs': specifier: ^20.0.0 version: registry.npmjs.org/@rollup/plugin-commonjs@20.0.0(rollup@2.79.1) @@ -2751,10 +2885,10 @@ importers: version: registry.npmjs.org/expo-file-system@15.1.1(expo@47.0.14) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 @@ -2778,7 +2912,7 @@ importers: version: registry.npmjs.org/rollup@2.79.1 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2839,16 +2973,16 @@ importers: version: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) postcss: specifier: ^8.4.18 version: registry.npmjs.org/postcss@8.4.23 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -2970,16 +3104,16 @@ importers: version: link:../taro-helper jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -3028,10 +3162,10 @@ importers: version: registry.npmjs.org/@types/jest@29.5.1 jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-jsdom@29.5.0 @@ -3046,10 +3180,10 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -3135,10 +3269,10 @@ importers: version: registry.npmjs.org/@vue/runtime-core@3.2.41 jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 @@ -3150,10 +3284,10 @@ importers: version: registry.npmjs.org/rollup-plugin-node-externals@5.1.3(rollup@3.21.5) rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5) ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -3171,10 +3305,10 @@ importers: version: link:../shared react-native-device-info: specifier: ~10.3.0 - version: registry.npmjs.org/react-native-device-info@10.3.1 + version: registry.npmjs.org/react-native-device-info@10.3.1(react-native@0.70.9) react-native-root-siblings: specifier: ^4.1.1 - version: registry.npmjs.org/react-native-root-siblings@4.1.1 + version: registry.npmjs.org/react-native-root-siblings@4.1.1(react@18.2.0) devDependencies: '@types/react-native': specifier: ^0.69.8 @@ -3231,7 +3365,7 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -3337,7 +3471,7 @@ importers: devDependencies: '@tarojs/taro': specifier: 2.2.19 - version: registry.npmjs.org/@tarojs/taro@2.2.19 + version: registry.npmjs.org/@tarojs/taro@2.2.19(nervjs@1.5.7) '@types/babel-core': specifier: 6.25.6 version: registry.npmjs.org/@types/babel-core@6.25.6 @@ -3416,7 +3550,7 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -3438,7 +3572,7 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -3574,16 +3708,16 @@ importers: version: registry.npmjs.org/@types/webpack-dev-server@3.11.6 jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 jest-transform-css: specifier: ^6.0.1 - version: registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23) + version: registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23)(ts-node@10.9.1) memfs: specifier: ^3.1.2 version: registry.npmjs.org/memfs@3.5.1 @@ -3595,13 +3729,13 @@ importers: version: registry.npmjs.org/postcss@8.4.23 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 vue-loader: specifier: ^15.10.1 - version: registry.npmjs.org/vue-loader@15.10.1(css-loader@5.2.7)(lodash@4.17.21)(webpack@4.46.0) + version: registry.npmjs.org/vue-loader@15.10.1(css-loader@5.2.7)(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0)(vue-template-compiler@2.7.14)(webpack@4.46.0) webpack: specifier: 4.46.0 version: registry.npmjs.org/webpack@4.46.0 @@ -3638,16 +3772,16 @@ importers: devDependencies: jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-node: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-node@29.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -3821,7 +3955,7 @@ importers: version: registry.npmjs.org/vm2@3.9.17 vue-loader: specifier: ^15.10.1 - version: registry.npmjs.org/vue-loader@15.10.1(css-loader@6.7.3)(lodash@4.17.21)(webpack@5.78.0) + version: registry.npmjs.org/vue-loader@15.10.1(css-loader@6.7.3)(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0)(vue-template-compiler@2.7.14)(webpack@5.78.0) webpack-chain: specifier: 6.5.1 version: registry.npmjs.org/webpack-chain@6.5.1 @@ -3916,7 +4050,7 @@ importers: version: registry.npmjs.org/@babel/core@7.21.8 '@rollup/plugin-babel': specifier: ^5.2.1 - version: registry.npmjs.org/@rollup/plugin-babel@5.3.1(@babel/core@7.21.8)(rollup@2.79.1) + version: registry.npmjs.org/@rollup/plugin-babel@5.3.1(@babel/core@7.21.8)(@types/babel__core@7.20.0)(rollup@2.79.1) '@rollup/plugin-commonjs': specifier: ^20.0.0 version: registry.npmjs.org/@rollup/plugin-commonjs@20.0.0(rollup@2.79.1) @@ -3928,10 +4062,10 @@ importers: version: registry.npmjs.org/@types/sinon@7.5.2 jest: specifier: ^29.3.1 - version: registry.npmjs.org/jest@29.5.0 + version: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-cli: specifier: ^29.3.1 - version: registry.npmjs.org/jest-cli@29.5.0 + version: registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-environment-jsdom: specifier: ^29.5.0 version: registry.npmjs.org/jest-environment-jsdom@29.5.0 @@ -3943,13 +4077,13 @@ importers: version: registry.npmjs.org/rollup@2.79.1 rollup-plugin-ts: specifier: ^3.0.2 - version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) + version: registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5) sinon: specifier: ^7.5.0 version: registry.npmjs.org/sinon@7.5.0 ts-jest: specifier: ^29.0.5 - version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.5.0)(typescript@4.9.5) + version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(esbuild@0.19.7)(jest@29.5.0)(typescript@4.9.5) typescript: specifier: ^4.7.4 version: registry.npmjs.org/typescript@4.9.5 @@ -4004,7 +4138,7 @@ importers: version: registry.npmjs.org/@babel/core@7.21.8 jest: specifier: ^29.7.0 - version: registry.npmjs.org/jest@29.7.0 + version: registry.npmjs.org/jest@29.7.0(@types/node@14.18.45) ts-jest: specifier: ^29.0.5 version: registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.7.0)(typescript@4.9.5) @@ -4014,13 +4148,6 @@ importers: packages: - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, tarball: https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.18 - /@babel/code-frame@7.0.0-beta.44: resolution: {integrity: sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz} dependencies: @@ -4042,52 +4169,6 @@ packages: resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==, tarball: https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz} engines: {node: '>=6.9.0'} - /@babel/core@7.12.3: - resolution: {integrity: sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==, tarball: https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.21.5 - '@babel/helper-module-transforms': 7.21.5 - '@babel/helpers': 7.21.5 - '@babel/parser': 7.23.4 - '@babel/template': 7.21.9 - '@babel/traverse': 7.21.5 - '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - convert-source-map: 1.9.0 - debug: registry.npmjs.org/debug@4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - lodash: registry.npmjs.org/lodash@4.17.21 - resolve: registry.npmjs.org/resolve@1.22.2 - semver: registry.npmjs.org/semver@5.7.1 - source-map: registry.npmjs.org/source-map@0.5.7 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/core@7.21.8: - resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==, tarball: https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.21.4 - '@babel/generator': 7.21.5 - '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) - '@babel/helper-module-transforms': 7.21.5 - '@babel/helpers': 7.21.5 - '@babel/parser': 7.23.4 - '@babel/template': 7.21.9 - '@babel/traverse': 7.21.5 - '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - convert-source-map: 1.9.0 - debug: registry.npmjs.org/debug@4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: registry.npmjs.org/semver@6.3.0 - transitivePeerDependencies: - - supports-color - /@babel/generator@7.0.0-beta.44: resolution: {integrity: sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==, tarball: https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz} dependencies: @@ -4114,7 +4195,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.21.7 - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-validator-option': 7.21.0 browserslist: 4.21.5 lru-cache: registry.npmjs.org/lru-cache@5.1.1 @@ -4128,7 +4209,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.21.7 - '@babel/core': 7.21.8 + '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@babel/helper-validator-option': 7.21.0 browserslist: 4.21.5 lru-cache: registry.npmjs.org/lru-cache@5.1.1 @@ -4165,12 +4246,14 @@ packages: '@babel/types': registry.npmjs.org/@babel/types@7.21.5 transitivePeerDependencies: - supports-color + dev: false /@babel/helper-simple-access@7.21.5: resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==, tarball: https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz} engines: {node: '>=6.9.0'} dependencies: '@babel/types': registry.npmjs.org/@babel/types@7.21.5 + dev: false /@babel/helper-split-export-declaration@7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, tarball: https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz} @@ -4195,6 +4278,7 @@ packages: '@babel/types': registry.npmjs.org/@babel/types@7.21.5 transitivePeerDependencies: - supports-color + dev: false /@babel/highlight@7.0.0-beta.44: resolution: {integrity: sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==, tarball: https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz} @@ -4219,18 +4303,6 @@ packages: dependencies: '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - /@babel/runtime@7.12.1: - resolution: {integrity: sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz} - dependencies: - regenerator-runtime: 0.13.11 - dev: false - - /@babel/runtime@7.21.5: - resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.11 - /@babel/template@7.0.0-beta.44: resolution: {integrity: sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==, tarball: https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz} dependencies: @@ -4260,7 +4332,7 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 '@babel/parser': 7.23.4 '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -4272,63 +4344,6 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, tarball: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.41.0 - eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 - dev: false - - /@eslint-community/regexpp@4.5.1: - resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==, tarball: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: false - - /@eslint/eslintrc@2.0.3: - resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==, tarball: https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: registry.npmjs.org/debug@4.3.4 - espree: 9.5.2 - globals: 13.20.0 - ignore: registry.npmjs.org/ignore@5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: registry.npmjs.org/minimatch@3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@eslint/js@8.41.0: - resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==, tarball: https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, tarball: https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: registry.npmjs.org/debug@4.3.4 - minimatch: registry.npmjs.org/minimatch@3.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, tarball: https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} - engines: {node: '>=12.22'} - dev: false - - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, tarball: https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz} - dev: false - /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, tarball: https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz} engines: {node: '>=6.0.0'} @@ -4389,48 +4404,7 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@rollup/plugin-commonjs@20.0.0(rollup@2.79.1): - resolution: {integrity: sha512-5K0g5W2Ol8hAcTHqcTBHiA7M58tfmYi1o9KxeJuuRNpGaTa5iLjcyemBitCBcKXaHamOBBEH2dGom6v6Unmqjg==, tarball: https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^2.38.3 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 7.2.3 - is-reference: 1.2.1 - magic-string: 0.25.9 - resolve: 1.22.2 - rollup: 2.79.1 - dev: true - - /@rollup/plugin-json@4.1.0(rollup@2.79.1): - resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==, tarball: https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 - dev: true - - /@rollup/plugin-node-resolve@8.4.0(rollup@2.79.1): - resolution: {integrity: sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==, tarball: https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 - deep-freeze: 0.0.1 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.2 - rollup: 2.79.1 - dev: true - - /@rollup/plugin-typescript@11.1.1(rollup@2.79.1)(typescript@5.3.3): + /@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(tslib@2.6.2)(typescript@5.3.3): resolution: {integrity: sha512-Ioir+x5Bejv72Lx2Zbz3/qGg7tvGbxQZALCLoJaGrkNXak/19+vKgKYJYM3i/fJxvsb23I9FuFQ8CUBEfsmBRg==, tarball: https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.1.tgz} engines: {node: '>=14.0.0'} peerDependencies: @@ -4443,25 +4417,14 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + '@rollup/pluginutils': 5.0.2(rollup@3.21.5) resolve: 1.22.2 - rollup: 2.79.1 + rollup: registry.npmjs.org/rollup@3.21.5 + tslib: registry.npmjs.org/tslib@2.6.2 typescript: registry.npmjs.org/typescript@5.3.3 dev: true - /@rollup/pluginutils@3.1.0(rollup@2.79.1): - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, tarball: https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@types/estree': registry.npmjs.org/@types/estree@0.0.39 - estree-walker: registry.npmjs.org/estree-walker@1.0.1 - picomatch: registry.npmjs.org/picomatch@2.3.1 - rollup: 2.79.1 - dev: true - - /@rollup/pluginutils@5.0.2(rollup@2.79.1): + /@rollup/pluginutils@5.0.2(rollup@3.21.5): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==, tarball: https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz} engines: {node: '>=14.0.0'} peerDependencies: @@ -4473,7 +4436,7 @@ packages: '@types/estree': registry.npmjs.org/@types/estree@1.0.1 estree-walker: registry.npmjs.org/estree-walker@2.0.2 picomatch: registry.npmjs.org/picomatch@2.3.1 - rollup: 2.79.1 + rollup: registry.npmjs.org/rollup@3.21.5 dev: true /@tsconfig/node10@1.0.9: @@ -4500,27 +4463,6 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, tarball: https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz} dev: true - /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, tarball: https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz} - dev: false - - /@types/node@14.18.45: - resolution: {integrity: sha512-Nd+FPp60jEaJpm4LAxuLT3wIhB4k0Jdj9DAP4ydqGyMg8DhE+7oM1we+QkwOkpMySTjcqcNfPOWY5kBuAOhkeg==, tarball: https://registry.npmjs.org/@types/node/-/node-14.18.45.tgz} - - /@types/node@16.9.1: - resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==, tarball: https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz} - dev: false - - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==, tarball: https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz} - dev: true - - /@types/node@18.19.3: - resolution: {integrity: sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==, tarball: https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz} - dependencies: - undici-types: 5.26.5 - dev: true - /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, tarball: https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz} dev: true @@ -4529,28 +4471,6 @@ packages: resolution: {integrity: sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg==, tarball: https://registry.npmjs.org/@types/object-path/-/object-path-0.11.1.tgz} dev: true - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==, tarball: https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz} - dev: true - - /@types/react@18.2.6: - resolution: {integrity: sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA==, tarball: https://registry.npmjs.org/@types/react/-/react-18.2.6.tgz} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 - dev: true - - /@types/resolve@1.17.1: - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, tarball: https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz} - dependencies: - '@types/node': 18.19.3 - dev: true - - /@types/scheduler@0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==, tarball: https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz} - dev: true - /@types/semver@7.3.13: resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, tarball: https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz} dev: true @@ -4559,12 +4479,6 @@ packages: resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==, tarball: https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz} dev: true - /@webassemblyjs/ast@1.11.1: - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==, tarball: https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz} - dependencies: - '@webassemblyjs/helper-numbers': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - /@webassemblyjs/ast@1.9.0: resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==, tarball: https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz} dependencies: @@ -4572,69 +4486,28 @@ packages: '@webassemblyjs/helper-wasm-bytecode': 1.9.0 '@webassemblyjs/wast-parser': registry.npmjs.org/@webassemblyjs/wast-parser@1.9.0 - /@webassemblyjs/floating-point-hex-parser@1.11.1: - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==, tarball: https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz} - - /@webassemblyjs/helper-api-error@1.11.1: - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz} - /@webassemblyjs/helper-api-error@1.9.0: resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz} - /@webassemblyjs/helper-buffer@1.11.1: - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz} - /@webassemblyjs/helper-buffer@1.9.0: resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz} - /@webassemblyjs/helper-numbers@1.11.1: - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz} - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@xtuc/long': 4.2.2 - - /@webassemblyjs/helper-wasm-bytecode@1.11.1: - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz} - /@webassemblyjs/helper-wasm-bytecode@1.9.0: resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz} - /@webassemblyjs/ieee754@1.11.1: - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==, tarball: https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz} - dependencies: - '@xtuc/ieee754': 1.2.0 - /@webassemblyjs/ieee754@1.9.0: resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==, tarball: https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz} dependencies: '@xtuc/ieee754': registry.npmjs.org/@xtuc/ieee754@1.2.0 - /@webassemblyjs/leb128@1.11.1: - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==, tarball: https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz} - dependencies: - '@xtuc/long': 4.2.2 - /@webassemblyjs/leb128@1.9.0: resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==, tarball: https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz} dependencies: '@xtuc/long': 4.2.2 - /@webassemblyjs/utf8@1.11.1: - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==, tarball: https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz} - /@webassemblyjs/utf8@1.9.0: resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==, tarball: https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz} - /@webassemblyjs/wasm-gen@1.11.1: - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - /@webassemblyjs/wasm-gen@1.9.0: resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz} dependencies: @@ -4644,16 +4517,6 @@ packages: '@webassemblyjs/leb128': 1.9.0 '@webassemblyjs/utf8': 1.9.0 - /@webassemblyjs/wasm-parser@1.11.1: - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz} - dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 - /@webassemblyjs/wasm-parser@1.9.0: resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz} dependencies: @@ -4676,20 +4539,9 @@ packages: engines: {node: '>=8.0.0'} dev: true - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, tarball: https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz} - /@xtuc/long@4.2.2: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, tarball: https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz} - /acorn-jsx@5.3.2(acorn@8.8.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, tarball: https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.8.2 - dev: false - /acorn-walk@7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==, tarball: https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz} engines: {node: '>=0.4.0'} @@ -4711,12 +4563,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - /acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, tarball: https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, tarball: https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz} engines: {node: '>=0.4.0'} @@ -4738,15 +4584,6 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv@7.2.4: - resolution: {integrity: sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==, tarball: https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: registry.npmjs.org/require-from-string@2.0.2 - uri-js: 4.4.1 - dev: false - /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, tarball: https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz} dependencies: @@ -4777,10 +4614,6 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} engines: {node: '>=8'} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz} - engines: {node: '>=12'} - /arg@4.1.0: resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==, tarball: https://registry.npmjs.org/arg/-/arg-4.1.0.tgz} @@ -4793,9 +4626,6 @@ packages: dependencies: sprintf-js: registry.npmjs.org/sprintf-js@1.0.3 - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz} - /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, tarball: https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} dependencies: @@ -4811,7 +4641,6 @@ packages: es-abstract: 1.21.2 get-intrinsic: 1.2.0 is-string: 1.0.7 - dev: false /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, tarball: https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz} @@ -4862,11 +4691,6 @@ packages: node-releases: 2.0.10 update-browserslist-db: 1.0.11(browserslist@4.21.5) - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, tarball: https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz} - engines: {node: '>=6'} - dev: true - /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, tarball: https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz} dependencies: @@ -4876,6 +4700,7 @@ packages: /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, tarball: https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz} engines: {node: '>=6'} + dev: true /camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, tarball: https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz} @@ -4909,24 +4734,6 @@ packages: upper-case-first: 2.0.2 dev: false - /chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, tarball: https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz} - engines: {node: '>=0.10.0'} - dependencies: - ansi-styles: registry.npmjs.org/ansi-styles@2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: registry.npmjs.org/has-ansi@2.0.0 - strip-ansi: 3.0.1 - supports-color: registry.npmjs.org/supports-color@2.0.0 - dev: false - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} - engines: {node: '>=10'} - dependencies: - ansi-styles: registry.npmjs.org/ansi-styles@4.3.0 - supports-color: registry.npmjs.org/supports-color@7.2.0 - /change-case@4.1.2: resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==, tarball: https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz} dependencies: @@ -4944,10 +4751,6 @@ packages: tslib: registry.npmjs.org/tslib@2.6.2 dev: false - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, tarball: https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz} - dev: true - /compatfactory@2.0.9(typescript@5.3.3): resolution: {integrity: sha512-fvO+AWcmbO7P1S+A3mwm3IGr74eHMeq5ZLhNhyNQc9mVDNHT4oe0Gg0ksdIFFNXLK7k7Z/TYcLAUSQdRgh1bsA==, tarball: https://registry.npmjs.org/compatfactory/-/compatfactory-2.0.9.tgz} engines: {node: '>=14.9.0'} @@ -5011,7 +4814,7 @@ packages: resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==, tarball: https://registry.npmjs.org/crosspath/-/crosspath-2.0.0.tgz} engines: {node: '>=14.9.0'} dependencies: - '@types/node': 17.0.45 + '@types/node': registry.npmjs.org/@types/node@17.0.45 dev: true /cssesc@3.0.0: @@ -5024,10 +4827,6 @@ packages: resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==, tarball: https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz} dev: true - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==, tarball: https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz} - dev: true - /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, tarball: https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz} engines: {node: '>=0.10.0'} @@ -5045,14 +4844,6 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, tarball: https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz} engines: {node: '>=0.10'} - /deep-freeze@0.0.1: - resolution: {integrity: sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg==, tarball: https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz} - dev: true - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} - dev: false - /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, tarball: https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz} engines: {node: '>=0.10.0'} @@ -5078,13 +4869,6 @@ packages: isarray: registry.npmjs.org/isarray@0.0.1 dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, tarball: https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: false - /dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, tarball: https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz} dependencies: @@ -5183,109 +4967,11 @@ packages: engines: {node: '>=10'} dev: false - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, tarball: https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz} - engines: {node: '>=12'} - dev: true - - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==, tarball: https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: false - - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==, tarball: https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - /eslint@8.41.0: - resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==, tarball: https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) - '@eslint-community/regexpp': 4.5.1 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.41.0 - '@humanwhocodes/config-array': 0.11.8 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: registry.npmjs.org/debug@4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.5.2 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - graphemer: 1.4.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: false - - /espree@9.5.2: - resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==, tarball: https://registry.npmjs.org/espree/-/espree-9.5.2.tgz} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 - dev: false - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, tarball: https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: false - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: false - /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, tarball: https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz} engines: {node: '>=4.0'} dev: true - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz} - engines: {node: '>=4.0'} - dev: false - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, tarball: https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz} - dev: true - /esutils@1.1.6: resolution: {integrity: sha512-RG1ZkUT7iFJG9LSHr7KDuuMSlujfeTtMNIcInURxKAxhMtwQhI3NrQhz26gZQYlsYZQKzsnwtpKrFKj9K9Qu1A==, tarball: https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz} engines: {node: '>=0.10.0'} @@ -5316,22 +5002,11 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, tarball: https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} - dev: false - /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, tarball: https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz} dependencies: reusify: 1.0.4 - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, tarball: https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 - dev: false - /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz} engines: {node: '>=8'} @@ -5370,27 +5045,11 @@ packages: locate-path: 6.0.0 path-exists: 4.0.0 - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, tarball: https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.7 - rimraf: 3.0.2 - dev: false - - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, tarball: https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz} - dev: false - /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, tarball: https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz} dependencies: is-callable: 1.2.7 - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz} - dev: true - /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, tarball: https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz} @@ -5409,6 +5068,7 @@ packages: /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, tarball: https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz} engines: {node: '>=6.9.0'} + dev: false /get-intrinsic@1.2.0: resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==, tarball: https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz} @@ -5436,38 +5096,13 @@ packages: dependencies: is-glob: registry.npmjs.org/is-glob@4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: registry.npmjs.org/is-glob@4.0.3 - dev: false - /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, tarball: https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: registry.npmjs.org/minimatch@3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, tarball: https://registry.npmjs.org/globals/-/globals-11.12.0.tgz} engines: {node: '>=4'} - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, tarball: https://registry.npmjs.org/globals/-/globals-13.20.0.tgz} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: false - /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, tarball: https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz} engines: {node: '>= 0.4'} @@ -5479,10 +5114,6 @@ packages: dependencies: get-intrinsic: 1.2.0 - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, tarball: https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz} - dev: false - /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, tarball: https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz} engines: {node: '>=6'} @@ -5543,18 +5174,6 @@ packages: lru-cache: registry.npmjs.org/lru-cache@6.0.0 dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, tarball: https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz} - engines: {node: '>= 4'} - dev: false - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: registry.npmjs.org/resolve-from@4.0.0 - /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, tarball: https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz} engines: {node: '>=0.8.19'} @@ -5564,17 +5183,6 @@ packages: engines: {node: '>=8'} dev: true - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz} - dependencies: - once: registry.npmjs.org/once@1.4.0 - wrappy: registry.npmjs.org/wrappy@1.0.2 - dev: true - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} - dev: true - /internal-slot@1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, tarball: https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz} engines: {node: '>= 0.4'} @@ -5624,11 +5232,6 @@ packages: resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz} engines: {node: '>=0.10.0'} - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz} - engines: {node: '>=0.10.0'} - dev: false - /is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz} engines: {node: '>=4'} @@ -5637,17 +5240,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} engines: {node: '>=8'} - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: false - - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, tarball: https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz} - dev: true - /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, tarball: https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz} engines: {node: '>= 0.4'} @@ -5679,6 +5271,7 @@ packages: /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, tarball: https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz} engines: {node: '>=8'} + dev: false /is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, tarball: https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz} @@ -5696,12 +5289,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, tarball: https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz} - dependencies: - '@types/estree': registry.npmjs.org/@types/estree@1.0.1 - dev: true - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, tarball: https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz} engines: {node: '>= 0.4'} @@ -5753,7 +5340,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, tarball: https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.19.3 + '@types/node': registry.npmjs.org/@types/node@18.19.3 merge-stream: 2.0.0 supports-color: registry.npmjs.org/supports-color@8.1.1 dev: true @@ -5772,12 +5359,6 @@ packages: argparse: 1.0.10 esprima: registry.npmjs.org/esprima@4.0.1 - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, tarball: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz} - hasBin: true - dependencies: - argparse: 2.0.1 - /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, tarball: https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz} hasBin: true @@ -5797,10 +5378,6 @@ packages: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} dev: false - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, tarball: https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} - dev: false - /json5@0.4.0: resolution: {integrity: sha512-5EEuuI7oad0d6c2PcrTRLoLH2JNuI/aJxHsVT2hVFK6fKHu+MXONdhzzzNAlb3JXMeuN1o+kDU78fV1YH6VmKQ==, tarball: https://registry.npmjs.org/json5/-/json5-0.4.0.tgz} hasBin: true @@ -5839,14 +5416,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, tarball: https://registry.npmjs.org/levn/-/levn-0.4.1.tgz} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: false - /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, tarball: https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz} @@ -5892,6 +5461,7 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, tarball: https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz} + dev: true /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz} @@ -5909,12 +5479,6 @@ packages: tslib: registry.npmjs.org/tslib@2.6.2 dev: false - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz} - dependencies: - sourcemap-codec: 1.4.8 - dev: true - /magic-string@0.27.0: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz} engines: {node: '>=12'} @@ -5961,26 +5525,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz} engines: {node: '>= 8'} - /micromatch@3.1.10: - resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==, tarball: https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: registry.npmjs.org/arr-diff@4.0.0 - array-unique: registry.npmjs.org/array-unique@0.3.2 - braces: registry.npmjs.org/braces@2.3.2 - define-property: registry.npmjs.org/define-property@2.0.2 - extend-shallow: registry.npmjs.org/extend-shallow@3.0.2 - extglob: registry.npmjs.org/extglob@2.0.4 - fragment-cache: registry.npmjs.org/fragment-cache@0.2.1 - kind-of: registry.npmjs.org/kind-of@6.0.3 - nanomatch: registry.npmjs.org/nanomatch@1.2.13 - object.pick: registry.npmjs.org/object.pick@1.3.0 - regex-not: registry.npmjs.org/regex-not@1.0.2 - snapdragon: registry.npmjs.org/snapdragon@0.8.2 - to-regex: registry.npmjs.org/to-regex@3.0.2 - transitivePeerDependencies: - - supports-color - /micromatch@3.1.10(supports-color@6.1.0): resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==, tarball: https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz} engines: {node: '>=0.10.0'} @@ -6000,7 +5544,6 @@ packages: to-regex: registry.npmjs.org/to-regex@3.0.2 transitivePeerDependencies: - supports-color - dev: false /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, tarball: https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz} @@ -6024,12 +5567,6 @@ packages: engines: {node: '>=4'} dev: true - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz} - dependencies: - brace-expansion: registry.npmjs.org/brace-expansion@1.1.11 - dev: false - /minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz} engines: {node: '>=16 || 14 >=14.17'} @@ -6061,10 +5598,6 @@ packages: hasBin: true dev: false - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz} - dev: false - /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, tarball: https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz} @@ -6144,24 +5677,6 @@ packages: es-abstract: 1.21.2 dev: false - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz} - dependencies: - wrappy: registry.npmjs.org/wrappy@1.0.2 - dev: true - - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, tarball: https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.3 - dev: false - /p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, tarball: https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz} engines: {node: '>=4'} @@ -6195,12 +5710,6 @@ packages: tslib: registry.npmjs.org/tslib@2.6.2 dev: false - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz} engines: {node: '>=8'} @@ -6278,11 +5787,6 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} dev: true - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz} - engines: {node: '>= 0.8.0'} - dev: false - /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz} engines: {node: '>=6'} @@ -6322,10 +5826,6 @@ packages: engines: {node: '>=8'} dev: true - /react-refresh@0.4.3: - resolution: {integrity: sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==, tarball: https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz} - engines: {node: '>=0.10.0'} - /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, tarball: https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz} engines: {node: '>=8'} @@ -6355,6 +5855,7 @@ packages: /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, tarball: https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + dev: false /regexp.prototype.flags@1.5.0: resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==, tarball: https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz} @@ -6388,23 +5889,16 @@ packages: glob: registry.npmjs.org/glob@6.0.4 optional: true - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz} - hasBin: true - dependencies: - glob: registry.npmjs.org/glob@7.2.3 - dev: false - - /rollup-plugin-node-externals@5.1.3(rollup@2.79.1): + /rollup-plugin-node-externals@5.1.3(rollup@3.21.5): resolution: {integrity: sha512-Q3VMjsn39r0/mjKrX++rFlC7kwL7YZdScdyU7BEo+PrEremal3mnol/1X+wQUU++7NeqC1ZNAeRYnHGtsTu9GQ==, tarball: https://registry.npmjs.org/rollup-plugin-node-externals/-/rollup-plugin-node-externals-5.1.3.tgz} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.60.0 || ^3.0.0 dependencies: - rollup: 2.79.1 + rollup: registry.npmjs.org/rollup@3.21.5 dev: true - /rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@5.3.3): + /rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@5.3.3): resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} engines: {node: '>=14.9.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} peerDependencies: @@ -6433,7 +5927,12 @@ packages: '@swc/helpers': optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@2.79.1) + '@babel/core': registry.npmjs.org/@babel/core@7.21.8 + '@babel/plugin-transform-runtime': registry.npmjs.org/@babel/plugin-transform-runtime@7.21.4(@babel/core@7.21.8) + '@babel/preset-env': registry.npmjs.org/@babel/preset-env@7.21.5(@babel/core@7.21.8) + '@babel/preset-typescript': registry.npmjs.org/@babel/preset-typescript@7.21.5(@babel/core@7.21.8) + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 + '@rollup/pluginutils': 5.0.2(rollup@3.21.5) '@wessberg/stringutil': 1.0.19 ansi-colors: 4.1.3 browserslist: 4.21.5 @@ -6441,20 +5940,12 @@ packages: compatfactory: 2.0.9(typescript@5.3.3) crosspath: 2.0.0 magic-string: 0.27.0 - rollup: 2.79.1 + rollup: registry.npmjs.org/rollup@3.21.5 ts-clone-node: 2.0.4(typescript@5.3.3) tslib: registry.npmjs.org/tslib@2.6.2 typescript: registry.npmjs.org/typescript@5.3.3 dev: true - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, tarball: https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: registry.npmjs.org/fsevents@2.3.2 - dev: true - /rollup@3.21.5: resolution: {integrity: sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==, tarball: https://registry.npmjs.org/rollup/-/rollup-3.21.5.tgz} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -6633,7 +6124,7 @@ packages: dependencies: eastasianwidth: registry.npmjs.org/eastasianwidth@0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: registry.npmjs.org/strip-ansi@7.0.1 /string.prototype.trim@1.2.7: resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==, tarball: https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz} @@ -6682,12 +6173,6 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, tarball: https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz} engines: {node: '>=4'} @@ -6711,6 +6196,7 @@ packages: /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz} engines: {node: '>=8'} + dev: true /supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, tarball: https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} @@ -6727,9 +6213,6 @@ packages: resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==, tarball: https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz} engines: {node: '>=6'} - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, tarball: https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz} - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz} engines: {node: '>=8.0'} @@ -6770,37 +6253,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 14.18.45 - acorn: 8.8.2 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: registry.npmjs.org/typescript@5.3.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - - /ts-node@10.9.1(typescript@5.3.3): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, tarball: https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.3 + '@types/node': registry.npmjs.org/@types/node@14.18.45 acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 @@ -6821,13 +6274,6 @@ packages: strip-bom: 3.0.0 dev: true - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, tarball: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: false - /type-fest@0.12.0: resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz} engines: {node: '>=10'} @@ -6841,11 +6287,6 @@ packages: engines: {node: '>=10'} dev: true - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz} - engines: {node: '>=10'} - dev: false - /type-fest@0.3.1: resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==, tarball: https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz} engines: {node: '>=6'} @@ -6883,10 +6324,6 @@ packages: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz} - dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.5): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==, tarball: https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz} hasBin: true @@ -6976,22 +6413,17 @@ packages: dependencies: isexe: 2.0.0 - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, tarball: https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz} - engines: {node: '>=0.10.0'} - dev: false - /write-file-atomic@2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz} dependencies: graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - imurmurhash: 0.1.4 + imurmurhash: registry.npmjs.org/imurmurhash@0.1.4 signal-exit: 3.0.7 /write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==, tarball: https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz} dependencies: - imurmurhash: 0.1.4 + imurmurhash: registry.npmjs.org/imurmurhash@0.1.4 is-typedarray: registry.npmjs.org/is-typedarray@1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: registry.npmjs.org/typedarray-to-buffer@3.1.5 @@ -7125,6 +6557,32 @@ packages: version: 7.21.7 engines: {node: '>=6.9.0'} + registry.npmjs.org/@babel/core@7.12.3: + resolution: {integrity: sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz} + name: '@babel/core' + version: 7.12.3 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.5 + '@babel/helper-module-transforms': 7.21.5 + '@babel/helpers': 7.21.5 + '@babel/parser': 7.23.4 + '@babel/template': 7.21.9 + '@babel/traverse': 7.21.5 + '@babel/types': registry.npmjs.org/@babel/types@7.21.5 + convert-source-map: 1.9.0 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + lodash: registry.npmjs.org/lodash@4.17.21 + resolve: registry.npmjs.org/resolve@1.22.2 + semver: registry.npmjs.org/semver@5.7.1 + source-map: registry.npmjs.org/source-map@0.5.7 + transitivePeerDependencies: + - supports-color + dev: false + registry.npmjs.org/@babel/core@7.21.8: resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/core/-/core-7.21.8.tgz} name: '@babel/core' @@ -7142,7 +6600,7 @@ packages: '@babel/traverse': registry.npmjs.org/@babel/traverse@7.21.5 '@babel/types': registry.npmjs.org/@babel/types@7.21.5 convert-source-map: registry.npmjs.org/convert-source-map@1.9.0 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) gensync: registry.npmjs.org/gensync@1.0.0-beta.2 json5: registry.npmjs.org/json5@2.2.3 semver: registry.npmjs.org/semver@6.3.0 @@ -7214,7 +6672,7 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': registry.npmjs.org/@babel/compat-data@7.21.7 - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-validator-option': registry.npmjs.org/@babel/helper-validator-option@7.21.0 browserslist: registry.npmjs.org/browserslist@4.21.5 lru-cache: registry.npmjs.org/lru-cache@5.1.1 @@ -7246,7 +6704,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-annotate-as-pure': registry.npmjs.org/@babel/helper-annotate-as-pure@7.18.6 '@babel/helper-environment-visitor': registry.npmjs.org/@babel/helper-environment-visitor@7.21.5 '@babel/helper-function-name': registry.npmjs.org/@babel/helper-function-name@7.21.0 @@ -7291,7 +6749,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-annotate-as-pure': registry.npmjs.org/@babel/helper-annotate-as-pure@7.18.6 regexpu-core: registry.npmjs.org/regexpu-core@5.3.2 semver: registry.npmjs.org/semver@6.3.0 @@ -7322,7 +6780,7 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.8) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) lodash.debounce: registry.npmjs.org/lodash.debounce@4.0.8 resolve: registry.npmjs.org/resolve@1.22.2 semver: registry.npmjs.org/semver@6.3.0 @@ -7440,7 +6898,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-annotate-as-pure': registry.npmjs.org/@babel/helper-annotate-as-pure@7.18.6 '@babel/helper-environment-visitor': registry.npmjs.org/@babel/helper-environment-visitor@7.21.5 '@babel/helper-wrap-function': registry.npmjs.org/@babel/helper-wrap-function@7.20.5 @@ -7661,7 +7119,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-environment-visitor': registry.npmjs.org/@babel/helper-environment-visitor@7.21.5 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/helper-remap-async-to-generator': registry.npmjs.org/@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.12.3) @@ -7695,7 +7153,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-class-features-plugin': registry.npmjs.org/@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 transitivePeerDependencies: @@ -7711,7 +7169,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-class-features-plugin': registry.npmjs.org/@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.21.5 transitivePeerDependencies: @@ -7757,7 +7215,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-class-features-plugin': registry.npmjs.org/@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-decorators': registry.npmjs.org/@babel/plugin-syntax-decorators@7.21.0(@babel/core@7.12.3) @@ -7791,7 +7249,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-do-expressions': registry.npmjs.org/@babel/plugin-syntax-do-expressions@7.18.6(@babel/core@7.12.3) dev: false @@ -7819,7 +7277,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-dynamic-import': registry.npmjs.org/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.12.3) dev: false @@ -7845,7 +7303,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-export-default-from': registry.npmjs.org/@babel/plugin-syntax-export-default-from@7.18.6(@babel/core@7.12.3) dev: false @@ -7872,7 +7330,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-export-namespace-from': registry.npmjs.org/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.12.3) dev: false @@ -7898,7 +7356,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-function-bind': registry.npmjs.org/@babel/plugin-syntax-function-bind@7.18.6(@babel/core@7.12.3) dev: false @@ -7911,7 +7369,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/helper-wrap-function': registry.npmjs.org/@babel/helper-wrap-function@7.20.5 '@babel/plugin-syntax-function-sent': registry.npmjs.org/@babel/plugin-syntax-function-sent@7.18.6(@babel/core@7.12.3) @@ -7928,7 +7386,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-json-strings': registry.npmjs.org/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.12.3) dev: false @@ -7955,7 +7413,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-logical-assignment-operators': registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.12.3) dev: false @@ -7982,7 +7440,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.12.3) dev: false @@ -8009,7 +7467,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-numeric-separator': registry.npmjs.org/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.12.3) dev: false @@ -8037,7 +7495,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': registry.npmjs.org/@babel/compat-data@7.21.7 - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-compilation-targets': registry.npmjs.org/@babel/helper-compilation-targets@7.21.5(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.21.5 '@babel/plugin-syntax-object-rest-spread': registry.npmjs.org/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.3) @@ -8069,7 +7527,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-optional-catch-binding': registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.12.3) dev: false @@ -8097,7 +7555,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/helper-skip-transparent-expression-wrappers': registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers@7.20.0 '@babel/plugin-syntax-optional-chaining': registry.npmjs.org/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.12.3) @@ -8126,7 +7584,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-pipeline-operator': registry.npmjs.org/@babel/plugin-syntax-pipeline-operator@7.21.4(@babel/core@7.12.3) dev: false @@ -8139,7 +7597,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-class-features-plugin': registry.npmjs.org/@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 transitivePeerDependencies: @@ -8186,7 +7644,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-syntax-throw-expressions': registry.npmjs.org/@babel/plugin-syntax-throw-expressions@7.18.6(@babel/core@7.12.3) dev: false @@ -8200,7 +7658,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-regexp-features-plugin': registry.npmjs.org/@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8226,7 +7684,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8261,7 +7719,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8297,7 +7755,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8322,7 +7780,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8347,7 +7805,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8371,7 +7829,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8395,7 +7853,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8443,7 +7901,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8456,7 +7914,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8491,7 +7949,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8526,7 +7984,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8549,7 +8007,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8572,7 +8030,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8595,7 +8053,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8618,7 +8076,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8641,7 +8099,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8665,7 +8123,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8690,7 +8148,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8703,7 +8161,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8728,7 +8186,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8753,7 +8211,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8778,7 +8236,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-module-imports': registry.npmjs.org/@babel/helper-module-imports@7.21.4 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/helper-remap-async-to-generator': registry.npmjs.org/@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.12.3) @@ -8811,7 +8269,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8836,7 +8294,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8861,7 +8319,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-annotate-as-pure': registry.npmjs.org/@babel/helper-annotate-as-pure@7.18.6 '@babel/helper-compilation-targets': registry.npmjs.org/@babel/helper-compilation-targets@7.21.5(@babel/core@7.12.3) '@babel/helper-environment-visitor': registry.npmjs.org/@babel/helper-environment-visitor@7.21.5 @@ -8906,7 +8364,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/template': registry.npmjs.org/@babel/template@7.21.9 dev: false @@ -8933,7 +8391,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8958,7 +8416,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-regexp-features-plugin': registry.npmjs.org/@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -8985,7 +8443,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9010,7 +8468,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-builder-binary-assignment-operator-visitor': registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor@7.21.5 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9050,7 +8508,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9075,7 +8533,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-compilation-targets': registry.npmjs.org/@babel/helper-compilation-targets@7.21.5(@babel/core@7.12.3) '@babel/helper-function-name': registry.npmjs.org/@babel/helper-function-name@7.21.0 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 @@ -9104,7 +8562,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9129,7 +8587,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9154,7 +8612,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-module-transforms': registry.npmjs.org/@babel/helper-module-transforms@7.21.5 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 transitivePeerDependencies: @@ -9185,7 +8643,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-module-transforms': registry.npmjs.org/@babel/helper-module-transforms@7.21.5 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/helper-simple-access': registry.npmjs.org/@babel/helper-simple-access@7.21.5 @@ -9218,7 +8676,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-hoist-variables': registry.npmjs.org/@babel/helper-hoist-variables@7.18.6 '@babel/helper-module-transforms': registry.npmjs.org/@babel/helper-module-transforms@7.21.5 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 @@ -9253,7 +8711,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-module-transforms': registry.npmjs.org/@babel/helper-module-transforms@7.21.5 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 transitivePeerDependencies: @@ -9284,7 +8742,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-regexp-features-plugin': registry.npmjs.org/@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9311,7 +8769,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9336,7 +8794,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/helper-replace-supers': registry.npmjs.org/@babel/helper-replace-supers@7.21.5 transitivePeerDependencies: @@ -9367,7 +8825,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9392,7 +8850,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9494,7 +8952,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 regenerator-transform: registry.npmjs.org/regenerator-transform@0.15.1 dev: false @@ -9521,7 +8979,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9545,7 +9003,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-module-imports': registry.npmjs.org/@babel/helper-module-imports@7.21.4 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 resolve: registry.npmjs.org/resolve@1.22.2 @@ -9580,7 +9038,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9605,7 +9063,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/helper-skip-transparent-expression-wrappers': registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers@7.20.0 dev: false @@ -9632,7 +9090,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9657,7 +9115,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9682,7 +9140,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9707,7 +9165,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-annotate-as-pure': registry.npmjs.org/@babel/helper-annotate-as-pure@7.18.6 '@babel/helper-create-class-features-plugin': registry.npmjs.org/@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.21.5 @@ -9742,7 +9200,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9767,7 +9225,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-create-regexp-features-plugin': registry.npmjs.org/@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.12.3) '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 dev: false @@ -9794,7 +9252,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': registry.npmjs.org/@babel/compat-data@7.21.7 - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.12.3) '@babel/helper-module-imports': registry.npmjs.org/@babel/helper-module-imports@7.21.4 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 @@ -9975,7 +9433,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/helper-plugin-utils': registry.npmjs.org/@babel/helper-plugin-utils@7.22.5 '@babel/plugin-proposal-unicode-property-regex': registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.12.3) '@babel/plugin-transform-dotall-regex': registry.npmjs.org/@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.12.3) @@ -10064,6 +9522,14 @@ packages: regenerator-runtime: registry.npmjs.org/regenerator-runtime@0.13.11 dev: false + registry.npmjs.org/@babel/runtime@7.12.1: + resolution: {integrity: sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz} + name: '@babel/runtime' + version: 7.12.1 + dependencies: + regenerator-runtime: 0.13.11 + dev: false + registry.npmjs.org/@babel/runtime@7.21.5: resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz} name: '@babel/runtime' @@ -10114,7 +9580,7 @@ packages: '@babel/helper-split-export-declaration': registry.npmjs.org/@babel/helper-split-export-declaration@7.0.0-beta.44 '@babel/types': registry.npmjs.org/@babel/types@7.0.0-beta.44 babylon: registry.npmjs.org/babylon@7.0.0-beta.44 - debug: registry.npmjs.org/debug@3.2.7 + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) globals: registry.npmjs.org/globals@11.12.0 invariant: registry.npmjs.org/invariant@2.2.4 lodash: registry.npmjs.org/lodash@4.17.21 @@ -10136,8 +9602,8 @@ packages: '@babel/helper-split-export-declaration': registry.npmjs.org/@babel/helper-split-export-declaration@7.18.6 '@babel/parser': 7.23.4 '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - debug: registry.npmjs.org/debug@4.3.4 - globals: 11.12.0 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + globals: registry.npmjs.org/globals@11.12.0 transitivePeerDependencies: - supports-color dev: false @@ -10156,7 +9622,7 @@ packages: '@babel/helper-split-export-declaration': registry.npmjs.org/@babel/helper-split-export-declaration@7.18.6 '@babel/parser': registry.npmjs.org/@babel/parser@7.21.8 '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) globals: registry.npmjs.org/globals@11.12.0 transitivePeerDependencies: - supports-color @@ -10255,7 +9721,7 @@ packages: engines: {node: '>=v14'} dependencies: '@commitlint/types': registry.npmjs.org/@commitlint/types@17.4.4 - ajv: 8.12.0 + ajv: registry.npmjs.org/ajv@8.12.0 dev: true registry.npmjs.org/@commitlint/ensure@17.4.4: @@ -10321,16 +9787,16 @@ packages: '@commitlint/execute-rule': registry.npmjs.org/@commitlint/execute-rule@17.4.0 '@commitlint/resolve-extends': registry.npmjs.org/@commitlint/resolve-extends@17.4.4 '@commitlint/types': registry.npmjs.org/@commitlint/types@17.4.4 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 cosmiconfig: registry.npmjs.org/cosmiconfig@8.1.3 - cosmiconfig-typescript-loader: registry.npmjs.org/cosmiconfig-typescript-loader@4.3.0(@types/node@14.18.45)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.3.3) + cosmiconfig-typescript-loader: registry.npmjs.org/cosmiconfig-typescript-loader@4.3.0(@types/node@18.19.3)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@4.9.5) lodash.isplainobject: registry.npmjs.org/lodash.isplainobject@4.0.6 lodash.merge: 4.6.2 lodash.uniq: registry.npmjs.org/lodash.uniq@4.5.0 resolve-from: registry.npmjs.org/resolve-from@5.0.0 - ts-node: 10.9.1(@types/node@14.18.45)(typescript@5.3.3) - typescript: registry.npmjs.org/typescript@5.3.3 + ts-node: registry.npmjs.org/ts-node@10.9.1(@types/node@18.19.3)(typescript@4.9.5) + typescript: registry.npmjs.org/typescript@4.9.5 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -10375,7 +9841,7 @@ packages: dependencies: '@commitlint/config-validator': registry.npmjs.org/@commitlint/config-validator@17.4.4 '@commitlint/types': registry.npmjs.org/@commitlint/types@17.4.4 - import-fresh: 3.3.0 + import-fresh: registry.npmjs.org/import-fresh@3.3.0 lodash.mergewith: registry.npmjs.org/lodash.mergewith@4.6.2 resolve-from: registry.npmjs.org/resolve-from@5.0.0 resolve-global: registry.npmjs.org/resolve-global@1.0.0 @@ -10461,7 +9927,7 @@ packages: version: 1.14.1 engines: {node: '>=8.6'} dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) env-paths: registry.npmjs.org/env-paths@2.2.1 fs-extra: registry.npmjs.org/fs-extra@8.1.0 got: registry.npmjs.org/got@9.6.0 @@ -10718,6 +10184,18 @@ packages: eslint: registry.npmjs.org/eslint@8.40.0 eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 + registry.npmjs.org/@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + id: registry.npmjs.org/@eslint-community/eslint-utils/4.4.0 + name: '@eslint-community/eslint-utils' + version: 4.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: registry.npmjs.org/eslint@8.41.0 + eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 + registry.npmjs.org/@eslint-community/regexpp@4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz} name: '@eslint-community/regexpp' @@ -10731,7 +10209,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: registry.npmjs.org/ajv@6.12.6 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) espree: registry.npmjs.org/espree@9.5.2 globals: registry.npmjs.org/globals@13.20.0 ignore: registry.npmjs.org/ignore@5.2.4 @@ -10748,6 +10226,12 @@ packages: version: 8.40.0 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + registry.npmjs.org/@eslint/js@8.41.0: + resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz} + name: '@eslint/js' + version: 8.41.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + registry.npmjs.org/@expo/bunyan@4.0.0: resolution: {integrity: sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz} name: '@expo/bunyan' @@ -10766,7 +10250,7 @@ packages: version: 0.4.11 hasBin: true dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@expo/code-signing-certificates': registry.npmjs.org/@expo/code-signing-certificates@0.0.5 '@expo/config': registry.npmjs.org/@expo/config@7.0.3 '@expo/config-plugins': registry.npmjs.org/@expo/config-plugins@5.0.4 @@ -10788,9 +10272,9 @@ packages: better-opn: registry.npmjs.org/better-opn@3.0.2 bplist-parser: registry.npmjs.org/bplist-parser@0.3.2 cacache: registry.npmjs.org/cacache@15.3.0 - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) env-editor: registry.npmjs.org/env-editor@0.4.2 form-data: registry.npmjs.org/form-data@3.0.1 freeport-async: registry.npmjs.org/freeport-async@2.0.0 @@ -10801,7 +10285,7 @@ packages: https-proxy-agent: registry.npmjs.org/https-proxy-agent@5.0.1 internal-ip: registry.npmjs.org/internal-ip@4.3.0 is-root: registry.npmjs.org/is-root@2.1.0 - js-yaml: 3.14.1 + js-yaml: registry.npmjs.org/js-yaml@3.14.1 json-schema-deref-sync: registry.npmjs.org/json-schema-deref-sync@0.13.0 md5-file: registry.npmjs.org/md5-file@3.2.3 md5hex: registry.npmjs.org/md5hex@1.0.0 @@ -10817,13 +10301,13 @@ packages: requireg: registry.npmjs.org/requireg@0.2.2 resolve-from: 5.0.0 semver: registry.npmjs.org/semver@6.3.0 - send: registry.npmjs.org/send@0.18.0 + send: registry.npmjs.org/send@0.18.0(supports-color@6.1.0) slugify: registry.npmjs.org/slugify@1.6.6 structured-headers: registry.npmjs.org/structured-headers@0.4.1 tar: registry.npmjs.org/tar@6.1.14 tempy: registry.npmjs.org/tempy@0.7.1 terminal-link: registry.npmjs.org/terminal-link@2.1.1 - text-table: 0.2.0 + text-table: registry.npmjs.org/text-table@0.2.0 url-join: registry.npmjs.org/url-join@4.0.0 uuid: registry.npmjs.org/uuid@3.4.0 wrap-ansi: registry.npmjs.org/wrap-ansi@7.0.0 @@ -10851,9 +10335,9 @@ packages: '@expo/plist': registry.npmjs.org/@expo/plist@0.0.18 '@expo/sdk-runtime-versions': registry.npmjs.org/@expo/sdk-runtime-versions@1.0.0 '@react-native/normalize-color': registry.npmjs.org/@react-native/normalize-color@2.1.0 - chalk: 4.1.2 - debug: registry.npmjs.org/debug@4.3.4 - find-up: 5.0.0 + chalk: registry.npmjs.org/chalk@4.1.2 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + find-up: registry.npmjs.org/find-up@5.0.0 getenv: registry.npmjs.org/getenv@1.0.0 glob: registry.npmjs.org/glob@7.1.6 resolve-from: 5.0.0 @@ -10920,7 +10404,7 @@ packages: dependencies: application-config-path: registry.npmjs.org/application-config-path@0.1.1 command-exists: registry.npmjs.org/command-exists@1.2.9 - debug: registry.npmjs.org/debug@3.2.7 + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) eol: registry.npmjs.org/eol@0.9.1 get-port: registry.npmjs.org/get-port@3.2.0 glob: registry.npmjs.org/glob@7.2.3 @@ -10979,7 +10463,7 @@ packages: '@expo/config': registry.npmjs.org/@expo/config@7.0.3 '@expo/json-file': registry.npmjs.org/@expo/json-file@8.2.36 chalk: registry.npmjs.org/chalk@4.1.2 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) find-yarn-workspace-root: registry.npmjs.org/find-yarn-workspace-root@2.0.0 getenv: registry.npmjs.org/getenv@1.0.0 resolve-from: registry.npmjs.org/resolve-from@5.0.0 @@ -11005,7 +10489,7 @@ packages: '@expo/spawn-async': registry.npmjs.org/@expo/spawn-async@1.5.0 ansi-regex: 5.0.1 chalk: registry.npmjs.org/chalk@4.1.2 - find-up: 5.0.0 + find-up: registry.npmjs.org/find-up@5.0.0 find-yarn-workspace-root: registry.npmjs.org/find-yarn-workspace-root@2.0.0 npm-package-arg: registry.npmjs.org/npm-package-arg@7.0.0 rimraf: registry.npmjs.org/rimraf@3.0.2 @@ -11034,7 +10518,7 @@ packages: '@expo/config-types': registry.npmjs.org/@expo/config-types@47.0.0 '@expo/image-utils': registry.npmjs.org/@expo/image-utils@0.3.22 '@expo/json-file': registry.npmjs.org/@expo/json-file@8.2.36 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) expo-modules-autolinking: registry.npmjs.org/expo-modules-autolinking@1.0.2 fs-extra: registry.npmjs.org/fs-extra@9.1.0 resolve-from: registry.npmjs.org/resolve-from@5.0.0 @@ -11071,7 +10555,7 @@ packages: version: 1.5.0 engines: {node: '>=4'} dependencies: - cross-spawn: 6.0.5 + cross-spawn: registry.npmjs.org/cross-spawn@6.0.5 registry.npmjs.org/@expo/vector-icons@13.0.0: resolution: {integrity: sha512-TI+l71+5aSKnShYclFa14Kum+hQMZ86b95SH6tQUG3qZEmLTarvWpKwqtTwQKqvlJSJrpFiSFu3eCuZokY6zWA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-13.0.0.tgz} @@ -11086,8 +10570,8 @@ packages: dependencies: '@babel/code-frame': 7.10.4 chalk: registry.npmjs.org/chalk@4.1.2 - find-up: 5.0.0 - js-yaml: 4.1.0 + find-up: registry.npmjs.org/find-up@5.0.0 + js-yaml: registry.npmjs.org/js-yaml@4.1.0 registry.npmjs.org/@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz} @@ -11123,7 +10607,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': registry.npmjs.org/@humanwhocodes/object-schema@1.2.1 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) minimatch: registry.npmjs.org/minimatch@3.1.2 transitivePeerDependencies: - supports-color @@ -11154,7 +10638,7 @@ packages: dependencies: string-width: 5.1.2 string-width-cjs: registry.npmjs.org/string-width@4.2.3 - strip-ansi: 7.0.1 + strip-ansi: registry.npmjs.org/strip-ansi@7.0.1 strip-ansi-cjs: registry.npmjs.org/strip-ansi@6.0.1 wrap-ansi: registry.npmjs.org/wrap-ansi@8.1.0 wrap-ansi-cjs: registry.npmjs.org/wrap-ansi@7.0.0 @@ -11186,7 +10670,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 jest-message-util: registry.npmjs.org/jest-message-util@26.6.2 jest-util: registry.npmjs.org/jest-util@26.6.2 @@ -11200,7 +10684,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 jest-message-util: registry.npmjs.org/jest-message-util@27.5.1 jest-util: registry.npmjs.org/jest-util@27.5.1 @@ -11214,7 +10698,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 jest-message-util: registry.npmjs.org/jest-message-util@29.5.0 jest-util: registry.npmjs.org/jest-util@29.5.0 @@ -11228,7 +10712,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 jest-message-util: registry.npmjs.org/jest-message-util@29.7.0 jest-util: registry.npmjs.org/jest-util@29.7.0 @@ -11246,7 +10730,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@26.6.2 '@jest/transform': registry.npmjs.org/@jest/transform@26.6.2 '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 exit: registry.npmjs.org/exit@0.1.2 @@ -11293,7 +10777,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@27.5.1 '@jest/transform': registry.npmjs.org/@jest/transform@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 emittery: registry.npmjs.org/emittery@0.8.1 @@ -11324,50 +10808,6 @@ packages: - utf-8-validate dev: true - registry.npmjs.org/@jest/core@29.5.0: - resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz} - name: '@jest/core' - version: 29.5.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': registry.npmjs.org/@jest/console@29.5.0 - '@jest/reporters': registry.npmjs.org/@jest/reporters@29.5.0 - '@jest/test-result': registry.npmjs.org/@jest/test-result@29.5.0 - '@jest/transform': registry.npmjs.org/@jest/transform@29.5.0 - '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 - ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 - chalk: registry.npmjs.org/chalk@4.1.2 - ci-info: registry.npmjs.org/ci-info@3.8.0 - exit: registry.npmjs.org/exit@0.1.2 - graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - jest-changed-files: registry.npmjs.org/jest-changed-files@29.5.0 - jest-config: registry.npmjs.org/jest-config@29.5.0(@types/node@14.18.45) - jest-haste-map: registry.npmjs.org/jest-haste-map@29.5.0 - jest-message-util: registry.npmjs.org/jest-message-util@29.5.0 - jest-regex-util: registry.npmjs.org/jest-regex-util@29.4.3 - jest-resolve: registry.npmjs.org/jest-resolve@29.5.0 - jest-resolve-dependencies: registry.npmjs.org/jest-resolve-dependencies@29.5.0 - jest-runner: registry.npmjs.org/jest-runner@29.5.0 - jest-runtime: registry.npmjs.org/jest-runtime@29.5.0 - jest-snapshot: registry.npmjs.org/jest-snapshot@29.5.0 - jest-util: registry.npmjs.org/jest-util@29.5.0 - jest-validate: registry.npmjs.org/jest-validate@29.5.0 - jest-watcher: registry.npmjs.org/jest-watcher@29.5.0 - micromatch: registry.npmjs.org/micromatch@4.0.5 - pretty-format: registry.npmjs.org/pretty-format@29.5.0 - slash: registry.npmjs.org/slash@3.0.0 - strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - registry.npmjs.org/@jest/core@29.5.0(ts-node@10.9.1): resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz} id: registry.npmjs.org/@jest/core/29.5.0 @@ -11385,14 +10825,14 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.5.0 '@jest/transform': registry.npmjs.org/@jest/transform@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 exit: registry.npmjs.org/exit@0.1.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 jest-changed-files: registry.npmjs.org/jest-changed-files@29.5.0 - jest-config: registry.npmjs.org/jest-config@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) + jest-config: registry.npmjs.org/jest-config@29.5.0(@types/node@18.19.3)(ts-node@10.9.1) jest-haste-map: registry.npmjs.org/jest-haste-map@29.5.0 jest-message-util: registry.npmjs.org/jest-message-util@29.5.0 jest-regex-util: registry.npmjs.org/jest-regex-util@29.4.3 @@ -11413,51 +10853,6 @@ packages: - ts-node dev: true - registry.npmjs.org/@jest/core@29.7.0: - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz} - name: '@jest/core' - version: 29.7.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': registry.npmjs.org/@jest/console@29.7.0 - '@jest/reporters': registry.npmjs.org/@jest/reporters@29.7.0 - '@jest/test-result': registry.npmjs.org/@jest/test-result@29.7.0 - '@jest/transform': registry.npmjs.org/@jest/transform@29.7.0 - '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 - ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 - chalk: registry.npmjs.org/chalk@4.1.2 - ci-info: registry.npmjs.org/ci-info@3.8.0 - exit: registry.npmjs.org/exit@0.1.2 - graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - jest-changed-files: registry.npmjs.org/jest-changed-files@29.7.0 - jest-config: registry.npmjs.org/jest-config@29.7.0(@types/node@14.18.45) - jest-haste-map: registry.npmjs.org/jest-haste-map@29.7.0 - jest-message-util: registry.npmjs.org/jest-message-util@29.7.0 - jest-regex-util: registry.npmjs.org/jest-regex-util@29.6.3 - jest-resolve: registry.npmjs.org/jest-resolve@29.7.0 - jest-resolve-dependencies: registry.npmjs.org/jest-resolve-dependencies@29.7.0 - jest-runner: registry.npmjs.org/jest-runner@29.7.0 - jest-runtime: registry.npmjs.org/jest-runtime@29.7.0 - jest-snapshot: registry.npmjs.org/jest-snapshot@29.7.0 - jest-util: registry.npmjs.org/jest-util@29.7.0 - jest-validate: registry.npmjs.org/jest-validate@29.7.0 - jest-watcher: registry.npmjs.org/jest-watcher@29.7.0 - micromatch: 4.0.5 - pretty-format: registry.npmjs.org/pretty-format@29.7.0 - slash: registry.npmjs.org/slash@3.0.0 - strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - dev: true - registry.npmjs.org/@jest/core@29.7.0(ts-node@10.9.1): resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz} id: registry.npmjs.org/@jest/core/29.7.0 @@ -11475,14 +10870,14 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.7.0 '@jest/transform': registry.npmjs.org/@jest/transform@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 exit: registry.npmjs.org/exit@0.1.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 jest-changed-files: registry.npmjs.org/jest-changed-files@29.7.0 - jest-config: registry.npmjs.org/jest-config@29.7.0(@types/node@14.18.45)(ts-node@10.9.1) + jest-config: registry.npmjs.org/jest-config@29.7.0(@types/node@18.19.3)(ts-node@10.9.1) jest-haste-map: registry.npmjs.org/jest-haste-map@29.7.0 jest-message-util: registry.npmjs.org/jest-message-util@29.7.0 jest-regex-util: registry.npmjs.org/jest-regex-util@29.6.3 @@ -11520,7 +10915,7 @@ packages: dependencies: '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@26.6.2 '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@26.6.2 dev: true @@ -11532,7 +10927,7 @@ packages: dependencies: '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@27.5.1 dev: true @@ -11544,7 +10939,7 @@ packages: dependencies: '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@29.5.0 dev: true @@ -11556,7 +10951,7 @@ packages: dependencies: '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@29.7.0 dev: true @@ -11610,7 +11005,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@26.6.2 '@sinonjs/fake-timers': registry.npmjs.org/@sinonjs/fake-timers@6.0.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-message-util: registry.npmjs.org/jest-message-util@26.6.2 jest-mock: registry.npmjs.org/jest-mock@26.6.2 jest-util: registry.npmjs.org/jest-util@26.6.2 @@ -11624,7 +11019,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@27.5.1 '@sinonjs/fake-timers': registry.npmjs.org/@sinonjs/fake-timers@8.1.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-message-util: registry.npmjs.org/jest-message-util@27.5.1 jest-mock: registry.npmjs.org/jest-mock@27.5.1 jest-util: registry.npmjs.org/jest-util@27.5.1 @@ -11638,7 +11033,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.5.0 '@sinonjs/fake-timers': registry.npmjs.org/@sinonjs/fake-timers@10.0.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-message-util: registry.npmjs.org/jest-message-util@29.5.0 jest-mock: registry.npmjs.org/jest-mock@29.5.0 jest-util: registry.npmjs.org/jest-util@29.5.0 @@ -11652,7 +11047,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.6.3 '@sinonjs/fake-timers': registry.npmjs.org/@sinonjs/fake-timers@10.0.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-message-util: registry.npmjs.org/jest-message-util@29.7.0 jest-mock: registry.npmjs.org/jest-mock@29.7.0 jest-util: registry.npmjs.org/jest-util@29.7.0 @@ -11760,7 +11155,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@27.5.1 '@jest/transform': registry.npmjs.org/@jest/transform@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 collect-v8-coverage: registry.npmjs.org/collect-v8-coverage@1.0.1 exit: registry.npmjs.org/exit@0.1.2 @@ -11801,7 +11196,7 @@ packages: '@jest/transform': registry.npmjs.org/@jest/transform@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping@0.3.18 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 collect-v8-coverage: registry.npmjs.org/collect-v8-coverage@1.0.1 exit: registry.npmjs.org/exit@0.1.2 @@ -11817,7 +11212,7 @@ packages: jest-worker: registry.npmjs.org/jest-worker@29.5.0 slash: registry.npmjs.org/slash@3.0.0 string-length: registry.npmjs.org/string-length@4.0.2 - strip-ansi: 6.0.1 + strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 v8-to-istanbul: registry.npmjs.org/v8-to-istanbul@9.1.0 transitivePeerDependencies: - supports-color @@ -11840,7 +11235,7 @@ packages: '@jest/transform': registry.npmjs.org/@jest/transform@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 '@jridgewell/trace-mapping': registry.npmjs.org/@jridgewell/trace-mapping@0.3.18 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 collect-v8-coverage: registry.npmjs.org/collect-v8-coverage@1.0.1 exit: registry.npmjs.org/exit@0.1.2 @@ -11856,7 +11251,7 @@ packages: jest-worker: registry.npmjs.org/jest-worker@29.7.0 slash: registry.npmjs.org/slash@3.0.0 string-length: registry.npmjs.org/string-length@4.0.2 - strip-ansi: 6.0.1 + strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 v8-to-istanbul: registry.npmjs.org/v8-to-istanbul@9.1.0 transitivePeerDependencies: - supports-color @@ -12137,7 +11532,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage@2.0.4 '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports@3.0.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/yargs': registry.npmjs.org/@types/yargs@15.0.15 chalk: registry.npmjs.org/chalk@4.1.2 @@ -12149,7 +11544,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage@2.0.4 '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports@3.0.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/yargs': registry.npmjs.org/@types/yargs@16.0.5 chalk: registry.npmjs.org/chalk@4.1.2 @@ -12162,7 +11557,7 @@ packages: '@jest/schemas': registry.npmjs.org/@jest/schemas@29.4.3 '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage@2.0.4 '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports@3.0.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/yargs': registry.npmjs.org/@types/yargs@17.0.24 chalk: registry.npmjs.org/chalk@4.1.2 dev: true @@ -12176,7 +11571,7 @@ packages: '@jest/schemas': registry.npmjs.org/@jest/schemas@29.6.3 '@types/istanbul-lib-coverage': registry.npmjs.org/@types/istanbul-lib-coverage@2.0.4 '@types/istanbul-reports': registry.npmjs.org/@types/istanbul-reports@3.0.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/yargs': registry.npmjs.org/@types/yargs@17.0.24 chalk: registry.npmjs.org/chalk@4.1.2 dev: true @@ -12202,7 +11597,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 bmp-js: registry.npmjs.org/bmp-js@0.1.0 @@ -12232,7 +11627,7 @@ packages: name: '@jimp/core' version: 0.9.8 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 any-base: registry.npmjs.org/any-base@1.1.0 buffer: registry.npmjs.org/buffer@5.7.1 @@ -12261,7 +11656,7 @@ packages: name: '@jimp/custom' version: 0.9.8 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/core': registry.npmjs.org/@jimp/core@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 dev: false @@ -12288,7 +11683,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12316,7 +11711,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12343,7 +11738,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12369,7 +11764,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12395,7 +11790,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12422,7 +11817,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12458,7 +11853,7 @@ packages: '@jimp/plugin-resize': '>=0.3.5' '@jimp/plugin-scale': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-blit': registry.npmjs.org/@jimp/plugin-blit@0.9.8(@jimp/custom@0.9.8) '@jimp/plugin-resize': registry.npmjs.org/@jimp/plugin-resize@0.9.8(@jimp/custom@0.9.8) @@ -12496,7 +11891,7 @@ packages: '@jimp/plugin-resize': '>=0.3.5' '@jimp/plugin-scale': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-crop': registry.npmjs.org/@jimp/plugin-crop@0.9.8(@jimp/custom@0.9.8) '@jimp/plugin-resize': registry.npmjs.org/@jimp/plugin-resize@0.9.8(@jimp/custom@0.9.8) @@ -12525,7 +11920,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12551,7 +11946,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12577,7 +11972,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12603,7 +11998,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12632,7 +12027,7 @@ packages: '@jimp/custom': '>=0.3.5' '@jimp/plugin-rotate': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-rotate': registry.npmjs.org/@jimp/plugin-rotate@0.9.8(@jimp/custom@0.9.8)(@jimp/plugin-blit@0.9.8)(@jimp/plugin-crop@0.9.8)(@jimp/plugin-resize@0.9.8) '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 @@ -12659,7 +12054,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12685,7 +12080,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12711,7 +12106,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12737,7 +12132,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12767,7 +12162,7 @@ packages: '@jimp/custom': '>=0.3.5' '@jimp/plugin-blit': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-blit': registry.npmjs.org/@jimp/plugin-blit@0.9.8(@jimp/custom@0.9.8) '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 @@ -12795,7 +12190,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -12830,7 +12225,7 @@ packages: '@jimp/plugin-crop': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-blit': registry.npmjs.org/@jimp/plugin-blit@0.9.8(@jimp/custom@0.9.8) '@jimp/plugin-crop': registry.npmjs.org/@jimp/plugin-crop@0.9.8(@jimp/custom@0.9.8) @@ -12862,7 +12257,7 @@ packages: '@jimp/custom': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-resize': registry.npmjs.org/@jimp/plugin-resize@0.9.8(@jimp/custom@0.9.8) '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 @@ -12895,7 +12290,7 @@ packages: '@jimp/plugin-blur': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-blur': registry.npmjs.org/@jimp/plugin-blur@0.9.8(@jimp/custom@0.9.8) '@jimp/plugin-resize': registry.npmjs.org/@jimp/plugin-resize@0.9.8(@jimp/custom@0.9.8) @@ -12929,7 +12324,7 @@ packages: '@jimp/plugin-color': '>=0.8.0' '@jimp/plugin-resize': '>=0.8.0' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-color': registry.npmjs.org/@jimp/plugin-color@0.9.8(@jimp/custom@0.9.8) '@jimp/plugin-resize': registry.npmjs.org/@jimp/plugin-resize@0.9.8(@jimp/custom@0.9.8) @@ -12978,7 +12373,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugin-blit': registry.npmjs.org/@jimp/plugin-blit@0.9.8(@jimp/custom@0.9.8) '@jimp/plugin-blur': registry.npmjs.org/@jimp/plugin-blur@0.9.8(@jimp/custom@0.9.8) @@ -13026,7 +12421,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/utils': registry.npmjs.org/@jimp/utils@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 @@ -13053,7 +12448,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 core-js: registry.npmjs.org/core-js@3.30.2 utif: registry.npmjs.org/utif@2.0.1 @@ -13084,7 +12479,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/bmp': registry.npmjs.org/@jimp/bmp@0.9.8(@jimp/custom@0.9.8) '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/gif': registry.npmjs.org/@jimp/gif@0.9.8(@jimp/custom@0.9.8) @@ -13108,7 +12503,7 @@ packages: name: '@jimp/utils' version: 0.9.8 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 core-js: registry.npmjs.org/core-js@3.30.2 dev: false @@ -13234,7 +12629,7 @@ packages: '@octokit/rest': registry.npmjs.org/@octokit/rest@20.0.2 clipanion: registry.npmjs.org/clipanion@3.2.1 colorette: registry.npmjs.org/colorette@2.0.20 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) inquirer: registry.npmjs.org/inquirer@9.2.11 js-yaml: registry.npmjs.org/js-yaml@4.1.0 lodash-es: registry.npmjs.org/lodash-es@4.17.21 @@ -13456,7 +12851,7 @@ packages: requiresBuild: true optional: true - registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.11.0)(webpack@5.78.0): + registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin@0.5.10(@types/webpack@4.41.33)(react-refresh@0.11.0)(webpack-dev-server@4.11.1)(webpack@5.78.0): resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz} id: registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/0.5.10 name: '@pmmmwh/react-refresh-webpack-plugin' @@ -13485,6 +12880,7 @@ packages: webpack-plugin-serve: optional: true dependencies: + '@types/webpack': registry.npmjs.org/@types/webpack@4.41.33 ansi-html-community: registry.npmjs.org/ansi-html-community@0.0.8 common-path-prefix: registry.npmjs.org/common-path-prefix@3.0.0 core-js-pure: registry.npmjs.org/core-js-pure@3.30.2 @@ -13495,7 +12891,8 @@ packages: react-refresh: registry.npmjs.org/react-refresh@0.11.0 schema-utils: registry.npmjs.org/schema-utils@3.1.2 source-map: registry.npmjs.org/source-map@0.7.4 - webpack: registry.npmjs.org/webpack@5.78.0(esbuild@0.19.7) + webpack: registry.npmjs.org/webpack@5.78.0 + webpack-dev-server: registry.npmjs.org/webpack-dev-server@4.11.1(webpack@5.78.0) dev: true registry.npmjs.org/@prefresh/babel-plugin@0.4.4: @@ -13551,7 +12948,7 @@ packages: typescript: optional: true dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) extract-zip: registry.npmjs.org/extract-zip@2.0.1 https-proxy-agent: registry.npmjs.org/https-proxy-agent@5.0.1 progress: registry.npmjs.org/progress@2.0.3 @@ -13629,7 +13026,7 @@ packages: name: '@react-native-community/cli-debugger-ui' version: 9.0.0 dependencies: - serve-static: registry.npmjs.org/serve-static@1.15.0 + serve-static: registry.npmjs.org/serve-static@1.15.0(supports-color@6.1.0) transitivePeerDependencies: - supports-color @@ -13651,7 +13048,7 @@ packages: ora: registry.npmjs.org/ora@5.4.1 prompts: registry.npmjs.org/prompts@2.4.2 semver: registry.npmjs.org/semver@6.3.0 - strip-ansi: 5.2.0 + strip-ansi: registry.npmjs.org/strip-ansi@5.2.0 sudo-prompt: registry.npmjs.org/sudo-prompt@9.2.1 wcwidth: registry.npmjs.org/wcwidth@1.0.1 transitivePeerDependencies: @@ -13676,7 +13073,7 @@ packages: version: 9.3.1 dependencies: '@react-native-community/cli-tools': registry.npmjs.org/@react-native-community/cli-tools@9.2.1 - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk@4.1.2 execa: registry.npmjs.org/execa@1.0.0 fs-extra: registry.npmjs.org/fs-extra@8.1.0 glob: registry.npmjs.org/glob@7.2.3 @@ -13691,7 +13088,7 @@ packages: version: 9.3.0 dependencies: '@react-native-community/cli-tools': registry.npmjs.org/@react-native-community/cli-tools@9.2.1 - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk@4.1.2 execa: registry.npmjs.org/execa@1.0.0 glob: registry.npmjs.org/glob@7.2.3 ora: registry.npmjs.org/ora@5.4.1 @@ -13728,12 +13125,12 @@ packages: dependencies: '@react-native-community/cli-debugger-ui': registry.npmjs.org/@react-native-community/cli-debugger-ui@9.0.0 '@react-native-community/cli-tools': registry.npmjs.org/@react-native-community/cli-tools@9.2.1 - compression: registry.npmjs.org/compression@1.7.4 + compression: registry.npmjs.org/compression@1.7.4(supports-color@6.1.0) connect: registry.npmjs.org/connect@3.7.0 errorhandler: registry.npmjs.org/errorhandler@1.5.1 nocache: registry.npmjs.org/nocache@3.0.4 pretty-format: registry.npmjs.org/pretty-format@26.6.2 - serve-static: registry.npmjs.org/serve-static@1.15.0 + serve-static: registry.npmjs.org/serve-static@1.15.0(supports-color@6.1.0) ws: registry.npmjs.org/ws@7.5.9 transitivePeerDependencies: - bufferutil @@ -13782,10 +13179,10 @@ packages: '@react-native-community/cli-server-api': registry.npmjs.org/@react-native-community/cli-server-api@9.2.1 '@react-native-community/cli-tools': registry.npmjs.org/@react-native-community/cli-tools@9.2.1 '@react-native-community/cli-types': registry.npmjs.org/@react-native-community/cli-types@9.1.0 - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk@4.1.2 commander: registry.npmjs.org/commander@9.5.0 execa: registry.npmjs.org/execa@1.0.0 - find-up: 4.1.0 + find-up: registry.npmjs.org/find-up@4.1.0 fs-extra: registry.npmjs.org/fs-extra@8.1.0 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 prompts: registry.npmjs.org/prompts@2.4.2 @@ -14046,7 +13443,7 @@ packages: '@rnx-kit/tools-node': registry.npmjs.org/@rnx-kit/tools-node@2.0.0 dev: false - registry.npmjs.org/@rollup/plugin-babel@5.3.1(@babel/core@7.21.8)(rollup@2.79.1): + registry.npmjs.org/@rollup/plugin-babel@5.3.1(@babel/core@7.21.8)(@types/babel__core@7.20.0)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz} id: registry.npmjs.org/@rollup/plugin-babel/5.3.1 name: '@rollup/plugin-babel' @@ -14063,9 +13460,10 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@babel/helper-module-imports': registry.npmjs.org/@babel/helper-module-imports@7.21.4 '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@3.1.0(rollup@2.79.1) + '@types/babel__core': registry.npmjs.org/@types/babel__core@7.20.0 rollup: registry.npmjs.org/rollup@2.79.1 - registry.npmjs.org/@rollup/plugin-babel@6.0.4(@babel/core@7.21.8)(rollup@3.21.5): + registry.npmjs.org/@rollup/plugin-babel@6.0.4(@babel/core@7.21.8)(@types/babel__core@7.20.0)(rollup@3.21.5): resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz} id: registry.npmjs.org/@rollup/plugin-babel/6.0.4 name: '@rollup/plugin-babel' @@ -14084,6 +13482,7 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@babel/helper-module-imports': registry.npmjs.org/@babel/helper-module-imports@7.21.4 '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@3.21.5) + '@types/babel__core': registry.npmjs.org/@types/babel__core@7.20.0 rollup: registry.npmjs.org/rollup@3.21.5 dev: true @@ -14263,29 +13662,7 @@ packages: typescript: registry.npmjs.org/typescript@4.9.5 dev: true - registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(typescript@4.9.5): - resolution: {integrity: sha512-Ioir+x5Bejv72Lx2Zbz3/qGg7tvGbxQZALCLoJaGrkNXak/19+vKgKYJYM3i/fJxvsb23I9FuFQ8CUBEfsmBRg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.1.tgz} - id: registry.npmjs.org/@rollup/plugin-typescript/11.1.1 - name: '@rollup/plugin-typescript' - version: 11.1.1 - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0 - tslib: '*' - typescript: '>=3.7.0' - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true - dependencies: - '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@3.21.5) - resolve: registry.npmjs.org/resolve@1.22.2 - rollup: registry.npmjs.org/rollup@3.21.5 - typescript: registry.npmjs.org/typescript@4.9.5 - dev: true - - registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(typescript@5.3.3): + registry.npmjs.org/@rollup/plugin-typescript@11.1.1(rollup@3.21.5)(tslib@2.6.2)(typescript@5.3.3): resolution: {integrity: sha512-Ioir+x5Bejv72Lx2Zbz3/qGg7tvGbxQZALCLoJaGrkNXak/19+vKgKYJYM3i/fJxvsb23I9FuFQ8CUBEfsmBRg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.1.tgz} id: registry.npmjs.org/@rollup/plugin-typescript/11.1.1 name: '@rollup/plugin-typescript' @@ -14304,6 +13681,7 @@ packages: '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@3.21.5) resolve: registry.npmjs.org/resolve@1.22.2 rollup: 3.21.5 + tslib: registry.npmjs.org/tslib@2.6.2 typescript: registry.npmjs.org/typescript@5.3.3 dev: true @@ -14938,7 +14316,7 @@ packages: version: 0.0.11 engines: {node: '>= 10'} dependencies: - eslint: 8.41.0 + eslint: registry.npmjs.org/eslint@8.41.0 glob: registry.npmjs.org/glob@10.2.6 optionalDependencies: '@tarojs/plugin-doctor-darwin-arm64': registry.npmjs.org/@tarojs/plugin-doctor-darwin-arm64@0.0.11 @@ -14956,14 +14334,16 @@ packages: - supports-color dev: false - registry.npmjs.org/@tarojs/taro@2.2.19: + registry.npmjs.org/@tarojs/taro@2.2.19(nervjs@1.5.7): resolution: {integrity: sha512-6fYGgdObitLECGv+3eKsYaD4iMmuZ+CzGAEuj0IYR7+HRz+0v7PGkovf3F+hHev8xljluCOJWHRzqA3aEoCqlg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@tarojs/taro/-/taro-2.2.19.tgz} + id: registry.npmjs.org/@tarojs/taro/2.2.19 name: '@tarojs/taro' version: 2.2.19 peerDependencies: nervjs: ^1.5.0 dependencies: '@tarojs/utils': registry.npmjs.org/@tarojs/utils@2.2.19 + nervjs: registry.npmjs.org/nervjs@1.5.7 dev: true registry.npmjs.org/@tarojs/utils@2.2.19: @@ -14979,7 +14359,7 @@ packages: engines: {node: '>=8', npm: '>=6', yarn: '>=1'} dependencies: '@adobe/css-tools': registry.npmjs.org/@adobe/css-tools@4.2.0 - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@types/testing-library__jest-dom': registry.npmjs.org/@types/testing-library__jest-dom@5.14.5 aria-query: registry.npmjs.org/aria-query@5.1.3 chalk: registry.npmjs.org/chalk@3.0.0 @@ -15152,7 +14532,6 @@ packages: '@types/babel__generator': registry.npmjs.org/@types/babel__generator@7.6.4 '@types/babel__template': registry.npmjs.org/@types/babel__template@7.4.1 '@types/babel__traverse': registry.npmjs.org/@types/babel__traverse@7.18.5 - dev: true registry.npmjs.org/@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz} @@ -15172,7 +14551,6 @@ packages: version: 7.6.4 dependencies: '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - dev: true registry.npmjs.org/@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz} @@ -15181,7 +14559,6 @@ packages: dependencies: '@babel/parser': 7.23.4 '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - dev: true registry.npmjs.org/@types/babel__traverse@7.18.5: resolution: {integrity: sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz} @@ -15189,7 +14566,6 @@ packages: version: 7.18.5 dependencies: '@babel/types': registry.npmjs.org/@babel/types@7.21.5 - dev: true registry.npmjs.org/@types/babylon@6.16.9: resolution: {integrity: sha512-sEKyxMVEowhcr8WLfN0jJYe4gS4Z9KC2DGz0vqfC7+MXFbmvOF7jSjALC77thvAO2TLgFUPa9vDeOak+AcUrZA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/babylon/-/babylon-6.16.9.tgz} @@ -15205,14 +14581,14 @@ packages: version: 1.19.2 dependencies: '@types/connect': registry.npmjs.org/@types/connect@3.4.35 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/bonjour@3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz} name: '@types/bonjour' version: 3.5.10 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/buble@0.19.2: resolution: {integrity: sha512-uUD8zIfXMKThmFkahTXDGI3CthFH1kMg2dOm3KLi4GlC5cbARA64bEcUMbbWdWdE73eoc/iBB9PiTMqH0dNS2Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/buble/-/buble-0.19.2.tgz} @@ -15234,14 +14610,14 @@ packages: version: 1.5.0 dependencies: '@types/express-serve-static-core': registry.npmjs.org/@types/express-serve-static-core@4.17.34 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz} name: '@types/connect' version: 3.4.35 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/debug@4.1.7: resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz} @@ -15292,7 +14668,7 @@ packages: name: '@types/express-serve-static-core' version: 4.17.34 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/qs': registry.npmjs.org/@types/qs@6.9.7 '@types/range-parser': registry.npmjs.org/@types/range-parser@1.2.4 '@types/send': registry.npmjs.org/@types/send@0.17.1 @@ -15312,7 +14688,7 @@ packages: name: '@types/fs-extra' version: 8.1.2 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/geojson@7946.0.10: resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz} @@ -15326,14 +14702,14 @@ packages: version: 7.2.0 dependencies: '@types/minimatch': registry.npmjs.org/@types/minimatch@5.1.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz} name: '@types/graceful-fs' version: 4.1.6 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true registry.npmjs.org/@types/hammerjs@2.0.41: @@ -15364,7 +14740,7 @@ packages: name: '@types/http-proxy' version: 1.17.11 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/inquirer@8.2.6: resolution: {integrity: sha512-3uT88kxg8lNzY8ay2ZjP44DKcRaTGztqeIvN2zHvhzIBH/uAPaL75aBtdNRKbA7xXoMbBt5kX0M00VKAnfOYlA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.6.tgz} @@ -15417,7 +14793,7 @@ packages: name: '@types/jsdom' version: 20.0.1 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/tough-cookie': registry.npmjs.org/@types/tough-cookie@4.0.2 parse5: registry.npmjs.org/parse5@7.1.2 dev: true @@ -15444,7 +14820,7 @@ packages: name: '@types/keyv' version: 3.1.4 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: false registry.npmjs.org/@types/less@3.0.3: @@ -15505,12 +14881,36 @@ packages: name: '@types/ms' version: 0.7.31 + registry.npmjs.org/@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz} + name: '@types/node' + version: 12.20.55 + dev: false + registry.npmjs.org/@types/node@14.18.45: resolution: {integrity: sha512-Nd+FPp60jEaJpm4LAxuLT3wIhB4k0Jdj9DAP4ydqGyMg8DhE+7oM1we+QkwOkpMySTjcqcNfPOWY5kBuAOhkeg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-14.18.45.tgz} name: '@types/node' version: 14.18.45 + + registry.npmjs.org/@types/node@16.9.1: + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz} + name: '@types/node' + version: 16.9.1 + dev: false + + registry.npmjs.org/@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz} + name: '@types/node' + version: 17.0.45 dev: true + registry.npmjs.org/@types/node@18.19.3: + resolution: {integrity: sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz} + name: '@types/node' + version: 18.19.3 + dependencies: + undici-types: registry.npmjs.org/undici-types@5.26.5 + registry.npmjs.org/@types/node@9.6.61: resolution: {integrity: sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/node/-/node-9.6.61.tgz} name: '@types/node' @@ -15570,7 +14970,7 @@ packages: name: '@types/qrcode' version: 1.5.0 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true registry.npmjs.org/@types/qs@6.9.7: @@ -15588,7 +14988,7 @@ packages: name: '@types/react-native' version: 0.69.20 dependencies: - '@types/react': 18.2.6 + '@types/react': registry.npmjs.org/@types/react@18.2.6 dev: true registry.npmjs.org/@types/react-reconciler@0.28.1: @@ -15596,7 +14996,7 @@ packages: name: '@types/react-reconciler' version: 0.28.1 dependencies: - '@types/react': 18.2.6 + '@types/react': registry.npmjs.org/@types/react@18.2.6 dev: true registry.npmjs.org/@types/react@18.2.6: @@ -15615,7 +15015,7 @@ packages: version: 2.48.8 dependencies: '@types/caseless': registry.npmjs.org/@types/caseless@0.12.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/tough-cookie': registry.npmjs.org/@types/tough-cookie@4.0.2 form-data: registry.npmjs.org/form-data@2.5.1 dev: true @@ -15625,7 +15025,7 @@ packages: name: '@types/resolve' version: 1.17.1 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz} @@ -15644,7 +15044,7 @@ packages: name: '@types/responselike' version: 1.0.0 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: false registry.npmjs.org/@types/retry@0.12.0: @@ -15657,14 +15057,14 @@ packages: name: '@types/sass' version: 1.43.1 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/sax@1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz} name: '@types/sax' version: 1.2.4 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true registry.npmjs.org/@types/scheduler@0.16.3: @@ -15691,7 +15091,7 @@ packages: version: 0.17.1 dependencies: '@types/mime': registry.npmjs.org/@types/mime@1.3.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/serve-index@1.9.1: resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz} @@ -15706,7 +15106,7 @@ packages: version: 1.15.1 dependencies: '@types/mime': registry.npmjs.org/@types/mime@3.0.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/shallowequal@1.1.1: resolution: {integrity: sha512-Lhni3aX80zbpdxRuWhnuYPm8j8UQaa571lHP/xI4W+7BAFhSIhRReXnqjEgT/XzPoXZTJkCqstFMJ8CZTK6IlQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/shallowequal/-/shallowequal-1.1.1.tgz} @@ -15720,7 +15120,7 @@ packages: version: 0.8.12 dependencies: '@types/glob': registry.npmjs.org/@types/glob@7.2.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true registry.npmjs.org/@types/sinon@7.5.2: @@ -15734,7 +15134,7 @@ packages: name: '@types/sockjs' version: 0.3.33 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/source-list-map@0.1.2: resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz} @@ -15765,7 +15165,7 @@ packages: name: '@types/through' version: 0.0.30 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true registry.npmjs.org/@types/tough-cookie@4.0.2: @@ -15801,12 +15201,18 @@ packages: - debug dev: true + registry.npmjs.org/@types/webpack-env@1.18.4: + resolution: {integrity: sha512-I6e+9+HtWADAWeeJWDFQtdk4EVSAbj6Rtz4q8fJ7mSr1M0jzlFcs8/HZ+Xb5SHzVm1dxH7aUiI+A8kA8Gcrm0A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.4.tgz} + name: '@types/webpack-env' + version: 1.18.4 + dev: true + registry.npmjs.org/@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz} name: '@types/webpack-sources' version: 3.2.0 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/source-list-map': registry.npmjs.org/@types/source-list-map@0.1.2 source-map: 0.7.4 @@ -15815,7 +15221,7 @@ packages: name: '@types/webpack' version: 4.41.33 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 '@types/tapable': registry.npmjs.org/@types/tapable@1.0.8 '@types/uglify-js': registry.npmjs.org/@types/uglify-js@3.17.1 '@types/webpack-sources': registry.npmjs.org/@types/webpack-sources@3.2.0 @@ -15827,7 +15233,7 @@ packages: name: '@types/ws' version: 8.5.4 dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 registry.npmjs.org/@types/yargs-parser@21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz} @@ -15862,10 +15268,41 @@ packages: version: 2.10.0 requiresBuild: true dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true optional: true + registry.npmjs.org/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.41.0)(typescript@4.9.5): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz} + id: registry.npmjs.org/@typescript-eslint/eslint-plugin/5.62.0 + name: '@typescript-eslint/eslint-plugin' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': registry.npmjs.org/@eslint-community/regexpp@4.5.1 + '@typescript-eslint/parser': registry.npmjs.org/@typescript-eslint/parser@5.62.0(eslint@8.41.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': registry.npmjs.org/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/type-utils': registry.npmjs.org/@typescript-eslint/type-utils@5.62.0(eslint@8.41.0)(typescript@4.9.5) + '@typescript-eslint/utils': registry.npmjs.org/@typescript-eslint/utils@5.62.0(eslint@8.41.0)(typescript@4.9.5) + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + eslint: registry.npmjs.org/eslint@8.41.0 + graphemer: registry.npmjs.org/graphemer@1.4.0 + ignore: registry.npmjs.org/ignore@5.2.4 + natural-compare-lite: registry.npmjs.org/natural-compare-lite@1.4.0 + semver: registry.npmjs.org/semver@7.5.4 + tsutils: registry.npmjs.org/tsutils@3.21.0(typescript@4.9.5) + typescript: registry.npmjs.org/typescript@4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmjs.org/@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.40.0)(typescript@4.9.5): resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz} id: registry.npmjs.org/@typescript-eslint/eslint-plugin/6.21.0 @@ -15886,7 +15323,7 @@ packages: '@typescript-eslint/type-utils': registry.npmjs.org/@typescript-eslint/type-utils@6.21.0(eslint@8.40.0)(typescript@4.9.5) '@typescript-eslint/utils': registry.npmjs.org/@typescript-eslint/utils@6.21.0(eslint@8.40.0)(typescript@4.9.5) '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.21.0 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) eslint: registry.npmjs.org/eslint@8.40.0 graphemer: registry.npmjs.org/graphemer@1.4.0 ignore: registry.npmjs.org/ignore@5.2.4 @@ -15898,6 +15335,29 @@ packages: - supports-color dev: true + registry.npmjs.org/@typescript-eslint/parser@5.62.0(eslint@8.41.0)(typescript@4.9.5): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz} + id: registry.npmjs.org/@typescript-eslint/parser/5.62.0 + name: '@typescript-eslint/parser' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmjs.org/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@5.62.0 + '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5) + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + eslint: registry.npmjs.org/eslint@8.41.0 + typescript: registry.npmjs.org/typescript@4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmjs.org/@typescript-eslint/parser@6.21.0(eslint@8.40.0)(typescript@4.9.5): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz} id: registry.npmjs.org/@typescript-eslint/parser/6.21.0 @@ -15915,7 +15375,7 @@ packages: '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.21.0 '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@6.21.0(typescript@4.9.5) '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.21.0 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) eslint: registry.npmjs.org/eslint@8.40.0 typescript: registry.npmjs.org/typescript@4.9.5 transitivePeerDependencies: @@ -15931,6 +15391,16 @@ packages: '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@5.59.2 dev: true + registry.npmjs.org/@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz} + name: '@typescript-eslint/scope-manager' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@5.62.0 + '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@5.62.0 + dev: true + registry.npmjs.org/@typescript-eslint/scope-manager@6.21.0: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz} name: '@typescript-eslint/scope-manager' @@ -15940,6 +15410,29 @@ packages: '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.21.0 '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.21.0 + registry.npmjs.org/@typescript-eslint/type-utils@5.62.0(eslint@8.41.0)(typescript@4.9.5): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz} + id: registry.npmjs.org/@typescript-eslint/type-utils/5.62.0 + name: '@typescript-eslint/type-utils' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5) + '@typescript-eslint/utils': registry.npmjs.org/@typescript-eslint/utils@5.62.0(eslint@8.41.0)(typescript@4.9.5) + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + eslint: registry.npmjs.org/eslint@8.41.0 + tsutils: registry.npmjs.org/tsutils@3.21.0(typescript@4.9.5) + typescript: registry.npmjs.org/typescript@4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmjs.org/@typescript-eslint/type-utils@6.21.0(eslint@8.40.0)(typescript@4.9.5): resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz} id: registry.npmjs.org/@typescript-eslint/type-utils/6.21.0 @@ -15955,7 +15448,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@6.21.0(typescript@4.9.5) '@typescript-eslint/utils': registry.npmjs.org/@typescript-eslint/utils@6.21.0(eslint@8.40.0)(typescript@4.9.5) - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) eslint: registry.npmjs.org/eslint@8.40.0 ts-api-utils: registry.npmjs.org/ts-api-utils@1.2.1(typescript@4.9.5) typescript: registry.npmjs.org/typescript@4.9.5 @@ -15970,6 +15463,13 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + registry.npmjs.org/@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz} + name: '@typescript-eslint/types' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + registry.npmjs.org/@typescript-eslint/types@6.21.0: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz} name: '@typescript-eslint/types' @@ -15990,7 +15490,31 @@ packages: dependencies: '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@5.59.2 '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@5.59.2 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + globby: registry.npmjs.org/globby@11.1.0 + is-glob: registry.npmjs.org/is-glob@4.0.3 + semver: registry.npmjs.org/semver@7.5.4 + tsutils: registry.npmjs.org/tsutils@3.21.0(typescript@4.9.5) + typescript: registry.npmjs.org/typescript@4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmjs.org/@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz} + id: registry.npmjs.org/@typescript-eslint/typescript-estree/5.62.0 + name: '@typescript-eslint/typescript-estree' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@5.62.0 + '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@5.62.0 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) globby: registry.npmjs.org/globby@11.1.0 is-glob: registry.npmjs.org/is-glob@4.0.3 semver: registry.npmjs.org/semver@7.5.4 @@ -16014,7 +15538,7 @@ packages: dependencies: '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@6.21.0 '@typescript-eslint/visitor-keys': registry.npmjs.org/@typescript-eslint/visitor-keys@6.21.0 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) globby: registry.npmjs.org/globby@11.1.0 is-glob: registry.npmjs.org/is-glob@4.0.3 minimatch: registry.npmjs.org/minimatch@9.0.3 @@ -16047,6 +15571,29 @@ packages: - typescript dev: true + registry.npmjs.org/@typescript-eslint/utils@5.62.0(eslint@8.41.0)(typescript@4.9.5): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz} + id: registry.npmjs.org/@typescript-eslint/utils/5.62.0 + name: '@typescript-eslint/utils' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': registry.npmjs.org/@eslint-community/eslint-utils@4.4.0(eslint@8.41.0) + '@types/json-schema': registry.npmjs.org/@types/json-schema@7.0.15 + '@types/semver': registry.npmjs.org/@types/semver@7.5.7 + '@typescript-eslint/scope-manager': registry.npmjs.org/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@5.62.0 + '@typescript-eslint/typescript-estree': registry.npmjs.org/@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5) + eslint: registry.npmjs.org/eslint@8.41.0 + eslint-scope: registry.npmjs.org/eslint-scope@5.1.1 + semver: registry.npmjs.org/semver@7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + registry.npmjs.org/@typescript-eslint/utils@6.21.0(eslint@8.40.0)(typescript@4.9.5): resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz} id: registry.npmjs.org/@typescript-eslint/utils/6.21.0 @@ -16079,6 +15626,16 @@ packages: eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 dev: true + registry.npmjs.org/@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz} + name: '@typescript-eslint/visitor-keys' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmjs.org/@typescript-eslint/types@5.62.0 + eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 + dev: true + registry.npmjs.org/@typescript-eslint/visitor-keys@6.21.0: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz} name: '@typescript-eslint/visitor-keys' @@ -16161,7 +15718,7 @@ packages: svg-tags: registry.npmjs.org/svg-tags@1.0.0 dev: true - registry.npmjs.org/@vue/babel-preset-jsx@1.4.0(@babel/core@7.21.8): + registry.npmjs.org/@vue/babel-preset-jsx@1.4.0(@babel/core@7.21.8)(vue@2.7.14): resolution: {integrity: sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz} id: registry.npmjs.org/@vue/babel-preset-jsx/1.4.0 name: '@vue/babel-preset-jsx' @@ -16182,6 +15739,7 @@ packages: '@vue/babel-sugar-inject-h': registry.npmjs.org/@vue/babel-sugar-inject-h@1.4.0(@babel/core@7.21.8) '@vue/babel-sugar-v-model': registry.npmjs.org/@vue/babel-sugar-v-model@1.4.0(@babel/core@7.21.8) '@vue/babel-sugar-v-on': registry.npmjs.org/@vue/babel-sugar-v-on@1.4.0(@babel/core@7.21.8) + vue: registry.npmjs.org/vue@2.7.14 dev: true registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h@1.4.0(@babel/core@7.21.8): @@ -16314,13 +15872,13 @@ packages: '@vue/compiler-dom': registry.npmjs.org/@vue/compiler-dom@3.2.47 '@vue/shared': registry.npmjs.org/@vue/shared@3.2.47 - registry.npmjs.org/@vue/component-compiler-utils@3.3.0(lodash@4.17.21): + registry.npmjs.org/@vue/component-compiler-utils@3.3.0(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz} id: registry.npmjs.org/@vue/component-compiler-utils/3.3.0 name: '@vue/component-compiler-utils' version: 3.3.0 dependencies: - consolidate: registry.npmjs.org/consolidate@0.15.1(lodash@4.17.21) + consolidate: registry.npmjs.org/consolidate@0.15.1(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0) hash-sum: registry.npmjs.org/hash-sum@1.0.2 lru-cache: registry.npmjs.org/lru-cache@4.1.5 merge-source-map: registry.npmjs.org/merge-source-map@1.1.0 @@ -16393,7 +15951,7 @@ packages: dependencies: cross-spawn: registry.npmjs.org/cross-spawn@7.0.3 electron: registry.npmjs.org/electron@12.2.3 - express: registry.npmjs.org/express@4.18.2 + express: registry.npmjs.org/express@4.18.2(supports-color@6.1.0) ip: registry.npmjs.org/ip@1.1.8 socket.io: registry.npmjs.org/socket.io@2.5.0 transitivePeerDependencies: @@ -16585,10 +16143,10 @@ packages: name: '@webassemblyjs/helper-wasm-section' version: 1.11.1 dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast@1.11.1 + '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer@1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode@1.11.1 + '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen@1.11.1 registry.npmjs.org/@webassemblyjs/helper-wasm-section@1.9.0: resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz} @@ -16643,13 +16201,13 @@ packages: name: '@webassemblyjs/wasm-edit' version: 1.11.1 dependencies: - '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast@1.11.1 '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer@1.11.1 '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode@1.11.1 '@webassemblyjs/helper-wasm-section': registry.npmjs.org/@webassemblyjs/helper-wasm-section@1.11.1 '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen@1.11.1 '@webassemblyjs/wasm-opt': registry.npmjs.org/@webassemblyjs/wasm-opt@1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser@1.11.1 '@webassemblyjs/wast-printer': registry.npmjs.org/@webassemblyjs/wast-printer@1.11.1 registry.npmjs.org/@webassemblyjs/wasm-edit@1.9.0: @@ -16671,11 +16229,11 @@ packages: name: '@webassemblyjs/wasm-gen' version: 1.11.1 dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast@1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode@1.11.1 + '@webassemblyjs/ieee754': registry.npmjs.org/@webassemblyjs/ieee754@1.11.1 + '@webassemblyjs/leb128': registry.npmjs.org/@webassemblyjs/leb128@1.11.1 + '@webassemblyjs/utf8': registry.npmjs.org/@webassemblyjs/utf8@1.11.1 registry.npmjs.org/@webassemblyjs/wasm-gen@1.9.0: resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz} @@ -16693,10 +16251,10 @@ packages: name: '@webassemblyjs/wasm-opt' version: 1.11.1 dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast@1.11.1 + '@webassemblyjs/helper-buffer': registry.npmjs.org/@webassemblyjs/helper-buffer@1.11.1 + '@webassemblyjs/wasm-gen': registry.npmjs.org/@webassemblyjs/wasm-gen@1.11.1 + '@webassemblyjs/wasm-parser': registry.npmjs.org/@webassemblyjs/wasm-parser@1.11.1 registry.npmjs.org/@webassemblyjs/wasm-opt@1.9.0: resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz} @@ -16713,7 +16271,7 @@ packages: name: '@webassemblyjs/wasm-parser' version: 1.11.1 dependencies: - '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast@1.11.1 '@webassemblyjs/helper-api-error': registry.npmjs.org/@webassemblyjs/helper-api-error@1.11.1 '@webassemblyjs/helper-wasm-bytecode': registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode@1.11.1 '@webassemblyjs/ieee754': registry.npmjs.org/@webassemblyjs/ieee754@1.11.1 @@ -16749,7 +16307,7 @@ packages: name: '@webassemblyjs/wast-printer' version: 1.11.1 dependencies: - '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/ast': registry.npmjs.org/@webassemblyjs/ast@1.11.1 '@xtuc/long': registry.npmjs.org/@xtuc/long@4.2.2 registry.npmjs.org/@webassemblyjs/wast-printer@1.9.0: @@ -16824,7 +16382,7 @@ packages: version: 1.3.8 engines: {node: '>= 0.6'} dependencies: - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types@2.1.35 negotiator: registry.npmjs.org/negotiator@0.6.3 registry.npmjs.org/acorn-dynamic-import@4.0.0(acorn@6.4.2): @@ -16850,7 +16408,7 @@ packages: name: acorn-globals version: 6.0.0 dependencies: - acorn: 7.4.1 + acorn: registry.npmjs.org/acorn@7.4.1 acorn-walk: 7.2.0 dev: true @@ -16905,6 +16463,14 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + registry.npmjs.org/acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz} + name: acorn + version: 7.4.1 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + registry.npmjs.org/acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz} name: acorn @@ -16972,7 +16538,7 @@ packages: version: 6.0.2 engines: {node: '>= 6.0.0'} dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color @@ -17013,7 +16579,7 @@ packages: ajv: optional: true dependencies: - ajv: 7.2.4 + ajv: registry.npmjs.org/ajv@7.2.4 dev: false registry.npmjs.org/ajv-formats@2.1.1: @@ -17057,6 +16623,27 @@ packages: json-schema-traverse: registry.npmjs.org/json-schema-traverse@0.4.1 uri-js: registry.npmjs.org/uri-js@4.4.1 + registry.npmjs.org/ajv@7.2.4: + resolution: {integrity: sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz} + name: ajv + version: 7.2.4 + dependencies: + fast-deep-equal: registry.npmjs.org/fast-deep-equal@3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: registry.npmjs.org/require-from-string@2.0.2 + uri-js: 4.4.1 + dev: false + + registry.npmjs.org/ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz} + name: ajv + version: 8.12.0 + dependencies: + fast-deep-equal: registry.npmjs.org/fast-deep-equal@3.1.3 + json-schema-traverse: registry.npmjs.org/json-schema-traverse@1.0.0 + require-from-string: registry.npmjs.org/require-from-string@2.0.2 + uri-js: registry.npmjs.org/uri-js@4.4.1 + registry.npmjs.org/anser@1.4.10: resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/anser/-/anser-1.4.10.tgz} name: anser @@ -17138,7 +16725,7 @@ packages: dependencies: colorette: registry.npmjs.org/colorette@1.4.0 slice-ansi: 2.1.0 - strip-ansi: 5.2.0 + strip-ansi: registry.npmjs.org/strip-ansi@5.2.0 registry.npmjs.org/ansi-gray@0.1.1: resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz} @@ -17195,7 +16782,6 @@ packages: name: ansi-regex version: 6.0.1 engines: {node: '>=12'} - dev: true registry.npmjs.org/ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz} @@ -17251,16 +16837,6 @@ packages: name: any-promise version: 1.3.0 - registry.npmjs.org/anymatch@2.0.0: - resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz} - name: anymatch - version: 2.0.0 - dependencies: - micromatch: 3.1.10 - normalize-path: 2.1.1 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/anymatch@2.0.0(supports-color@6.1.0): resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz} id: registry.npmjs.org/anymatch/2.0.0 @@ -17271,7 +16847,6 @@ packages: normalize-path: 2.1.1 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz} @@ -17693,7 +17268,7 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.5 + browserslist: registry.npmjs.org/browserslist@4.21.5 caniuse-lite: registry.npmjs.org/caniuse-lite@1.0.30001486 fraction.js: registry.npmjs.org/fraction.js@4.2.0 normalize-range: registry.npmjs.org/normalize-range@0.1.2 @@ -17747,7 +17322,7 @@ packages: common-path-prefix: registry.npmjs.org/common-path-prefix@3.0.0 concordance: registry.npmjs.org/concordance@5.0.4 currently-unhandled: registry.npmjs.org/currently-unhandled@0.4.1 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) emittery: registry.npmjs.org/emittery@1.0.1 figures: registry.npmjs.org/figures@5.0.0 globby: registry.npmjs.org/globby@13.1.4 @@ -17794,13 +17369,25 @@ packages: version: 1.12.0 dev: false + registry.npmjs.org/axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/axios/-/axios-1.6.8.tgz} + name: axios + version: 1.6.8 + dependencies: + follow-redirects: registry.npmjs.org/follow-redirects@1.15.6 + form-data: registry.npmjs.org/form-data@4.0.0 + proxy-from-env: registry.npmjs.org/proxy-from-env@1.1.0 + transitivePeerDependencies: + - debug + dev: false + registry.npmjs.org/babel-code-frame@6.26.0: resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz} name: babel-code-frame version: 6.26.0 dependencies: - chalk: 1.1.3 - esutils: 2.0.3 + chalk: registry.npmjs.org/chalk@1.1.3 + esutils: registry.npmjs.org/esutils@2.0.3 js-tokens: registry.npmjs.org/js-tokens@3.0.2 dev: false @@ -17820,7 +17407,7 @@ packages: babel-types: registry.npmjs.org/babel-types@6.26.0 babylon: registry.npmjs.org/babylon@6.18.0 convert-source-map: 1.9.0 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) json5: 0.4.0 lodash: registry.npmjs.org/lodash@4.17.21 minimatch: registry.npmjs.org/minimatch@3.1.2 @@ -17850,7 +17437,7 @@ packages: babel-types: registry.npmjs.org/babel-types@6.26.0 babylon: registry.npmjs.org/babylon@6.18.0 convert-source-map: 1.9.0 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) json5: 0.5.1 lodash: registry.npmjs.org/lodash@4.17.21 minimatch: registry.npmjs.org/minimatch@3.1.2 @@ -17878,7 +17465,7 @@ packages: babel-types: registry.npmjs.org/babel-types@6.26.0 babylon: registry.npmjs.org/babylon@6.18.0 convert-source-map: registry.npmjs.org/convert-source-map@1.9.0 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) json5: registry.npmjs.org/json5@0.5.1 lodash: registry.npmjs.org/lodash@4.17.21 minimatch: registry.npmjs.org/minimatch@3.1.2 @@ -19047,7 +18634,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.8 + '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@babel/plugin-proposal-class-properties': registry.npmjs.org/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.8) '@babel/plugin-proposal-object-rest-spread': registry.npmjs.org/@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.8) '@babel/plugin-syntax-class-properties': registry.npmjs.org/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.8) @@ -19247,7 +18834,7 @@ packages: babel-runtime: registry.npmjs.org/babel-runtime@6.26.0 babel-types: registry.npmjs.org/babel-types@6.26.0 babylon: registry.npmjs.org/babylon@6.18.0 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) globals: registry.npmjs.org/globals@9.18.0 invariant: registry.npmjs.org/invariant@2.2.4 lodash: registry.npmjs.org/lodash@4.17.21 @@ -19440,27 +19027,6 @@ packages: name: bn.js version: 5.2.1 - registry.npmjs.org/body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz} - name: body-parser - version: 1.20.1 - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dependencies: - bytes: registry.npmjs.org/bytes@3.1.2 - content-type: registry.npmjs.org/content-type@1.0.5 - debug: registry.npmjs.org/debug@2.6.9 - depd: registry.npmjs.org/depd@2.0.0 - destroy: registry.npmjs.org/destroy@1.2.0 - http-errors: registry.npmjs.org/http-errors@2.0.0 - iconv-lite: registry.npmjs.org/iconv-lite@0.4.24 - on-finished: registry.npmjs.org/on-finished@2.4.1 - qs: registry.npmjs.org/qs@6.11.0 - raw-body: registry.npmjs.org/raw-body@2.5.1 - type-is: registry.npmjs.org/type-is@1.6.18 - unpipe: registry.npmjs.org/unpipe@1.0.0 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/body-parser@1.20.1(supports-color@6.1.0): resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz} id: registry.npmjs.org/body-parser/1.20.1 @@ -19482,7 +19048,6 @@ packages: unpipe: registry.npmjs.org/unpipe@1.0.0 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/body-parser@1.20.2: resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz} @@ -19492,7 +19057,7 @@ packages: dependencies: bytes: registry.npmjs.org/bytes@3.1.2 content-type: registry.npmjs.org/content-type@1.0.5 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) depd: registry.npmjs.org/depd@2.0.0 destroy: registry.npmjs.org/destroy@1.2.0 http-errors: registry.npmjs.org/http-errors@2.0.0 @@ -19610,25 +19175,6 @@ packages: dependencies: balanced-match: registry.npmjs.org/balanced-match@1.0.2 - registry.npmjs.org/braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/braces/-/braces-2.3.2.tgz} - name: braces - version: 2.3.2 - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: registry.npmjs.org/arr-flatten@1.1.0 - array-unique: registry.npmjs.org/array-unique@0.3.2 - extend-shallow: registry.npmjs.org/extend-shallow@2.0.1 - fill-range: registry.npmjs.org/fill-range@4.0.0 - isobject: registry.npmjs.org/isobject@3.0.1 - repeat-element: registry.npmjs.org/repeat-element@1.1.4 - snapdragon: registry.npmjs.org/snapdragon@0.8.2 - snapdragon-node: registry.npmjs.org/snapdragon-node@2.1.1 - split-string: registry.npmjs.org/split-string@3.1.0 - to-regex: registry.npmjs.org/to-regex@3.0.2 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/braces@2.3.2(supports-color@6.1.0): resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/braces/-/braces-2.3.2.tgz} id: registry.npmjs.org/braces/2.3.2 @@ -19648,7 +19194,6 @@ packages: to-regex: registry.npmjs.org/to-regex@3.0.2 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/braces/-/braces-3.0.2.tgz} @@ -19943,7 +19488,7 @@ packages: minipass-pipeline: registry.npmjs.org/minipass-pipeline@1.2.4 mkdirp: registry.npmjs.org/mkdirp@1.0.4 p-map: registry.npmjs.org/p-map@4.0.0 - promise-inflight: registry.npmjs.org/promise-inflight@1.0.1 + promise-inflight: registry.npmjs.org/promise-inflight@1.0.1(bluebird@3.7.2) rimraf: registry.npmjs.org/rimraf@3.0.2 ssri: registry.npmjs.org/ssri@8.0.1 tar: registry.npmjs.org/tar@6.1.14 @@ -20208,6 +19753,19 @@ packages: nofilter: registry.npmjs.org/nofilter@3.1.0 dev: true + registry.npmjs.org/chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz} + name: chalk + version: 1.1.3 + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: registry.npmjs.org/ansi-styles@2.2.1 + escape-string-regexp: registry.npmjs.org/escape-string-regexp@1.0.5 + has-ansi: registry.npmjs.org/has-ansi@2.0.0 + strip-ansi: registry.npmjs.org/strip-ansi@3.0.1 + supports-color: registry.npmjs.org/supports-color@2.0.0 + dev: false + registry.npmjs.org/chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz} name: chalk @@ -20285,29 +19843,6 @@ packages: name: charenc version: 0.0.2 - registry.npmjs.org/chokidar@2.1.8: - resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz} - name: chokidar - version: 2.1.8 - deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies - dependencies: - anymatch: registry.npmjs.org/anymatch@2.0.0 - async-each: registry.npmjs.org/async-each@1.0.6 - braces: registry.npmjs.org/braces@2.3.2 - glob-parent: 3.1.0 - inherits: registry.npmjs.org/inherits@2.0.4 - is-binary-path: registry.npmjs.org/is-binary-path@1.0.1 - is-glob: registry.npmjs.org/is-glob@4.0.3 - normalize-path: registry.npmjs.org/normalize-path@3.0.0 - path-is-absolute: registry.npmjs.org/path-is-absolute@1.0.1 - readdirp: registry.npmjs.org/readdirp@2.2.1 - upath: registry.npmjs.org/upath@1.2.0 - optionalDependencies: - fsevents: registry.npmjs.org/fsevents@1.2.13 - transitivePeerDependencies: - - supports-color - optional: true - registry.npmjs.org/chokidar@2.1.8(supports-color@6.1.0): resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz} id: registry.npmjs.org/chokidar/2.1.8 @@ -20330,7 +19865,6 @@ packages: fsevents: registry.npmjs.org/fsevents@1.2.13 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz} @@ -20473,7 +20007,7 @@ packages: version: 4.2.0 engines: {node: '>=12'} dependencies: - escape-string-regexp: 5.0.0 + escape-string-regexp: registry.npmjs.org/escape-string-regexp@5.0.0 dev: true registry.npmjs.org/clean-yaml-object@0.1.0: @@ -20948,22 +20482,6 @@ packages: dependencies: mime-db: 1.52.0 - registry.npmjs.org/compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/compression/-/compression-1.7.4.tgz} - name: compression - version: 1.7.4 - engines: {node: '>= 0.8.0'} - dependencies: - accepts: registry.npmjs.org/accepts@1.3.8 - bytes: registry.npmjs.org/bytes@3.0.0 - compressible: registry.npmjs.org/compressible@2.0.18 - debug: registry.npmjs.org/debug@2.6.9 - on-headers: registry.npmjs.org/on-headers@1.0.2 - safe-buffer: registry.npmjs.org/safe-buffer@5.1.2 - vary: registry.npmjs.org/vary@1.1.2 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/compression@1.7.4(supports-color@6.1.0): resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/compression/-/compression-1.7.4.tgz} id: registry.npmjs.org/compression/1.7.4 @@ -20980,7 +20498,6 @@ packages: vary: registry.npmjs.org/vary@1.1.2 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz} @@ -21018,7 +20535,7 @@ packages: js-string-escape: registry.npmjs.org/js-string-escape@1.0.1 lodash: registry.npmjs.org/lodash@4.17.21 md5-hex: registry.npmjs.org/md5-hex@3.0.1 - semver: registry.npmjs.org/semver@7.5.2 + semver: registry.npmjs.org/semver@7.5.4 well-known-symbols: registry.npmjs.org/well-known-symbols@2.0.0 dev: true @@ -21028,7 +20545,7 @@ packages: version: 9.0.2 engines: {node: '>=10'} dependencies: - ajv: 7.2.4 + ajv: registry.npmjs.org/ajv@7.2.4 ajv-formats: registry.npmjs.org/ajv-formats@1.6.1 atomically: registry.npmjs.org/atomically@1.7.0 debounce-fn: registry.npmjs.org/debounce-fn@4.0.0 @@ -21097,7 +20614,7 @@ packages: version: 3.7.0 engines: {node: '>= 0.10.0'} dependencies: - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) finalhandler: registry.npmjs.org/finalhandler@1.1.2 parseurl: registry.npmjs.org/parseurl@1.3.3 utils-merge: registry.npmjs.org/utils-merge@1.0.1 @@ -21115,7 +20632,7 @@ packages: name: console-browserify version: 1.2.0 - registry.npmjs.org/consolidate@0.15.1(lodash@4.17.21): + registry.npmjs.org/consolidate@0.15.1(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz} id: registry.npmjs.org/consolidate/0.15.1 name: consolidate @@ -21285,6 +20802,8 @@ packages: dependencies: bluebird: registry.npmjs.org/bluebird@3.7.2 lodash: registry.npmjs.org/lodash@4.17.21 + react: registry.npmjs.org/react@18.2.0 + react-dom: registry.npmjs.org/react-dom@18.2.0(react@18.2.0) registry.npmjs.org/constant-case@3.0.4: resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz} @@ -21670,11 +21189,11 @@ packages: dependencies: conf: registry.npmjs.org/conf@9.0.2 fast-xml-parser: registry.npmjs.org/fast-xml-parser@4.2.2 - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types@2.1.35 request: registry.npmjs.org/request@2.88.2 dev: false - registry.npmjs.org/cosmiconfig-typescript-loader@4.3.0(@types/node@14.18.45)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.3.3): + registry.npmjs.org/cosmiconfig-typescript-loader@4.3.0(@types/node@18.19.3)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@4.9.5): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz} id: registry.npmjs.org/cosmiconfig-typescript-loader/4.3.0 name: cosmiconfig-typescript-loader @@ -21686,10 +21205,10 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 cosmiconfig: registry.npmjs.org/cosmiconfig@8.1.3 - ts-node: 10.9.1(@types/node@14.18.45)(typescript@5.3.3) - typescript: registry.npmjs.org/typescript@5.3.3 + ts-node: registry.npmjs.org/ts-node@10.9.1(@types/node@18.19.3)(typescript@4.9.5) + typescript: registry.npmjs.org/typescript@4.9.5 dev: true registry.npmjs.org/cosmiconfig@3.1.0: @@ -21817,8 +21336,9 @@ packages: safe-buffer: registry.npmjs.org/safe-buffer@5.2.1 sha.js: registry.npmjs.org/sha.js@2.4.11 - registry.npmjs.org/create-jest@29.7.0: + registry.npmjs.org/create-jest@29.7.0(@types/node@14.18.45): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz} + id: registry.npmjs.org/create-jest/29.7.0 name: create-jest version: 29.7.0 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -21828,7 +21348,7 @@ packages: chalk: registry.npmjs.org/chalk@4.1.2 exit: registry.npmjs.org/exit@0.1.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - jest-config: registry.npmjs.org/jest-config@29.7.0 + jest-config: registry.npmjs.org/jest-config@29.7.0(@types/node@14.18.45) jest-util: registry.npmjs.org/jest-util@29.7.0 prompts: registry.npmjs.org/prompts@2.4.2 transitivePeerDependencies: @@ -21922,7 +21442,7 @@ packages: version: 2.0.0 engines: {node: '>=14.9.0'} dependencies: - '@types/node': 17.0.45 + '@types/node': registry.npmjs.org/@types/node@17.0.45 dev: true registry.npmjs.org/crypt@0.0.2: @@ -22437,7 +21957,6 @@ packages: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz} name: de-indent version: 1.0.2 - dev: true registry.npmjs.org/debounce-fn@4.0.0: resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz} @@ -22448,18 +21967,6 @@ packages: mimic-fn: registry.npmjs.org/mimic-fn@3.1.0 dev: false - registry.npmjs.org/debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-2.6.9.tgz} - name: debug - version: 2.6.9 - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - registry.npmjs.org/debug@2.6.9(supports-color@6.1.0): resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-2.6.9.tgz} id: registry.npmjs.org/debug/2.6.9 @@ -22473,7 +21980,6 @@ packages: dependencies: ms: 2.0.0 supports-color: registry.npmjs.org/supports-color@6.1.0 - dev: false registry.npmjs.org/debug@3.1.0: resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-3.1.0.tgz} @@ -22488,18 +21994,6 @@ packages: ms: registry.npmjs.org/ms@2.0.0 dev: false - registry.npmjs.org/debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-3.2.7.tgz} - name: debug - version: 3.2.7 - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: registry.npmjs.org/ms@2.1.3 - registry.npmjs.org/debug@3.2.7(supports-color@6.1.0): resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-3.2.7.tgz} id: registry.npmjs.org/debug/3.2.7 @@ -22513,7 +22007,6 @@ packages: dependencies: ms: registry.npmjs.org/ms@2.1.3 supports-color: registry.npmjs.org/supports-color@6.1.0 - dev: false registry.npmjs.org/debug@4.1.1: resolution: {integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-4.1.1.tgz} @@ -22529,19 +22022,6 @@ packages: ms: 2.1.3 dev: false - registry.npmjs.org/debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-4.3.4.tgz} - name: debug - version: 4.3.4 - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: registry.npmjs.org/ms@2.1.2 - registry.npmjs.org/debug@4.3.4(supports-color@6.1.0): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-4.3.4.tgz} id: registry.npmjs.org/debug/4.3.4 @@ -22556,7 +22036,6 @@ packages: dependencies: ms: registry.npmjs.org/ms@2.1.2 supports-color: registry.npmjs.org/supports-color@6.1.0 - dev: false registry.npmjs.org/debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/debug/-/debug-4.3.4.tgz} @@ -22877,7 +22356,7 @@ packages: graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 is-glob: registry.npmjs.org/is-glob@4.0.3 is-path-cwd: registry.npmjs.org/is-path-cwd@2.2.0 - is-path-inside: 3.0.3 + is-path-inside: registry.npmjs.org/is-path-inside@3.0.3 p-map: registry.npmjs.org/p-map@4.0.0 rimraf: registry.npmjs.org/rimraf@3.0.2 slash: 3.0.0 @@ -22905,7 +22384,7 @@ packages: '@vue/compiler-sfc': registry.npmjs.org/@vue/compiler-sfc@3.2.47 camelcase: registry.npmjs.org/camelcase@6.3.0 cosmiconfig: registry.npmjs.org/cosmiconfig@7.1.0 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) deps-regex: registry.npmjs.org/deps-regex@0.1.4 ignore: registry.npmjs.org/ignore@5.2.4 is-core-module: registry.npmjs.org/is-core-module@2.12.0 @@ -23017,7 +22496,7 @@ packages: hasBin: true dependencies: address: registry.npmjs.org/address@1.2.2 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color dev: false @@ -23437,7 +22916,7 @@ packages: requiresBuild: true dependencies: '@electron/get': registry.npmjs.org/@electron/get@1.14.1 - '@types/node': 12.20.55 + '@types/node': registry.npmjs.org/@types/node@12.20.55 extract-zip: registry.npmjs.org/extract-zip@1.7.0 transitivePeerDependencies: - supports-color @@ -23452,7 +22931,7 @@ packages: requiresBuild: true dependencies: '@electron/get': registry.npmjs.org/@electron/get@1.14.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@14.18.45 extract-zip: registry.npmjs.org/extract-zip@1.7.0 transitivePeerDependencies: - supports-color @@ -24237,13 +23716,45 @@ packages: name: eslint-import-resolver-node version: 0.3.7 dependencies: - debug: registry.npmjs.org/debug@3.2.7 + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) is-core-module: registry.npmjs.org/is-core-module@2.12.0 resolve: 1.22.2 transitivePeerDependencies: - supports-color dev: true + registry.npmjs.org/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.41.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz} + id: registry.npmjs.org/eslint-module-utils/2.8.0 + name: eslint-module-utils + version: 2.8.0 + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': registry.npmjs.org/@typescript-eslint/parser@5.62.0(eslint@8.41.0)(typescript@4.9.5) + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) + eslint: registry.npmjs.org/eslint@8.41.0 + eslint-import-resolver-node: registry.npmjs.org/eslint-import-resolver-node@0.3.7 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmjs.org/eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.7)(eslint@8.40.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz} id: registry.npmjs.org/eslint-module-utils/2.8.0 @@ -24269,7 +23780,7 @@ packages: optional: true dependencies: '@typescript-eslint/parser': registry.npmjs.org/@typescript-eslint/parser@6.21.0(eslint@8.40.0)(typescript@4.9.5) - debug: registry.npmjs.org/debug@3.2.7 + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) eslint: registry.npmjs.org/eslint@8.40.0 eslint-import-resolver-node: registry.npmjs.org/eslint-import-resolver-node@0.3.7 transitivePeerDependencies: @@ -24290,6 +23801,42 @@ packages: regexpp: registry.npmjs.org/regexpp@3.2.0 dev: true + registry.npmjs.org/eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.62.0)(eslint@8.41.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz} + id: registry.npmjs.org/eslint-plugin-import/2.27.5 + name: eslint-plugin-import + version: 2.27.5 + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': registry.npmjs.org/@typescript-eslint/parser@5.62.0(eslint@8.41.0)(typescript@4.9.5) + array-includes: registry.npmjs.org/array-includes@3.1.6 + array.prototype.flat: registry.npmjs.org/array.prototype.flat@1.3.1 + array.prototype.flatmap: registry.npmjs.org/array.prototype.flatmap@1.3.1 + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) + doctrine: registry.npmjs.org/doctrine@2.1.0 + eslint: registry.npmjs.org/eslint@8.41.0 + eslint-import-resolver-node: registry.npmjs.org/eslint-import-resolver-node@0.3.7 + eslint-module-utils: registry.npmjs.org/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint@8.41.0) + has: registry.npmjs.org/has@1.0.3 + is-core-module: registry.npmjs.org/is-core-module@2.12.0 + is-glob: registry.npmjs.org/is-glob@4.0.3 + minimatch: registry.npmjs.org/minimatch@3.1.2 + object.values: registry.npmjs.org/object.values@1.1.6 + resolve: registry.npmjs.org/resolve@1.22.2 + semver: registry.npmjs.org/semver@6.3.0 + tsconfig-paths: registry.npmjs.org/tsconfig-paths@3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + registry.npmjs.org/eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.21.0)(eslint@8.40.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz} id: registry.npmjs.org/eslint-plugin-import/2.27.5 @@ -24307,7 +23854,7 @@ packages: array-includes: registry.npmjs.org/array-includes@3.1.6 array.prototype.flat: registry.npmjs.org/array.prototype.flat@1.3.1 array.prototype.flatmap: registry.npmjs.org/array.prototype.flatmap@1.3.1 - debug: registry.npmjs.org/debug@3.2.7 + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) doctrine: registry.npmjs.org/doctrine@2.1.0 eslint: registry.npmjs.org/eslint@8.40.0 eslint-import-resolver-node: registry.npmjs.org/eslint-import-resolver-node@0.3.7 @@ -24413,6 +23960,18 @@ packages: eslint: registry.npmjs.org/eslint@8.40.0 dev: true + registry.npmjs.org/eslint-plugin-react-hooks@4.6.0(eslint@8.41.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz} + id: registry.npmjs.org/eslint-plugin-react-hooks/4.6.0 + name: eslint-plugin-react-hooks + version: 4.6.0 + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: registry.npmjs.org/eslint@8.41.0 + dev: true + registry.npmjs.org/eslint-plugin-react@7.10.0(eslint@5.16.0): resolution: {integrity: sha512-18rzWn4AtbSUxFKKM7aCVcj5LXOhOKdwBino3KKWy4psxfPW0YtIbE8WNRDUdyHFL50BeLb6qFd4vpvNYyp7hw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.10.0.tgz} id: registry.npmjs.org/eslint-plugin-react/7.10.0 @@ -24429,6 +23988,22 @@ packages: prop-types: registry.npmjs.org/prop-types@15.8.1 dev: false + registry.npmjs.org/eslint-plugin-react@7.10.0(eslint@8.41.0): + resolution: {integrity: sha512-18rzWn4AtbSUxFKKM7aCVcj5LXOhOKdwBino3KKWy4psxfPW0YtIbE8WNRDUdyHFL50BeLb6qFd4vpvNYyp7hw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.10.0.tgz} + id: registry.npmjs.org/eslint-plugin-react/7.10.0 + name: eslint-plugin-react + version: 7.10.0 + engines: {node: '>=4'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 + dependencies: + doctrine: registry.npmjs.org/doctrine@2.1.0 + eslint: registry.npmjs.org/eslint@8.41.0 + has: registry.npmjs.org/has@1.0.3 + jsx-ast-utils: registry.npmjs.org/jsx-ast-utils@2.4.1 + prop-types: registry.npmjs.org/prop-types@15.8.1 + dev: true + registry.npmjs.org/eslint-plugin-react@7.32.2(eslint@8.40.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz} id: registry.npmjs.org/eslint-plugin-react/7.32.2 @@ -24599,7 +24174,7 @@ packages: ajv: registry.npmjs.org/ajv@6.12.6 chalk: registry.npmjs.org/chalk@2.4.2 cross-spawn: registry.npmjs.org/cross-spawn@6.0.5 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) doctrine: registry.npmjs.org/doctrine@3.0.0 eslint-scope: registry.npmjs.org/eslint-scope@4.0.3 eslint-utils: registry.npmjs.org/eslint-utils@1.4.3 @@ -24651,7 +24226,7 @@ packages: ajv: registry.npmjs.org/ajv@6.12.6 chalk: registry.npmjs.org/chalk@4.1.2 cross-spawn: registry.npmjs.org/cross-spawn@7.0.3 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) doctrine: registry.npmjs.org/doctrine@3.0.0 escape-string-regexp: registry.npmjs.org/escape-string-regexp@4.0.0 eslint-scope: registry.npmjs.org/eslint-scope@7.2.0 @@ -24684,6 +24259,55 @@ packages: transitivePeerDependencies: - supports-color + registry.npmjs.org/eslint@8.41.0: + resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/eslint/-/eslint-8.41.0.tgz} + name: eslint + version: 8.41.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': registry.npmjs.org/@eslint-community/eslint-utils@4.4.0(eslint@8.41.0) + '@eslint-community/regexpp': registry.npmjs.org/@eslint-community/regexpp@4.5.1 + '@eslint/eslintrc': registry.npmjs.org/@eslint/eslintrc@2.0.3 + '@eslint/js': registry.npmjs.org/@eslint/js@8.41.0 + '@humanwhocodes/config-array': registry.npmjs.org/@humanwhocodes/config-array@0.11.8 + '@humanwhocodes/module-importer': registry.npmjs.org/@humanwhocodes/module-importer@1.0.1 + '@nodelib/fs.walk': registry.npmjs.org/@nodelib/fs.walk@1.2.8 + ajv: registry.npmjs.org/ajv@6.12.6 + chalk: registry.npmjs.org/chalk@4.1.2 + cross-spawn: registry.npmjs.org/cross-spawn@7.0.3 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) + doctrine: registry.npmjs.org/doctrine@3.0.0 + escape-string-regexp: registry.npmjs.org/escape-string-regexp@4.0.0 + eslint-scope: registry.npmjs.org/eslint-scope@7.2.0 + eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 + espree: registry.npmjs.org/espree@9.5.2 + esquery: registry.npmjs.org/esquery@1.5.0 + esutils: registry.npmjs.org/esutils@2.0.3 + fast-deep-equal: registry.npmjs.org/fast-deep-equal@3.1.3 + file-entry-cache: registry.npmjs.org/file-entry-cache@6.0.1 + find-up: registry.npmjs.org/find-up@5.0.0 + glob-parent: registry.npmjs.org/glob-parent@6.0.2 + globals: registry.npmjs.org/globals@13.20.0 + graphemer: registry.npmjs.org/graphemer@1.4.0 + ignore: registry.npmjs.org/ignore@5.2.4 + import-fresh: registry.npmjs.org/import-fresh@3.3.0 + imurmurhash: registry.npmjs.org/imurmurhash@0.1.4 + is-glob: registry.npmjs.org/is-glob@4.0.3 + is-path-inside: registry.npmjs.org/is-path-inside@3.0.3 + js-yaml: registry.npmjs.org/js-yaml@4.1.0 + json-stable-stringify-without-jsonify: registry.npmjs.org/json-stable-stringify-without-jsonify@1.0.1 + levn: registry.npmjs.org/levn@0.4.1 + lodash.merge: registry.npmjs.org/lodash.merge@4.6.2 + minimatch: registry.npmjs.org/minimatch@3.1.2 + natural-compare: registry.npmjs.org/natural-compare@1.4.0 + optionator: registry.npmjs.org/optionator@0.9.1 + strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 + strip-json-comments: registry.npmjs.org/strip-json-comments@3.1.1 + text-table: registry.npmjs.org/text-table@0.2.0 + transitivePeerDependencies: + - supports-color + registry.npmjs.org/espower-location-detector@1.0.0: resolution: {integrity: sha512-Y/3H6ytYwqC3YcOc0gOU22Lp3eI5GAFGOymTdzFyfaiglKgtsw2dePOgXY3yrV+QcLPMPiVYwBU9RKaDoh2bbQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz} name: espower-location-detector @@ -24863,7 +24487,7 @@ packages: version: 4.1.0 engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: registry.npmjs.org/cross-spawn@7.0.3 get-stream: registry.npmjs.org/get-stream@5.2.0 human-signals: registry.npmjs.org/human-signals@1.1.1 is-stream: registry.npmjs.org/is-stream@2.0.1 @@ -24920,22 +24544,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - registry.npmjs.org/expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz} - name: expand-brackets - version: 2.1.4 - engines: {node: '>=0.10.0'} - dependencies: - debug: registry.npmjs.org/debug@2.6.9 - define-property: registry.npmjs.org/define-property@0.2.5 - extend-shallow: registry.npmjs.org/extend-shallow@2.0.1 - posix-character-classes: registry.npmjs.org/posix-character-classes@0.1.1 - regex-not: registry.npmjs.org/regex-not@1.0.2 - snapdragon: registry.npmjs.org/snapdragon@0.8.2 - to-regex: registry.npmjs.org/to-regex@3.0.2 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/expand-brackets@2.1.4(supports-color@6.1.0): resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz} id: registry.npmjs.org/expand-brackets/2.1.4 @@ -24952,7 +24560,6 @@ packages: to-regex: registry.npmjs.org/to-regex@3.0.2 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/expect@26.6.2: resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/expect/-/expect-26.6.2.tgz} @@ -25180,10 +24787,10 @@ packages: version: 1.0.2 hasBin: true dependencies: - chalk: 4.1.2 + chalk: registry.npmjs.org/chalk@4.1.2 commander: registry.npmjs.org/commander@7.2.0 fast-glob: 3.3.1 - find-up: 5.0.0 + find-up: registry.npmjs.org/find-up@5.0.0 fs-extra: registry.npmjs.org/fs-extra@9.1.0 registry.npmjs.org/expo-modules-core@1.0.4: @@ -25222,7 +24829,7 @@ packages: version: 47.0.14 hasBin: true dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@expo/cli': registry.npmjs.org/@expo/cli@0.4.11(expo-modules-autolinking@1.0.2) '@expo/config': registry.npmjs.org/@expo/config@7.0.3 '@expo/config-plugins': registry.npmjs.org/@expo/config-plugins@5.0.4 @@ -25258,46 +24865,6 @@ packages: version: 1.0.0 dev: false - registry.npmjs.org/express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/express/-/express-4.18.2.tgz} - name: express - version: 4.18.2 - engines: {node: '>= 0.10.0'} - dependencies: - accepts: registry.npmjs.org/accepts@1.3.8 - array-flatten: registry.npmjs.org/array-flatten@1.1.1 - body-parser: registry.npmjs.org/body-parser@1.20.1 - content-disposition: registry.npmjs.org/content-disposition@0.5.4 - content-type: registry.npmjs.org/content-type@1.0.5 - cookie: registry.npmjs.org/cookie@0.5.0 - cookie-signature: registry.npmjs.org/cookie-signature@1.0.6 - debug: registry.npmjs.org/debug@2.6.9 - depd: registry.npmjs.org/depd@2.0.0 - encodeurl: registry.npmjs.org/encodeurl@1.0.2 - escape-html: registry.npmjs.org/escape-html@1.0.3 - etag: registry.npmjs.org/etag@1.8.1 - finalhandler: registry.npmjs.org/finalhandler@1.2.0 - fresh: registry.npmjs.org/fresh@0.5.2 - http-errors: registry.npmjs.org/http-errors@2.0.0 - merge-descriptors: registry.npmjs.org/merge-descriptors@1.0.1 - methods: registry.npmjs.org/methods@1.1.2 - on-finished: registry.npmjs.org/on-finished@2.4.1 - parseurl: registry.npmjs.org/parseurl@1.3.3 - path-to-regexp: registry.npmjs.org/path-to-regexp@0.1.7 - proxy-addr: registry.npmjs.org/proxy-addr@2.0.7 - qs: registry.npmjs.org/qs@6.11.0 - range-parser: registry.npmjs.org/range-parser@1.2.1 - safe-buffer: registry.npmjs.org/safe-buffer@5.2.1 - send: registry.npmjs.org/send@0.18.0 - serve-static: registry.npmjs.org/serve-static@1.15.0 - setprototypeof: registry.npmjs.org/setprototypeof@1.2.0 - statuses: registry.npmjs.org/statuses@2.0.1 - type-is: registry.npmjs.org/type-is@1.6.18 - utils-merge: registry.npmjs.org/utils-merge@1.0.1 - vary: registry.npmjs.org/vary@1.1.2 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/express@4.18.2(supports-color@6.1.0): resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/express/-/express-4.18.2.tgz} id: registry.npmjs.org/express/4.18.2 @@ -25338,7 +24905,6 @@ packages: vary: registry.npmjs.org/vary@1.1.2 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/ext-list@2.2.2: resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz} @@ -25409,23 +24975,6 @@ packages: iconv-lite: registry.npmjs.org/iconv-lite@0.4.24 tmp: registry.npmjs.org/tmp@0.0.33 - registry.npmjs.org/extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz} - name: extglob - version: 2.0.4 - engines: {node: '>=0.10.0'} - dependencies: - array-unique: registry.npmjs.org/array-unique@0.3.2 - define-property: registry.npmjs.org/define-property@1.0.0 - expand-brackets: registry.npmjs.org/expand-brackets@2.1.4 - extend-shallow: registry.npmjs.org/extend-shallow@2.0.1 - fragment-cache: registry.npmjs.org/fragment-cache@0.2.1 - regex-not: registry.npmjs.org/regex-not@1.0.2 - snapdragon: registry.npmjs.org/snapdragon@0.8.2 - to-regex: registry.npmjs.org/to-regex@3.0.2 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/extglob@2.0.4(supports-color@6.1.0): resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz} id: registry.npmjs.org/extglob/2.0.4 @@ -25443,7 +24992,6 @@ packages: to-regex: registry.npmjs.org/to-regex@3.0.2 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/extract-zip@1.7.0: resolution: {integrity: sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz} @@ -25452,7 +25000,7 @@ packages: hasBin: true dependencies: concat-stream: registry.npmjs.org/concat-stream@1.6.2 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) mkdirp: registry.npmjs.org/mkdirp@0.5.6 yauzl: registry.npmjs.org/yauzl@2.10.0 transitivePeerDependencies: @@ -25466,7 +25014,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) get-stream: registry.npmjs.org/get-stream@5.2.0 yauzl: registry.npmjs.org/yauzl@2.10.0 optionalDependencies: @@ -25571,7 +25119,7 @@ packages: name: fbjs-scripts version: 3.0.1 dependencies: - '@babel/core': 7.21.8 + '@babel/core': registry.npmjs.org/@babel/core@7.21.8 ansi-colors: registry.npmjs.org/ansi-colors@1.1.0 babel-preset-fbjs: registry.npmjs.org/babel-preset-fbjs@3.4.0(@babel/core@7.21.8) cross-spawn: registry.npmjs.org/cross-spawn@5.1.0 @@ -25814,7 +25362,7 @@ packages: version: 1.1.2 engines: {node: '>= 0.8'} dependencies: - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) encodeurl: registry.npmjs.org/encodeurl@1.0.2 escape-html: registry.npmjs.org/escape-html@1.0.3 on-finished: registry.npmjs.org/on-finished@2.3.0 @@ -25824,22 +25372,6 @@ packages: transitivePeerDependencies: - supports-color - registry.npmjs.org/finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz} - name: finalhandler - version: 1.2.0 - engines: {node: '>= 0.8'} - dependencies: - debug: registry.npmjs.org/debug@2.6.9 - encodeurl: registry.npmjs.org/encodeurl@1.0.2 - escape-html: registry.npmjs.org/escape-html@1.0.3 - on-finished: registry.npmjs.org/on-finished@2.4.1 - parseurl: registry.npmjs.org/parseurl@1.3.3 - statuses: registry.npmjs.org/statuses@2.0.1 - unpipe: registry.npmjs.org/unpipe@1.0.0 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/finalhandler@1.2.0(supports-color@6.1.0): resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz} id: registry.npmjs.org/finalhandler/1.2.0 @@ -25856,7 +25388,6 @@ packages: unpipe: registry.npmjs.org/unpipe@1.0.0 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/find-babel-config@1.2.0: resolution: {integrity: sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz} @@ -25982,8 +25513,9 @@ packages: inherits: registry.npmjs.org/inherits@2.0.4 readable-stream: registry.npmjs.org/readable-stream@2.3.8 - registry.npmjs.org/follow-redirects@1.15.2: + registry.npmjs.org/follow-redirects@1.15.2(debug@4.3.4): resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz} + id: registry.npmjs.org/follow-redirects/1.15.2 name: follow-redirects version: 1.15.2 engines: {node: '>=4.0'} @@ -25992,20 +25524,19 @@ packages: peerDependenciesMeta: debug: optional: true + dependencies: + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) - registry.npmjs.org/follow-redirects@1.15.2(debug@4.3.4): - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz} - id: registry.npmjs.org/follow-redirects/1.15.2 + registry.npmjs.org/follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz} name: follow-redirects - version: 1.15.2 + version: 1.15.6 engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: debug: optional: true - dependencies: - debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) dev: false registry.npmjs.org/fontfaceobserver@2.3.0: @@ -26076,7 +25607,7 @@ packages: dependencies: asynckit: registry.npmjs.org/asynckit@0.4.0 combined-stream: registry.npmjs.org/combined-stream@1.0.8 - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types@2.1.35 dev: true registry.npmjs.org/form-data@3.0.1: @@ -26087,7 +25618,7 @@ packages: dependencies: asynckit: registry.npmjs.org/asynckit@0.4.0 combined-stream: registry.npmjs.org/combined-stream@1.0.8 - mime-types: 2.1.35 + mime-types: registry.npmjs.org/mime-types@2.1.35 registry.npmjs.org/form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz} @@ -26904,7 +26435,6 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz} name: graphemer version: 1.4.0 - dev: true registry.npmjs.org/graphql-tag@2.12.6(graphql@15.8.0): resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz} @@ -27204,7 +26734,7 @@ packages: name: history version: 5.3.0 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 dev: false registry.npmjs.org/hls.js@1.4.1: @@ -27476,7 +27006,7 @@ packages: dependencies: '@tootallnate/once': registry.npmjs.org/@tootallnate/once@1.1.2 agent-base: registry.npmjs.org/agent-base@6.0.2 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color dev: true @@ -27489,7 +27019,7 @@ packages: dependencies: '@tootallnate/once': registry.npmjs.org/@tootallnate/once@2.0.0 agent-base: registry.npmjs.org/agent-base@6.0.2 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color @@ -27516,7 +27046,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: '@types/http-proxy': registry.npmjs.org/@types/http-proxy@1.17.11 - http-proxy: registry.npmjs.org/http-proxy@1.18.1 + http-proxy: registry.npmjs.org/http-proxy@1.18.1(debug@4.3.4) is-glob: registry.npmjs.org/is-glob@4.0.3 is-plain-obj: registry.npmjs.org/is-plain-obj@3.0.0 micromatch: 4.0.5 @@ -27538,25 +27068,13 @@ packages: dependencies: '@types/express': registry.npmjs.org/@types/express@4.17.17 '@types/http-proxy': registry.npmjs.org/@types/http-proxy@1.17.11 - http-proxy: registry.npmjs.org/http-proxy@1.18.1 + http-proxy: registry.npmjs.org/http-proxy@1.18.1(debug@4.3.4) is-glob: registry.npmjs.org/is-glob@4.0.3 is-plain-obj: registry.npmjs.org/is-plain-obj@3.0.0 micromatch: 4.0.5 transitivePeerDependencies: - debug - registry.npmjs.org/http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz} - name: http-proxy - version: 1.18.1 - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: registry.npmjs.org/eventemitter3@4.0.7 - follow-redirects: registry.npmjs.org/follow-redirects@1.15.2 - requires-port: registry.npmjs.org/requires-port@1.0.0 - transitivePeerDependencies: - - debug - registry.npmjs.org/http-proxy@1.18.1(debug@4.3.4): resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz} id: registry.npmjs.org/http-proxy/1.18.1 @@ -27569,7 +27087,6 @@ packages: requires-port: registry.npmjs.org/requires-port@1.0.0 transitivePeerDependencies: - debug - dev: false registry.npmjs.org/http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz} @@ -27594,7 +27111,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: registry.npmjs.org/agent-base@6.0.2 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color @@ -27708,7 +27225,7 @@ packages: name: image-q version: 4.0.0 dependencies: - '@types/node': 16.9.1 + '@types/node': registry.npmjs.org/@types/node@16.9.1 dev: false registry.npmjs.org/image-size@0.5.5: @@ -28833,7 +28350,7 @@ packages: version: 4.0.1 engines: {node: '>=10'} dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) istanbul-lib-coverage: registry.npmjs.org/istanbul-lib-coverage@3.2.0 source-map: registry.npmjs.org/source-map@0.6.1 transitivePeerDependencies: @@ -28943,7 +28460,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@27.5.1 '@jest/test-result': registry.npmjs.org/@jest/test-result@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 co: registry.npmjs.org/co@4.6.0 dedent: registry.npmjs.org/dedent@0.7.0 @@ -28973,7 +28490,7 @@ packages: '@jest/expect': registry.npmjs.org/@jest/expect@29.5.0 '@jest/test-result': registry.npmjs.org/@jest/test-result@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 co: registry.npmjs.org/co@4.6.0 dedent: registry.npmjs.org/dedent@0.7.0 @@ -29003,7 +28520,7 @@ packages: '@jest/expect': registry.npmjs.org/@jest/expect@29.7.0 '@jest/test-result': registry.npmjs.org/@jest/test-result@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 co: registry.npmjs.org/co@4.6.0 dedent: registry.npmjs.org/dedent@1.5.1 @@ -29084,36 +28601,6 @@ packages: - utf-8-validate dev: true - registry.npmjs.org/jest-cli@29.5.0: - resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz} - name: jest-cli - version: 29.5.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': registry.npmjs.org/@jest/core@29.5.0 - '@jest/test-result': registry.npmjs.org/@jest/test-result@29.5.0 - '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - chalk: registry.npmjs.org/chalk@4.1.2 - exit: registry.npmjs.org/exit@0.1.2 - graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - import-local: registry.npmjs.org/import-local@3.1.0 - jest-config: registry.npmjs.org/jest-config@29.5.0 - jest-util: registry.npmjs.org/jest-util@29.5.0 - jest-validate: registry.npmjs.org/jest-validate@29.5.0 - prompts: registry.npmjs.org/prompts@2.4.2 - yargs: registry.npmjs.org/yargs@17.7.2 - transitivePeerDependencies: - - '@types/node' - - supports-color - - ts-node - dev: true - registry.npmjs.org/jest-cli@29.5.0(@types/node@14.18.45)(ts-node@10.9.1): resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz} id: registry.npmjs.org/jest-cli/29.5.0 @@ -29176,8 +28663,9 @@ packages: - ts-node dev: true - registry.npmjs.org/jest-cli@29.7.0: + registry.npmjs.org/jest-cli@29.7.0(@types/node@14.18.45): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz} + id: registry.npmjs.org/jest-cli/29.7.0 name: jest-cli version: 29.7.0 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -29188,14 +28676,14 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': registry.npmjs.org/@jest/core@29.7.0 + '@jest/core': registry.npmjs.org/@jest/core@29.7.0(ts-node@10.9.1) '@jest/test-result': registry.npmjs.org/@jest/test-result@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 chalk: registry.npmjs.org/chalk@4.1.2 - create-jest: registry.npmjs.org/create-jest@29.7.0 + create-jest: registry.npmjs.org/create-jest@29.7.0(@types/node@14.18.45) exit: registry.npmjs.org/exit@0.1.2 import-local: registry.npmjs.org/import-local@3.1.0 - jest-config: registry.npmjs.org/jest-config@29.7.0 + jest-config: registry.npmjs.org/jest-config@29.7.0(@types/node@14.18.45) jest-util: registry.npmjs.org/jest-util@29.7.0 jest-validate: registry.npmjs.org/jest-validate@29.7.0 yargs: registry.npmjs.org/yargs@17.7.2 @@ -29315,47 +28803,7 @@ packages: - utf-8-validate dev: true - registry.npmjs.org/jest-config@29.5.0: - resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz} - name: jest-config - version: 29.5.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': registry.npmjs.org/@babel/core@7.21.8 - '@jest/test-sequencer': registry.npmjs.org/@jest/test-sequencer@29.5.0 - '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - babel-jest: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) - chalk: registry.npmjs.org/chalk@4.1.2 - ci-info: registry.npmjs.org/ci-info@3.8.0 - deepmerge: registry.npmjs.org/deepmerge@4.3.1 - glob: registry.npmjs.org/glob@7.2.3 - graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - jest-circus: registry.npmjs.org/jest-circus@29.5.0 - jest-environment-node: registry.npmjs.org/jest-environment-node@29.7.0 - jest-get-type: registry.npmjs.org/jest-get-type@29.4.3 - jest-regex-util: registry.npmjs.org/jest-regex-util@29.4.3 - jest-resolve: registry.npmjs.org/jest-resolve@29.5.0 - jest-runner: registry.npmjs.org/jest-runner@29.5.0 - jest-util: registry.npmjs.org/jest-util@29.5.0 - jest-validate: registry.npmjs.org/jest-validate@29.5.0 - micromatch: registry.npmjs.org/micromatch@4.0.5 - parse-json: registry.npmjs.org/parse-json@5.2.0 - pretty-format: registry.npmjs.org/pretty-format@29.5.0 - slash: registry.npmjs.org/slash@3.0.0 - strip-json-comments: registry.npmjs.org/strip-json-comments@3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - registry.npmjs.org/jest-config@29.5.0(@types/node@14.18.45): + registry.npmjs.org/jest-config@29.5.0(@types/node@14.18.45)(ts-node@10.9.1): resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz} id: registry.npmjs.org/jest-config/29.5.0 name: jest-config @@ -29373,7 +28821,7 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@jest/test-sequencer': registry.npmjs.org/@jest/test-sequencer@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@14.18.45 babel-jest: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 @@ -29393,11 +28841,12 @@ packages: pretty-format: registry.npmjs.org/pretty-format@29.5.0 slash: registry.npmjs.org/slash@3.0.0 strip-json-comments: registry.npmjs.org/strip-json-comments@3.1.1 + ts-node: registry.npmjs.org/ts-node@10.9.1(@types/node@14.18.45)(typescript@4.9.5) transitivePeerDependencies: - supports-color dev: true - registry.npmjs.org/jest-config@29.5.0(@types/node@14.18.45)(ts-node@10.9.1): + registry.npmjs.org/jest-config@29.5.0(@types/node@18.19.3)(ts-node@10.9.1): resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz} id: registry.npmjs.org/jest-config/29.5.0 name: jest-config @@ -29415,7 +28864,7 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@jest/test-sequencer': registry.npmjs.org/@jest/test-sequencer@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 babel-jest: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 @@ -29483,47 +28932,6 @@ packages: - supports-color dev: true - registry.npmjs.org/jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz} - name: jest-config - version: 29.7.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': registry.npmjs.org/@babel/core@7.21.8 - '@jest/test-sequencer': registry.npmjs.org/@jest/test-sequencer@29.7.0 - '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - babel-jest: registry.npmjs.org/babel-jest@29.7.0(@babel/core@7.21.8) - chalk: registry.npmjs.org/chalk@4.1.2 - ci-info: registry.npmjs.org/ci-info@3.8.0 - deepmerge: 4.3.1 - glob: registry.npmjs.org/glob@7.2.3 - graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - jest-circus: registry.npmjs.org/jest-circus@29.7.0 - jest-environment-node: registry.npmjs.org/jest-environment-node@29.7.0 - jest-get-type: registry.npmjs.org/jest-get-type@29.6.3 - jest-regex-util: registry.npmjs.org/jest-regex-util@29.6.3 - jest-resolve: registry.npmjs.org/jest-resolve@29.7.0 - jest-runner: registry.npmjs.org/jest-runner@29.7.0 - jest-util: registry.npmjs.org/jest-util@29.7.0 - jest-validate: registry.npmjs.org/jest-validate@29.7.0 - micromatch: 4.0.5 - parse-json: registry.npmjs.org/parse-json@5.2.0 - pretty-format: registry.npmjs.org/pretty-format@29.7.0 - slash: registry.npmjs.org/slash@3.0.0 - strip-json-comments: registry.npmjs.org/strip-json-comments@3.1.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - dev: true - registry.npmjs.org/jest-config@29.7.0(@types/node@14.18.45): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz} id: registry.npmjs.org/jest-config/29.7.0 @@ -29542,7 +28950,7 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@jest/test-sequencer': registry.npmjs.org/@jest/test-sequencer@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@14.18.45 babel-jest: registry.npmjs.org/babel-jest@29.7.0(@babel/core@7.21.8) chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 @@ -29567,7 +28975,7 @@ packages: - supports-color dev: true - registry.npmjs.org/jest-config@29.7.0(@types/node@14.18.45)(ts-node@10.9.1): + registry.npmjs.org/jest-config@29.7.0(@types/node@18.19.3)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz} id: registry.npmjs.org/jest-config/29.7.0 name: jest-config @@ -29585,7 +28993,7 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@jest/test-sequencer': registry.npmjs.org/@jest/test-sequencer@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 babel-jest: registry.npmjs.org/babel-jest@29.7.0(@babel/core@7.21.8) chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 @@ -29800,7 +29208,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@26.6.2 '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@26.6.2 '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@26.6.2 jest-util: registry.npmjs.org/jest-util@26.6.2 jsdom: registry.npmjs.org/jsdom@16.7.0 @@ -29820,7 +29228,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@27.5.1 '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@27.5.1 jest-util: registry.npmjs.org/jest-util@27.5.1 jsdom: registry.npmjs.org/jsdom@16.7.0 @@ -29846,7 +29254,7 @@ packages: '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 '@types/jsdom': registry.npmjs.org/@types/jsdom@20.0.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@29.5.0 jest-util: registry.npmjs.org/jest-util@29.5.0 jsdom: registry.npmjs.org/jsdom@20.0.3 @@ -29865,7 +29273,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@26.6.2 '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@26.6.2 '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@26.6.2 jest-util: registry.npmjs.org/jest-util@26.6.2 dev: true @@ -29879,7 +29287,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@27.5.1 '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@27.5.1 jest-util: registry.npmjs.org/jest-util@27.5.1 dev: true @@ -29893,7 +29301,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@29.5.0 '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@29.5.0 jest-util: registry.npmjs.org/jest-util@29.5.0 dev: true @@ -29907,7 +29315,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@29.7.0 '@jest/fake-timers': registry.npmjs.org/@jest/fake-timers@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-mock: registry.npmjs.org/jest-mock@29.7.0 jest-util: registry.npmjs.org/jest-util@29.7.0 dev: true @@ -29981,7 +29389,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@26.6.2 '@types/graceful-fs': registry.npmjs.org/@types/graceful-fs@4.1.6 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 anymatch: registry.npmjs.org/anymatch@3.1.3 fb-watchman: registry.npmjs.org/fb-watchman@2.0.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -30006,7 +29414,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@27.5.1 '@types/graceful-fs': registry.npmjs.org/@types/graceful-fs@4.1.6 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 anymatch: registry.npmjs.org/anymatch@3.1.3 fb-watchman: registry.npmjs.org/fb-watchman@2.0.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -30028,7 +29436,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.5.0 '@types/graceful-fs': registry.npmjs.org/@types/graceful-fs@4.1.6 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 anymatch: registry.npmjs.org/anymatch@3.1.3 fb-watchman: registry.npmjs.org/fb-watchman@2.0.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -30049,7 +29457,7 @@ packages: dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.6.3 '@types/graceful-fs': registry.npmjs.org/@types/graceful-fs@4.1.6 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 anymatch: registry.npmjs.org/anymatch@3.1.3 fb-watchman: registry.npmjs.org/fb-watchman@2.0.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -30073,7 +29481,7 @@ packages: '@jest/source-map': registry.npmjs.org/@jest/source-map@26.6.2 '@jest/test-result': registry.npmjs.org/@jest/test-result@26.6.2 '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 co: registry.npmjs.org/co@4.6.0 expect: registry.npmjs.org/expect@26.6.2 @@ -30104,7 +29512,7 @@ packages: '@jest/source-map': registry.npmjs.org/@jest/source-map@27.5.1 '@jest/test-result': registry.npmjs.org/@jest/test-result@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 co: registry.npmjs.org/co@4.6.0 expect: registry.npmjs.org/expect@27.5.1 @@ -30285,7 +29693,7 @@ packages: peerDependencies: jest: '>= 22.4.2' dependencies: - jest: registry.npmjs.org/jest@29.5.0 + jest: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) dev: true registry.npmjs.org/jest-mock@26.6.2: @@ -30295,7 +29703,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true registry.npmjs.org/jest-mock@27.5.1: @@ -30305,7 +29713,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 dev: true registry.npmjs.org/jest-mock@29.5.0: @@ -30315,7 +29723,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-util: registry.npmjs.org/jest-util@29.5.0 dev: true @@ -30326,7 +29734,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-util: registry.npmjs.org/jest-util@29.7.0 dev: true @@ -30545,7 +29953,7 @@ packages: '@jest/environment': registry.npmjs.org/@jest/environment@26.6.2 '@jest/test-result': registry.npmjs.org/@jest/test-result@26.6.2 '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 emittery: registry.npmjs.org/emittery@0.7.2 exit: registry.npmjs.org/exit@0.1.2 @@ -30580,7 +29988,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@27.5.1 '@jest/transform': registry.npmjs.org/@jest/transform@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 emittery: registry.npmjs.org/emittery@0.8.1 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -30614,7 +30022,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.5.0 '@jest/transform': registry.npmjs.org/@jest/transform@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 emittery: registry.npmjs.org/emittery@0.13.1 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -30645,7 +30053,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.7.0 '@jest/transform': registry.npmjs.org/@jest/transform@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 emittery: registry.npmjs.org/emittery@0.13.1 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -30752,7 +30160,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.5.0 '@jest/transform': registry.npmjs.org/@jest/transform@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 cjs-module-lexer: registry.npmjs.org/cjs-module-lexer@1.2.2 collect-v8-coverage: registry.npmjs.org/collect-v8-coverage@1.0.1 @@ -30784,7 +30192,7 @@ packages: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.7.0 '@jest/transform': registry.npmjs.org/@jest/transform@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 cjs-module-lexer: registry.npmjs.org/cjs-module-lexer@1.2.2 collect-v8-coverage: registry.npmjs.org/collect-v8-coverage@1.0.1 @@ -30809,7 +30217,7 @@ packages: version: 26.6.2 engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 dev: true @@ -30819,7 +30227,7 @@ packages: version: 27.5.1 engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 registry.npmjs.org/jest-snapshot@26.6.2: @@ -30943,24 +30351,6 @@ packages: - supports-color dev: true - registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23): - resolution: {integrity: sha512-i78Pi2MW6vcdsUFSRx1kPbjbEIO0pBWwh1Y+PcDrLwTv/6e5p7fzsV/gxFW/SYMHS8DUvMdRVTwVCkA/y+t0iQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-transform-css/-/jest-transform-css-6.0.1.tgz} - id: registry.npmjs.org/jest-transform-css/6.0.1 - name: jest-transform-css - version: 6.0.1 - peerDependencies: - postcss: ^8.4.12 - dependencies: - common-tags: registry.npmjs.org/common-tags@1.8.2 - cross-spawn: registry.npmjs.org/cross-spawn@7.0.3 - postcss: registry.npmjs.org/postcss@8.4.23 - postcss-load-config: registry.npmjs.org/postcss-load-config@4.0.1(postcss@8.4.23) - postcss-modules: registry.npmjs.org/postcss-modules@4.3.1(postcss@8.4.23) - style-inject: registry.npmjs.org/style-inject@0.3.0 - transitivePeerDependencies: - - ts-node - dev: true - registry.npmjs.org/jest-transform-css@6.0.1(postcss@8.4.23)(ts-node@10.9.1): resolution: {integrity: sha512-i78Pi2MW6vcdsUFSRx1kPbjbEIO0pBWwh1Y+PcDrLwTv/6e5p7fzsV/gxFW/SYMHS8DUvMdRVTwVCkA/y+t0iQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest-transform-css/-/jest-transform-css-6.0.1.tgz} id: registry.npmjs.org/jest-transform-css/6.0.1 @@ -30986,7 +30376,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 is-ci: registry.npmjs.org/is-ci@2.0.0 @@ -31000,7 +30390,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -31013,7 +30403,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -31027,7 +30417,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@3.8.0 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 @@ -31126,7 +30516,7 @@ packages: dependencies: '@jest/test-result': registry.npmjs.org/@jest/test-result@26.6.2 '@jest/types': registry.npmjs.org/@jest/types@26.6.2 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 jest-util: registry.npmjs.org/jest-util@26.6.2 @@ -31141,7 +30531,7 @@ packages: dependencies: '@jest/test-result': registry.npmjs.org/@jest/test-result@27.5.1 '@jest/types': registry.npmjs.org/@jest/types@27.5.1 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 jest-util: registry.npmjs.org/jest-util@27.5.1 @@ -31156,7 +30546,7 @@ packages: dependencies: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.5.0 '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 emittery: registry.npmjs.org/emittery@0.13.1 @@ -31172,7 +30562,7 @@ packages: dependencies: '@jest/test-result': registry.npmjs.org/@jest/test-result@29.7.0 '@jest/types': registry.npmjs.org/@jest/types@29.6.3 - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 ansi-escapes: registry.npmjs.org/ansi-escapes@4.3.2 chalk: registry.npmjs.org/chalk@4.1.2 emittery: registry.npmjs.org/emittery@0.13.1 @@ -31186,7 +30576,7 @@ packages: version: 26.6.2 engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 merge-stream: registry.npmjs.org/merge-stream@2.0.0 supports-color: registry.npmjs.org/supports-color@7.2.0 @@ -31196,7 +30586,7 @@ packages: version: 27.5.1 engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 merge-stream: registry.npmjs.org/merge-stream@2.0.0 supports-color: registry.npmjs.org/supports-color@8.1.1 @@ -31206,7 +30596,7 @@ packages: version: 29.5.0 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-util: registry.npmjs.org/jest-util@29.5.0 merge-stream: registry.npmjs.org/merge-stream@2.0.0 supports-color: registry.npmjs.org/supports-color@8.1.1 @@ -31218,7 +30608,7 @@ packages: version: 29.7.0 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 jest-util: registry.npmjs.org/jest-util@29.7.0 merge-stream: registry.npmjs.org/merge-stream@2.0.0 supports-color: registry.npmjs.org/supports-color@8.1.1 @@ -31265,28 +30655,6 @@ packages: - utf-8-validate dev: true - registry.npmjs.org/jest@29.5.0: - resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest/-/jest-29.5.0.tgz} - name: jest - version: 29.5.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': registry.npmjs.org/@jest/core@29.5.0 - '@jest/types': registry.npmjs.org/@jest/types@29.5.0 - import-local: registry.npmjs.org/import-local@3.1.0 - jest-cli: registry.npmjs.org/jest-cli@29.5.0 - transitivePeerDependencies: - - '@types/node' - - supports-color - - ts-node - dev: true - registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1): resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest/-/jest-29.5.0.tgz} id: registry.npmjs.org/jest/29.5.0 @@ -31310,8 +30678,9 @@ packages: - ts-node dev: true - registry.npmjs.org/jest@29.7.0: + registry.npmjs.org/jest@29.7.0(@types/node@14.18.45): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jest/-/jest-29.7.0.tgz} + id: registry.npmjs.org/jest/29.7.0 name: jest version: 29.7.0 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -31322,10 +30691,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': registry.npmjs.org/@jest/core@29.7.0 + '@jest/core': registry.npmjs.org/@jest/core@29.7.0(ts-node@10.9.1) '@jest/types': registry.npmjs.org/@jest/types@29.6.3 import-local: registry.npmjs.org/import-local@3.1.0 - jest-cli: registry.npmjs.org/jest-cli@29.7.0 + jest-cli: registry.npmjs.org/jest-cli@29.7.0(@types/node@14.18.45) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -31380,7 +30749,7 @@ packages: name: jimp version: 0.9.8 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@jimp/custom': registry.npmjs.org/@jimp/custom@0.9.8 '@jimp/plugins': registry.npmjs.org/@jimp/plugins@0.9.8(@jimp/custom@0.9.8) '@jimp/types': registry.npmjs.org/@jimp/types@0.9.8(@jimp/custom@0.9.8) @@ -31510,7 +30879,7 @@ packages: colors: registry.npmjs.org/colors@1.4.0 flow-parser: registry.npmjs.org/flow-parser@0.121.0 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - micromatch: 3.1.10 + micromatch: 3.1.10(supports-color@6.1.0) neo-async: 2.6.2 node-dir: registry.npmjs.org/node-dir@0.1.17 recast: registry.npmjs.org/recast@0.20.5 @@ -31543,8 +30912,8 @@ packages: chalk: registry.npmjs.org/chalk@4.1.2 flow-parser: registry.npmjs.org/flow-parser@0.121.0 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - micromatch: 3.1.10 - neo-async: 2.6.2 + micromatch: 3.1.10(supports-color@6.1.0) + neo-async: registry.npmjs.org/neo-async@2.6.2 node-dir: registry.npmjs.org/node-dir@0.1.17 recast: registry.npmjs.org/recast@0.20.5 temp: registry.npmjs.org/temp@0.8.4 @@ -31564,7 +30933,7 @@ packages: optional: true dependencies: abab: registry.npmjs.org/abab@2.0.6 - acorn: 8.8.2 + acorn: registry.npmjs.org/acorn@8.8.2 acorn-globals: registry.npmjs.org/acorn-globals@6.0.0 cssom: registry.npmjs.org/cssom@0.4.4 cssstyle: registry.npmjs.org/cssstyle@2.3.0 @@ -31608,7 +30977,7 @@ packages: optional: true dependencies: abab: registry.npmjs.org/abab@2.0.6 - acorn: 8.8.2 + acorn: registry.npmjs.org/acorn@8.8.2 acorn-globals: registry.npmjs.org/acorn-globals@7.0.1 cssom: registry.npmjs.org/cssom@0.5.0 cssstyle: registry.npmjs.org/cssstyle@2.3.0 @@ -31850,7 +31219,6 @@ packages: dependencies: array-includes: 3.1.6 object.assign: registry.npmjs.org/object.assign@4.1.4 - dev: false registry.npmjs.org/jsx-ast-utils@3.3.3: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz} @@ -32240,7 +31608,7 @@ packages: chalk: registry.npmjs.org/chalk@5.2.0 cli-truncate: registry.npmjs.org/cli-truncate@3.1.0 commander: registry.npmjs.org/commander@10.0.1 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) execa: registry.npmjs.org/execa@7.1.1 lilconfig: registry.npmjs.org/lilconfig@2.1.0 listr2: registry.npmjs.org/listr2@5.0.8 @@ -32732,7 +32100,7 @@ packages: engines: {node: '>=10'} requiresBuild: true dependencies: - escape-string-regexp: 4.0.0 + escape-string-regexp: registry.npmjs.org/escape-string-regexp@4.0.0 dev: false optional: true @@ -32999,7 +32367,7 @@ packages: name: metro-babel-register version: 0.72.3 dependencies: - '@babel/core': 7.21.8 + '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@babel/plugin-proposal-nullish-coalescing-operator': registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.8) '@babel/plugin-proposal-optional-chaining': registry.npmjs.org/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.8) '@babel/plugin-syntax-class-properties': registry.npmjs.org/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.8) @@ -33070,7 +32438,7 @@ packages: dependencies: abort-controller: registry.npmjs.org/abort-controller@3.0.0 anymatch: registry.npmjs.org/anymatch@3.1.3 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) fb-watchman: registry.npmjs.org/fb-watchman@2.0.2 graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 invariant: registry.npmjs.org/invariant@2.2.4 @@ -33097,7 +32465,7 @@ packages: hasBin: true dependencies: connect: registry.npmjs.org/connect@3.7.0 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) ws: registry.npmjs.org/ws@7.5.9 yargs: registry.npmjs.org/yargs@15.4.1 transitivePeerDependencies: @@ -33158,7 +32526,7 @@ packages: '@babel/plugin-transform-typescript': registry.npmjs.org/@babel/plugin-transform-typescript@7.21.3(@babel/core@7.21.8) '@babel/plugin-transform-unicode-regex': registry.npmjs.org/@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.8) '@babel/template': registry.npmjs.org/@babel/template@7.20.7 - react-refresh: 0.4.3 + react-refresh: registry.npmjs.org/react-refresh@0.4.3 transitivePeerDependencies: - supports-color @@ -33192,8 +32560,8 @@ packages: name: metro-runtime version: 0.72.3 dependencies: - '@babel/runtime': 7.21.5 - react-refresh: 0.4.3 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 + react-refresh: registry.npmjs.org/react-refresh@0.4.3 registry.npmjs.org/metro-source-map@0.72.3: resolution: {integrity: sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz} @@ -33271,7 +32639,7 @@ packages: hasBin: true dependencies: '@babel/code-frame': registry.npmjs.org/@babel/code-frame@7.21.4 - '@babel/core': 7.21.8 + '@babel/core': registry.npmjs.org/@babel/core@7.21.8 '@babel/generator': registry.npmjs.org/@babel/generator@7.21.5 '@babel/parser': registry.npmjs.org/@babel/parser@7.21.8 '@babel/template': registry.npmjs.org/@babel/template@7.20.7 @@ -33283,7 +32651,7 @@ packages: chalk: registry.npmjs.org/chalk@4.1.2 ci-info: registry.npmjs.org/ci-info@2.0.0 connect: registry.npmjs.org/connect@3.7.0 - debug: registry.npmjs.org/debug@2.6.9 + debug: registry.npmjs.org/debug@2.6.9(supports-color@6.1.0) denodeify: registry.npmjs.org/denodeify@1.2.1 error-stack-parser: registry.npmjs.org/error-stack-parser@2.1.4 fs-extra: registry.npmjs.org/fs-extra@1.0.0 @@ -33334,16 +32702,16 @@ packages: dependencies: arr-diff: registry.npmjs.org/arr-diff@4.0.0 array-unique: registry.npmjs.org/array-unique@0.3.2 - braces: registry.npmjs.org/braces@2.3.2 + braces: registry.npmjs.org/braces@2.3.2(supports-color@6.1.0) define-property: registry.npmjs.org/define-property@2.0.2 extend-shallow: registry.npmjs.org/extend-shallow@3.0.2 - extglob: registry.npmjs.org/extglob@2.0.4 + extglob: registry.npmjs.org/extglob@2.0.4(supports-color@6.1.0) fragment-cache: registry.npmjs.org/fragment-cache@0.2.1 kind-of: registry.npmjs.org/kind-of@6.0.3 - nanomatch: registry.npmjs.org/nanomatch@1.2.13 + nanomatch: registry.npmjs.org/nanomatch@1.2.13(supports-color@6.1.0) object.pick: registry.npmjs.org/object.pick@1.3.0 regex-not: registry.npmjs.org/regex-not@1.0.2 - snapdragon: registry.npmjs.org/snapdragon@0.8.2 + snapdragon: registry.npmjs.org/snapdragon@0.8.2(supports-color@6.1.0) to-regex: registry.npmjs.org/to-regex@3.0.2 transitivePeerDependencies: - supports-color @@ -33616,7 +32984,7 @@ packages: version: 1.9.5 hasBin: true dependencies: - '@babel/core': 7.12.3 + '@babel/core': registry.npmjs.org/@babel/core@7.12.3 '@babel/generator': registry.npmjs.org/@babel/generator@7.17.10 '@babel/helper-module-imports': registry.npmjs.org/@babel/helper-module-imports@7.12.1 '@babel/helpers': registry.npmjs.org/@babel/helpers@7.12.1 @@ -33634,7 +33002,7 @@ packages: '@babel/plugin-transform-runtime': registry.npmjs.org/@babel/plugin-transform-runtime@7.12.1(@babel/core@7.12.3) '@babel/plugin-transform-typescript': registry.npmjs.org/@babel/plugin-transform-typescript@7.21.3(@babel/core@7.12.3) '@babel/preset-env': registry.npmjs.org/@babel/preset-env@7.12.1(@babel/core@7.12.3) - '@babel/runtime': 7.12.1 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.12.1 '@babel/template': registry.npmjs.org/@babel/template@7.16.7 '@babel/traverse': registry.npmjs.org/@babel/traverse@7.17.10 '@vue/reactivity': registry.npmjs.org/@vue/reactivity@3.0.5 @@ -33983,26 +33351,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - registry.npmjs.org/nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz} - name: nanomatch - version: 1.2.13 - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: registry.npmjs.org/arr-diff@4.0.0 - array-unique: registry.npmjs.org/array-unique@0.3.2 - define-property: registry.npmjs.org/define-property@2.0.2 - extend-shallow: registry.npmjs.org/extend-shallow@3.0.2 - fragment-cache: registry.npmjs.org/fragment-cache@0.2.1 - is-windows: registry.npmjs.org/is-windows@1.0.2 - kind-of: registry.npmjs.org/kind-of@6.0.3 - object.pick: registry.npmjs.org/object.pick@1.3.0 - regex-not: registry.npmjs.org/regex-not@1.0.2 - snapdragon: registry.npmjs.org/snapdragon@0.8.2 - to-regex: registry.npmjs.org/to-regex@3.0.2 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/nanomatch@1.2.13(supports-color@6.1.0): resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz} id: registry.npmjs.org/nanomatch/1.2.13 @@ -34023,7 +33371,6 @@ packages: to-regex: registry.npmjs.org/to-regex@3.0.2 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/native-request@1.1.0: resolution: {integrity: sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz} @@ -34033,6 +33380,12 @@ packages: dev: false optional: true + registry.npmjs.org/natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} + name: natural-compare-lite + version: 1.4.0 + dev: true + registry.npmjs.org/natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz} name: natural-compare @@ -34054,7 +33407,7 @@ packages: hasBin: true requiresBuild: true dependencies: - debug: registry.npmjs.org/debug@3.2.7 + debug: registry.npmjs.org/debug@3.2.7(supports-color@6.1.0) iconv-lite: registry.npmjs.org/iconv-lite@0.6.3 sax: registry.npmjs.org/sax@1.2.4 transitivePeerDependencies: @@ -34752,7 +34105,7 @@ packages: cli-cursor: registry.npmjs.org/cli-cursor@2.1.0 cli-spinners: registry.npmjs.org/cli-spinners@2.9.0 log-symbols: registry.npmjs.org/log-symbols@2.2.0 - strip-ansi: 5.2.0 + strip-ansi: registry.npmjs.org/strip-ansi@5.2.0 wcwidth: registry.npmjs.org/wcwidth@1.0.1 registry.npmjs.org/ora@5.4.1: @@ -35147,7 +34500,7 @@ packages: dependencies: '@babel/code-frame': 7.21.4 error-ex: registry.npmjs.org/error-ex@1.3.2 - json-parse-even-better-errors: 2.3.1 + json-parse-even-better-errors: registry.npmjs.org/json-parse-even-better-errors@2.3.1 lines-and-columns: registry.npmjs.org/lines-and-columns@1.2.4 registry.npmjs.org/parse-ms@3.0.0: @@ -35235,7 +34588,7 @@ packages: version: 1.1.2 dependencies: ansi-escapes: registry.npmjs.org/ansi-escapes@3.2.0 - cross-spawn: 6.0.5 + cross-spawn: registry.npmjs.org/cross-spawn@6.0.5 registry.npmjs.org/path-browserify@0.0.1: resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz} @@ -35761,26 +35114,6 @@ packages: yaml: registry.npmjs.org/yaml@1.10.2 dev: true - registry.npmjs.org/postcss-load-config@4.0.1(postcss@8.4.23): - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz} - id: registry.npmjs.org/postcss-load-config/4.0.1 - name: postcss-load-config - version: 4.0.1 - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: registry.npmjs.org/lilconfig@2.1.0 - postcss: registry.npmjs.org/postcss@8.4.23 - yaml: registry.npmjs.org/yaml@2.2.2 - dev: true - registry.npmjs.org/postcss-load-config@4.0.1(postcss@8.4.23)(ts-node@10.9.1): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz} id: registry.npmjs.org/postcss-load-config/4.0.1 @@ -36585,16 +35918,6 @@ packages: version: 2.0.3 engines: {node: '>=0.4.0'} - registry.npmjs.org/promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz} - name: promise-inflight - version: 1.0.1 - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - registry.npmjs.org/promise-inflight@1.0.1(bluebird@3.7.2): resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz} id: registry.npmjs.org/promise-inflight/1.0.1 @@ -36684,7 +36007,6 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz} name: proxy-from-env version: 1.1.0 - dev: true registry.npmjs.org/prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/prr/-/prr-1.0.1.tgz} @@ -36779,7 +36101,7 @@ packages: '@puppeteer/browsers': registry.npmjs.org/@puppeteer/browsers@0.5.0(typescript@5.3.3) chromium-bidi: registry.npmjs.org/chromium-bidi@0.4.7(devtools-protocol@0.0.1107588) cross-fetch: registry.npmjs.org/cross-fetch@3.1.5 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) devtools-protocol: registry.npmjs.org/devtools-protocol@0.0.1107588 extract-zip: registry.npmjs.org/extract-zip@2.0.1 https-proxy-agent: registry.npmjs.org/https-proxy-agent@5.0.1 @@ -36980,7 +36302,7 @@ packages: name: rc-config-loader version: 4.1.2 dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) js-yaml: registry.npmjs.org/js-yaml@4.1.0 json5: registry.npmjs.org/json5@2.2.3 require-from-string: registry.npmjs.org/require-from-string@2.0.2 @@ -37139,14 +36461,6 @@ packages: react-native: registry.npmjs.org/react-native@0.70.9(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.1.0) dev: false - registry.npmjs.org/react-native-device-info@10.3.1: - resolution: {integrity: sha512-KZU1luB7UrpRT8vYdWOoGJA0e2uAvF5J1Da90QMfLrtYBm1U0tbrlYO99qLCBRq7nQvBISlhqpqikzaS0vDYYw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.3.1.tgz} - name: react-native-device-info - version: 10.3.1 - peerDependencies: - react-native: '*' - dev: false - registry.npmjs.org/react-native-device-info@10.3.1(react-native@0.70.9): resolution: {integrity: sha512-KZU1luB7UrpRT8vYdWOoGJA0e2uAvF5J1Da90QMfLrtYBm1U0tbrlYO99qLCBRq7nQvBISlhqpqikzaS0vDYYw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-10.3.1.tgz} id: registry.npmjs.org/react-native-device-info/10.3.1 @@ -37259,8 +36573,9 @@ packages: react-native: registry.npmjs.org/react-native@0.70.9(@babel/core@7.21.8)(@babel/preset-env@7.21.5)(react@18.1.0) dev: false - registry.npmjs.org/react-native-root-siblings@4.1.1: + registry.npmjs.org/react-native-root-siblings@4.1.1(react@18.1.0): resolution: {integrity: sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz} + id: registry.npmjs.org/react-native-root-siblings/4.1.1 name: react-native-root-siblings version: 4.1.1 peerDependencies: @@ -37268,9 +36583,10 @@ packages: peerDependenciesMeta: react: optional: true - dev: false + dependencies: + react: registry.npmjs.org/react@18.1.0 - registry.npmjs.org/react-native-root-siblings@4.1.1(react@18.1.0): + registry.npmjs.org/react-native-root-siblings@4.1.1(react@18.2.0): resolution: {integrity: sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz} id: registry.npmjs.org/react-native-root-siblings/4.1.1 name: react-native-root-siblings @@ -37281,7 +36597,8 @@ packages: react: optional: true dependencies: - react: registry.npmjs.org/react@18.1.0 + react: registry.npmjs.org/react@18.2.0 + dev: false registry.npmjs.org/react-native-root-toast@3.4.1(react-native@0.70.9)(react@18.1.0): resolution: {integrity: sha512-rZFoaVZWZiPCcwP9n5a+1KtVM22JNp6pkodluCoRIb5oE2ip8mhpdvlZUIWoM5nxfmL4TBThWDp7se6j4X7lPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-native-root-toast/-/react-native-root-toast-3.4.1.tgz} @@ -37422,7 +36739,7 @@ packages: react-devtools-core: registry.npmjs.org/react-devtools-core@4.24.0 react-native-codegen: registry.npmjs.org/react-native-codegen@0.70.6(@babel/preset-env@7.21.5) react-native-gradle-plugin: registry.npmjs.org/react-native-gradle-plugin@0.70.3 - react-refresh: 0.4.3 + react-refresh: registry.npmjs.org/react-refresh@0.4.3 react-shallow-renderer: registry.npmjs.org/react-shallow-renderer@16.15.0(react@18.1.0) regenerator-runtime: registry.npmjs.org/regenerator-runtime@0.13.11 scheduler: registry.npmjs.org/scheduler@0.22.0 @@ -37458,6 +36775,12 @@ packages: version: 0.11.0 engines: {node: '>=0.10.0'} + registry.npmjs.org/react-refresh@0.4.3: + resolution: {integrity: sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz} + name: react-refresh + version: 0.4.3 + engines: {node: '>=0.10.0'} + registry.npmjs.org/react-shallow-renderer@16.15.0(react@18.1.0): resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz} id: registry.npmjs.org/react-shallow-renderer/16.15.0 @@ -37541,7 +36864,7 @@ packages: version: 2.1.2 dependencies: glob: registry.npmjs.org/glob@7.2.3 - json-parse-even-better-errors: 2.3.1 + json-parse-even-better-errors: registry.npmjs.org/json-parse-even-better-errors@2.3.1 normalize-package-data: registry.npmjs.org/normalize-package-data@2.5.0 npm-normalize-package-bin: registry.npmjs.org/npm-normalize-package-bin@1.0.1 dev: false @@ -37668,19 +36991,6 @@ packages: once: registry.npmjs.org/once@1.4.0 dev: false - registry.npmjs.org/readdirp@2.2.1: - resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz} - name: readdirp - version: 2.2.1 - engines: {node: '>=0.10'} - dependencies: - graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 - micromatch: 3.1.10 - readable-stream: registry.npmjs.org/readable-stream@2.3.8 - transitivePeerDependencies: - - supports-color - optional: true - registry.npmjs.org/readdirp@2.2.1(supports-color@6.1.0): resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz} id: registry.npmjs.org/readdirp/2.2.1 @@ -37693,7 +37003,6 @@ packages: readable-stream: registry.npmjs.org/readable-stream@2.3.8 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz} @@ -37795,7 +37104,7 @@ packages: name: regenerator-transform version: 0.15.1 dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 registry.npmjs.org/regex-not@1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz} @@ -38441,7 +37750,7 @@ packages: - ts-node dev: true - registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5): + registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@2.79.1)(typescript@4.9.5): resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} id: registry.npmjs.org/rollup-plugin-ts/3.2.0 name: rollup-plugin-ts @@ -38474,6 +37783,9 @@ packages: optional: true dependencies: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 + '@babel/plugin-transform-runtime': registry.npmjs.org/@babel/plugin-transform-runtime@7.21.4(@babel/core@7.21.8) + '@babel/preset-env': registry.npmjs.org/@babel/preset-env@7.21.5(@babel/core@7.21.8) + '@babel/preset-typescript': registry.npmjs.org/@babel/preset-typescript@7.21.5(@babel/core@7.21.8) '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@2.79.1) '@wessberg/stringutil': registry.npmjs.org/@wessberg/stringutil@1.0.19 @@ -38489,7 +37801,7 @@ packages: typescript: registry.npmjs.org/typescript@4.9.5 dev: true - registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5): + registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@4.9.5): resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} id: registry.npmjs.org/rollup-plugin-ts/3.2.0 name: rollup-plugin-ts @@ -38522,6 +37834,9 @@ packages: optional: true dependencies: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 + '@babel/plugin-transform-runtime': registry.npmjs.org/@babel/plugin-transform-runtime@7.21.4(@babel/core@7.21.8) + '@babel/preset-env': registry.npmjs.org/@babel/preset-env@7.21.5(@babel/core@7.21.8) + '@babel/preset-typescript': registry.npmjs.org/@babel/preset-typescript@7.21.5(@babel/core@7.21.8) '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@3.21.5) '@wessberg/stringutil': registry.npmjs.org/@wessberg/stringutil@1.0.19 @@ -38537,54 +37852,7 @@ packages: typescript: registry.npmjs.org/typescript@4.9.5 dev: true - registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(rollup@2.79.1)(typescript@4.9.5): - resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} - id: registry.npmjs.org/rollup-plugin-ts/3.2.0 - name: rollup-plugin-ts - version: 3.2.0 - engines: {node: '>=14.9.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - peerDependencies: - '@babel/core': '>=6.x || >=7.x' - '@babel/plugin-transform-runtime': '>=6.x || >=7.x' - '@babel/preset-env': '>=6.x || >=7.x' - '@babel/preset-typescript': '>=6.x || >=7.x' - '@babel/runtime': '>=6.x || >=7.x' - '@swc/core': '>=1.x' - '@swc/helpers': '>=0.2' - rollup: '>=1.x || >=2.x' - typescript: '>=3.2.x || >= 4.x' - peerDependenciesMeta: - '@babel/core': - optional: true - '@babel/plugin-transform-runtime': - optional: true - '@babel/preset-env': - optional: true - '@babel/preset-typescript': - optional: true - '@babel/runtime': - optional: true - '@swc/core': - optional: true - '@swc/helpers': - optional: true - dependencies: - '@babel/core': registry.npmjs.org/@babel/core@7.21.8 - '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@2.79.1) - '@wessberg/stringutil': registry.npmjs.org/@wessberg/stringutil@1.0.19 - ansi-colors: registry.npmjs.org/ansi-colors@4.1.3 - browserslist: registry.npmjs.org/browserslist@4.21.5 - browserslist-generator: registry.npmjs.org/browserslist-generator@2.0.3 - compatfactory: registry.npmjs.org/compatfactory@2.0.9(typescript@4.9.5) - crosspath: registry.npmjs.org/crosspath@2.0.0 - magic-string: registry.npmjs.org/magic-string@0.27.0 - rollup: registry.npmjs.org/rollup@2.79.1 - ts-clone-node: registry.npmjs.org/ts-clone-node@2.0.4(typescript@4.9.5) - tslib: registry.npmjs.org/tslib@2.5.0 - typescript: registry.npmjs.org/typescript@4.9.5 - dev: true - - registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(rollup@3.21.5)(typescript@4.9.5): + registry.npmjs.org/rollup-plugin-ts@3.2.0(@babel/core@7.21.8)(@babel/plugin-transform-runtime@7.21.4)(@babel/preset-env@7.21.5)(@babel/preset-typescript@7.21.5)(@babel/runtime@7.21.5)(rollup@3.21.5)(typescript@5.3.3): resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} id: registry.npmjs.org/rollup-plugin-ts/3.2.0 name: rollup-plugin-ts @@ -38617,144 +37885,10 @@ packages: optional: true dependencies: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 - '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@3.21.5) - '@wessberg/stringutil': registry.npmjs.org/@wessberg/stringutil@1.0.19 - ansi-colors: registry.npmjs.org/ansi-colors@4.1.3 - browserslist: registry.npmjs.org/browserslist@4.21.5 - browserslist-generator: registry.npmjs.org/browserslist-generator@2.0.3 - compatfactory: registry.npmjs.org/compatfactory@2.0.9(typescript@4.9.5) - crosspath: registry.npmjs.org/crosspath@2.0.0 - magic-string: registry.npmjs.org/magic-string@0.27.0 - rollup: registry.npmjs.org/rollup@3.21.5 - ts-clone-node: registry.npmjs.org/ts-clone-node@2.0.4(typescript@4.9.5) - tslib: registry.npmjs.org/tslib@2.5.0 - typescript: registry.npmjs.org/typescript@4.9.5 - dev: true - - registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@2.79.1)(typescript@4.9.5): - resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} - id: registry.npmjs.org/rollup-plugin-ts/3.2.0 - name: rollup-plugin-ts - version: 3.2.0 - engines: {node: '>=14.9.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - peerDependencies: - '@babel/core': '>=6.x || >=7.x' - '@babel/plugin-transform-runtime': '>=6.x || >=7.x' - '@babel/preset-env': '>=6.x || >=7.x' - '@babel/preset-typescript': '>=6.x || >=7.x' - '@babel/runtime': '>=6.x || >=7.x' - '@swc/core': '>=1.x' - '@swc/helpers': '>=0.2' - rollup: '>=1.x || >=2.x' - typescript: '>=3.2.x || >= 4.x' - peerDependenciesMeta: - '@babel/core': - optional: true - '@babel/plugin-transform-runtime': - optional: true - '@babel/preset-env': - optional: true - '@babel/preset-typescript': - optional: true - '@babel/runtime': - optional: true - '@swc/core': - optional: true - '@swc/helpers': - optional: true - dependencies: - '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@2.79.1) - '@wessberg/stringutil': registry.npmjs.org/@wessberg/stringutil@1.0.19 - ansi-colors: registry.npmjs.org/ansi-colors@4.1.3 - browserslist: registry.npmjs.org/browserslist@4.21.5 - browserslist-generator: registry.npmjs.org/browserslist-generator@2.0.3 - compatfactory: registry.npmjs.org/compatfactory@2.0.9(typescript@4.9.5) - crosspath: registry.npmjs.org/crosspath@2.0.0 - magic-string: registry.npmjs.org/magic-string@0.27.0 - rollup: registry.npmjs.org/rollup@2.79.1 - ts-clone-node: registry.npmjs.org/ts-clone-node@2.0.4(typescript@4.9.5) - tslib: registry.npmjs.org/tslib@2.5.0 - typescript: registry.npmjs.org/typescript@4.9.5 - dev: true - - registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@4.9.5): - resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} - id: registry.npmjs.org/rollup-plugin-ts/3.2.0 - name: rollup-plugin-ts - version: 3.2.0 - engines: {node: '>=14.9.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - peerDependencies: - '@babel/core': '>=6.x || >=7.x' - '@babel/plugin-transform-runtime': '>=6.x || >=7.x' - '@babel/preset-env': '>=6.x || >=7.x' - '@babel/preset-typescript': '>=6.x || >=7.x' - '@babel/runtime': '>=6.x || >=7.x' - '@swc/core': '>=1.x' - '@swc/helpers': '>=0.2' - rollup: '>=1.x || >=2.x' - typescript: '>=3.2.x || >= 4.x' - peerDependenciesMeta: - '@babel/core': - optional: true - '@babel/plugin-transform-runtime': - optional: true - '@babel/preset-env': - optional: true - '@babel/preset-typescript': - optional: true - '@babel/runtime': - optional: true - '@swc/core': - optional: true - '@swc/helpers': - optional: true - dependencies: - '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@3.21.5) - '@wessberg/stringutil': registry.npmjs.org/@wessberg/stringutil@1.0.19 - ansi-colors: registry.npmjs.org/ansi-colors@4.1.3 - browserslist: registry.npmjs.org/browserslist@4.21.5 - browserslist-generator: registry.npmjs.org/browserslist-generator@2.0.3 - compatfactory: registry.npmjs.org/compatfactory@2.0.9(typescript@4.9.5) - crosspath: registry.npmjs.org/crosspath@2.0.0 - magic-string: registry.npmjs.org/magic-string@0.27.0 - rollup: registry.npmjs.org/rollup@3.21.5 - ts-clone-node: registry.npmjs.org/ts-clone-node@2.0.4(typescript@4.9.5) - tslib: registry.npmjs.org/tslib@2.5.0 - typescript: registry.npmjs.org/typescript@4.9.5 - dev: true - - registry.npmjs.org/rollup-plugin-ts@3.2.0(rollup@3.21.5)(typescript@5.3.3): - resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/rollup-plugin-ts/-/rollup-plugin-ts-3.2.0.tgz} - id: registry.npmjs.org/rollup-plugin-ts/3.2.0 - name: rollup-plugin-ts - version: 3.2.0 - engines: {node: '>=14.9.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - peerDependencies: - '@babel/core': '>=6.x || >=7.x' - '@babel/plugin-transform-runtime': '>=6.x || >=7.x' - '@babel/preset-env': '>=6.x || >=7.x' - '@babel/preset-typescript': '>=6.x || >=7.x' - '@babel/runtime': '>=6.x || >=7.x' - '@swc/core': '>=1.x' - '@swc/helpers': '>=0.2' - rollup: '>=1.x || >=2.x' - typescript: '>=3.2.x || >= 4.x' - peerDependenciesMeta: - '@babel/core': - optional: true - '@babel/plugin-transform-runtime': - optional: true - '@babel/preset-env': - optional: true - '@babel/preset-typescript': - optional: true - '@babel/runtime': - optional: true - '@swc/core': - optional: true - '@swc/helpers': - optional: true - dependencies: + '@babel/plugin-transform-runtime': registry.npmjs.org/@babel/plugin-transform-runtime@7.21.4(@babel/core@7.21.8) + '@babel/preset-env': registry.npmjs.org/@babel/preset-env@7.21.5(@babel/core@7.21.8) + '@babel/preset-typescript': registry.npmjs.org/@babel/preset-typescript@7.21.5(@babel/core@7.21.8) + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@rollup/pluginutils': registry.npmjs.org/@rollup/pluginutils@5.0.2(rollup@3.21.5) '@wessberg/stringutil': registry.npmjs.org/@wessberg/stringutil@1.0.19 ansi-colors: registry.npmjs.org/ansi-colors@4.1.3 @@ -38924,12 +38058,12 @@ packages: hasBin: true dependencies: '@cnakazawa/watch': registry.npmjs.org/@cnakazawa/watch@1.0.4 - anymatch: registry.npmjs.org/anymatch@2.0.0 + anymatch: registry.npmjs.org/anymatch@2.0.0(supports-color@6.1.0) capture-exit: registry.npmjs.org/capture-exit@2.0.0 exec-sh: registry.npmjs.org/exec-sh@0.3.6 execa: registry.npmjs.org/execa@1.0.0 fb-watchman: registry.npmjs.org/fb-watchman@2.0.2 - micromatch: 3.1.10 + micromatch: 3.1.10(supports-color@6.1.0) minimist: 1.2.8 walker: registry.npmjs.org/walker@1.0.8 transitivePeerDependencies: @@ -39245,28 +38379,6 @@ packages: dependencies: lru-cache: registry.npmjs.org/lru-cache@6.0.0 - registry.npmjs.org/send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/send/-/send-0.18.0.tgz} - name: send - version: 0.18.0 - engines: {node: '>= 0.8.0'} - dependencies: - debug: registry.npmjs.org/debug@2.6.9 - depd: registry.npmjs.org/depd@2.0.0 - destroy: registry.npmjs.org/destroy@1.2.0 - encodeurl: registry.npmjs.org/encodeurl@1.0.2 - escape-html: registry.npmjs.org/escape-html@1.0.3 - etag: registry.npmjs.org/etag@1.8.1 - fresh: registry.npmjs.org/fresh@0.5.2 - http-errors: registry.npmjs.org/http-errors@2.0.0 - mime: registry.npmjs.org/mime@1.6.0 - ms: 2.1.3 - on-finished: registry.npmjs.org/on-finished@2.4.1 - range-parser: registry.npmjs.org/range-parser@1.2.1 - statuses: registry.npmjs.org/statuses@2.0.1 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/send@0.18.0(supports-color@6.1.0): resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/send/-/send-0.18.0.tgz} id: registry.npmjs.org/send/0.18.0 @@ -39289,7 +38401,6 @@ packages: statuses: registry.npmjs.org/statuses@2.0.1 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz} @@ -39345,22 +38456,6 @@ packages: dependencies: randombytes: registry.npmjs.org/randombytes@2.1.0 - registry.npmjs.org/serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz} - name: serve-index - version: 1.9.1 - engines: {node: '>= 0.8.0'} - dependencies: - accepts: registry.npmjs.org/accepts@1.3.8 - batch: registry.npmjs.org/batch@0.6.1 - debug: registry.npmjs.org/debug@2.6.9 - escape-html: registry.npmjs.org/escape-html@1.0.3 - http-errors: registry.npmjs.org/http-errors@1.6.3 - mime-types: 2.1.35 - parseurl: registry.npmjs.org/parseurl@1.3.3 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/serve-index@1.9.1(supports-color@6.1.0): resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz} id: registry.npmjs.org/serve-index/1.9.1 @@ -39377,20 +38472,6 @@ packages: parseurl: registry.npmjs.org/parseurl@1.3.3 transitivePeerDependencies: - supports-color - dev: false - - registry.npmjs.org/serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz} - name: serve-static - version: 1.15.0 - engines: {node: '>= 0.8.0'} - dependencies: - encodeurl: registry.npmjs.org/encodeurl@1.0.2 - escape-html: registry.npmjs.org/escape-html@1.0.3 - parseurl: registry.npmjs.org/parseurl@1.3.3 - send: registry.npmjs.org/send@0.18.0 - transitivePeerDependencies: - - supports-color registry.npmjs.org/serve-static@1.15.0(supports-color@6.1.0): resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz} @@ -39405,7 +38486,6 @@ packages: send: registry.npmjs.org/send@0.18.0(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz} @@ -39681,23 +38761,6 @@ packages: dependencies: kind-of: registry.npmjs.org/kind-of@3.2.2 - registry.npmjs.org/snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz} - name: snapdragon - version: 0.8.2 - engines: {node: '>=0.10.0'} - dependencies: - base: registry.npmjs.org/base@0.11.2 - debug: registry.npmjs.org/debug@2.6.9 - define-property: registry.npmjs.org/define-property@0.2.5 - extend-shallow: registry.npmjs.org/extend-shallow@2.0.1 - map-cache: registry.npmjs.org/map-cache@0.2.2 - source-map: registry.npmjs.org/source-map@0.5.7 - source-map-resolve: registry.npmjs.org/source-map-resolve@0.5.3 - use: registry.npmjs.org/use@3.1.1 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/snapdragon@0.8.2(supports-color@6.1.0): resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz} id: registry.npmjs.org/snapdragon/0.8.2 @@ -39715,7 +38778,6 @@ packages: use: registry.npmjs.org/use@3.1.1 transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/socket.io-adapter@1.1.2: resolution: {integrity: sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz} @@ -39947,20 +39009,6 @@ packages: name: spdx-license-ids version: 3.0.13 - registry.npmjs.org/spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz} - name: spdy-transport - version: 3.0.0 - dependencies: - debug: registry.npmjs.org/debug@4.3.4 - detect-node: registry.npmjs.org/detect-node@2.1.0 - hpack.js: registry.npmjs.org/hpack.js@2.1.6 - obuf: registry.npmjs.org/obuf@1.1.2 - readable-stream: registry.npmjs.org/readable-stream@3.6.2 - wbuf: registry.npmjs.org/wbuf@1.7.3 - transitivePeerDependencies: - - supports-color - registry.npmjs.org/spdy-transport@3.0.0(supports-color@6.1.0): resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz} id: registry.npmjs.org/spdy-transport/3.0.0 @@ -39975,21 +39023,6 @@ packages: wbuf: registry.npmjs.org/wbuf@1.7.3 transitivePeerDependencies: - supports-color - dev: false - - registry.npmjs.org/spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz} - name: spdy - version: 4.0.2 - engines: {node: '>=6.0.0'} - dependencies: - debug: registry.npmjs.org/debug@4.3.4 - handle-thing: registry.npmjs.org/handle-thing@2.0.1 - http-deceiver: registry.npmjs.org/http-deceiver@1.2.7 - select-hose: registry.npmjs.org/select-hose@2.0.0 - spdy-transport: registry.npmjs.org/spdy-transport@3.0.0 - transitivePeerDependencies: - - supports-color registry.npmjs.org/spdy@4.0.2(supports-color@6.1.0): resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz} @@ -40005,7 +39038,6 @@ packages: spdy-transport: registry.npmjs.org/spdy-transport@3.0.0(supports-color@6.1.0) transitivePeerDependencies: - supports-color - dev: false registry.npmjs.org/split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz} @@ -40276,7 +39308,7 @@ packages: dependencies: eastasianwidth: registry.npmjs.org/eastasianwidth@0.2.0 emoji-regex: registry.npmjs.org/emoji-regex@9.2.2 - strip-ansi: 7.0.1 + strip-ansi: registry.npmjs.org/strip-ansi@7.0.1 dev: true registry.npmjs.org/string.fromcodepoint@0.2.1: @@ -40403,7 +39435,6 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: registry.npmjs.org/ansi-regex@6.0.1 - dev: true registry.npmjs.org/strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz} @@ -40642,7 +39673,7 @@ packages: colord: registry.npmjs.org/colord@2.9.3 cosmiconfig: registry.npmjs.org/cosmiconfig@7.1.0 css-functions-list: registry.npmjs.org/css-functions-list@3.1.0 - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) fast-glob: 3.3.1 fastest-levenshtein: registry.npmjs.org/fastest-levenshtein@1.0.16 file-entry-cache: registry.npmjs.org/file-entry-cache@6.0.1 @@ -40763,7 +39794,7 @@ packages: version: 3.0.1 engines: {node: '>= 8.0'} dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) transitivePeerDependencies: - supports-color dev: false @@ -40802,7 +39833,6 @@ packages: engines: {node: '>=6'} dependencies: has-flag: registry.npmjs.org/has-flag@3.0.0 - dev: false registry.npmjs.org/supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} @@ -40917,11 +39947,11 @@ packages: version: 6.8.1 engines: {node: '>=10.0.0'} dependencies: - ajv: 8.12.0 + ajv: registry.npmjs.org/ajv@8.12.0 lodash.truncate: registry.npmjs.org/lodash.truncate@4.4.2 slice-ansi: registry.npmjs.org/slice-ansi@4.0.0 string-width: registry.npmjs.org/string-width@4.2.3 - strip-ansi: 6.0.1 + strip-ansi: registry.npmjs.org/strip-ansi@6.0.1 registry.npmjs.org/tapable@1.1.3: resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz} @@ -41176,7 +40206,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - acorn: 8.8.2 + acorn: registry.npmjs.org/acorn@8.8.2 commander: registry.npmjs.org/commander@2.20.3 source-map: registry.npmjs.org/source-map@0.6.1 source-map-support: registry.npmjs.org/source-map-support@0.5.21 @@ -41598,45 +40628,7 @@ packages: bs-logger: registry.npmjs.org/bs-logger@0.2.6 esbuild: registry.npmjs.org/esbuild@0.19.7 fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify@2.1.0 - jest: registry.npmjs.org/jest@29.5.0 - jest-util: registry.npmjs.org/jest-util@29.5.0 - json5: registry.npmjs.org/json5@2.2.3 - lodash.memoize: registry.npmjs.org/lodash.memoize@4.1.2 - make-error: registry.npmjs.org/make-error@1.3.6 - semver: registry.npmjs.org/semver@7.5.0 - typescript: registry.npmjs.org/typescript@4.9.5 - yargs-parser: registry.npmjs.org/yargs-parser@21.1.1 - dev: true - - registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(babel-jest@29.5.0)(jest@29.5.0)(typescript@4.9.5): - resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz} - id: registry.npmjs.org/ts-jest/29.1.0 - name: ts-jest - version: 29.1.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': registry.npmjs.org/@babel/core@7.21.8 - babel-jest: registry.npmjs.org/babel-jest@29.5.0(@babel/core@7.21.8) - bs-logger: registry.npmjs.org/bs-logger@0.2.6 - fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify@2.1.0 - jest: registry.npmjs.org/jest@29.5.0 + jest: registry.npmjs.org/jest@29.5.0(@types/node@14.18.45)(ts-node@10.9.1) jest-util: registry.npmjs.org/jest-util@29.5.0 json5: registry.npmjs.org/json5@2.2.3 lodash.memoize: registry.npmjs.org/lodash.memoize@4.1.2 @@ -41722,43 +40714,6 @@ packages: yargs-parser: registry.npmjs.org/yargs-parser@21.1.1 dev: true - registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.5.0)(typescript@4.9.5): - resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz} - id: registry.npmjs.org/ts-jest/29.1.0 - name: ts-jest - version: 29.1.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': registry.npmjs.org/@babel/core@7.21.8 - bs-logger: registry.npmjs.org/bs-logger@0.2.6 - fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify@2.1.0 - jest: registry.npmjs.org/jest@29.5.0 - jest-util: registry.npmjs.org/jest-util@29.5.0 - json5: registry.npmjs.org/json5@2.2.3 - lodash.memoize: registry.npmjs.org/lodash.memoize@4.1.2 - make-error: registry.npmjs.org/make-error@1.3.6 - semver: registry.npmjs.org/semver@7.5.0 - typescript: registry.npmjs.org/typescript@4.9.5 - yargs-parser: registry.npmjs.org/yargs-parser@21.1.1 - dev: true - registry.npmjs.org/ts-jest@29.1.0(@babel/core@7.21.8)(jest@29.7.0)(typescript@4.9.5): resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz} id: registry.npmjs.org/ts-jest/29.1.0 @@ -41786,43 +40741,7 @@ packages: '@babel/core': registry.npmjs.org/@babel/core@7.21.8 bs-logger: registry.npmjs.org/bs-logger@0.2.6 fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify@2.1.0 - jest: registry.npmjs.org/jest@29.7.0 - jest-util: registry.npmjs.org/jest-util@29.5.0 - json5: registry.npmjs.org/json5@2.2.3 - lodash.memoize: registry.npmjs.org/lodash.memoize@4.1.2 - make-error: registry.npmjs.org/make-error@1.3.6 - semver: registry.npmjs.org/semver@7.5.0 - typescript: registry.npmjs.org/typescript@4.9.5 - yargs-parser: registry.npmjs.org/yargs-parser@21.1.1 - dev: true - - registry.npmjs.org/ts-jest@29.1.0(jest@29.5.0)(typescript@4.9.5): - resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz} - id: registry.npmjs.org/ts-jest/29.1.0 - name: ts-jest - version: 29.1.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - bs-logger: registry.npmjs.org/bs-logger@0.2.6 - fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify@2.1.0 - jest: registry.npmjs.org/jest@29.5.0 + jest: registry.npmjs.org/jest@29.7.0(@types/node@14.18.45) jest-util: registry.npmjs.org/jest-util@29.5.0 json5: registry.npmjs.org/json5@2.2.3 lodash.memoize: registry.npmjs.org/lodash.memoize@4.1.2 @@ -41832,43 +40751,41 @@ packages: yargs-parser: registry.npmjs.org/yargs-parser@21.1.1 dev: true - registry.npmjs.org/ts-jest@29.1.0(jest@29.7.0)(typescript@4.9.5): - resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.0.tgz} - id: registry.npmjs.org/ts-jest/29.1.0 - name: ts-jest - version: 29.1.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + registry.npmjs.org/ts-node@10.9.1(@types/node@14.18.45)(typescript@4.9.5): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz} + id: registry.npmjs.org/ts-node/10.9.1 + name: ts-node + version: 10.9.1 hasBin: true peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: + '@swc/core': optional: true - esbuild: + '@swc/wasm': optional: true dependencies: - bs-logger: registry.npmjs.org/bs-logger@0.2.6 - fast-json-stable-stringify: registry.npmjs.org/fast-json-stable-stringify@2.1.0 - jest: registry.npmjs.org/jest@29.7.0 - jest-util: registry.npmjs.org/jest-util@29.5.0 - json5: registry.npmjs.org/json5@2.2.3 - lodash.memoize: registry.npmjs.org/lodash.memoize@4.1.2 + '@cspotcode/source-map-support': registry.npmjs.org/@cspotcode/source-map-support@0.8.1 + '@tsconfig/node10': registry.npmjs.org/@tsconfig/node10@1.0.9 + '@tsconfig/node12': registry.npmjs.org/@tsconfig/node12@1.0.11 + '@tsconfig/node14': registry.npmjs.org/@tsconfig/node14@1.0.3 + '@tsconfig/node16': registry.npmjs.org/@tsconfig/node16@1.0.3 + '@types/node': registry.npmjs.org/@types/node@14.18.45 + acorn: registry.npmjs.org/acorn@8.8.2 + acorn-walk: registry.npmjs.org/acorn-walk@8.2.0 + arg: registry.npmjs.org/arg@4.1.3 + create-require: registry.npmjs.org/create-require@1.1.1 + diff: registry.npmjs.org/diff@4.0.2 make-error: registry.npmjs.org/make-error@1.3.6 - semver: registry.npmjs.org/semver@7.5.0 typescript: registry.npmjs.org/typescript@4.9.5 - yargs-parser: registry.npmjs.org/yargs-parser@21.1.1 + v8-compile-cache-lib: registry.npmjs.org/v8-compile-cache-lib@3.0.1 + yn: registry.npmjs.org/yn@3.1.1 dev: true - registry.npmjs.org/ts-node@10.9.1(@types/node@14.18.45)(typescript@4.9.5): + registry.npmjs.org/ts-node@10.9.1(@types/node@14.18.45)(typescript@5.3.3): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz} id: registry.npmjs.org/ts-node/10.9.1 name: ts-node @@ -41897,12 +40814,12 @@ packages: create-require: registry.npmjs.org/create-require@1.1.1 diff: registry.npmjs.org/diff@4.0.2 make-error: registry.npmjs.org/make-error@1.3.6 - typescript: registry.npmjs.org/typescript@4.9.5 + typescript: registry.npmjs.org/typescript@5.3.3 v8-compile-cache-lib: registry.npmjs.org/v8-compile-cache-lib@3.0.1 yn: registry.npmjs.org/yn@3.1.1 dev: true - registry.npmjs.org/ts-node@10.9.1(@types/node@14.18.45)(typescript@5.3.3): + registry.npmjs.org/ts-node@10.9.1(@types/node@18.19.3)(typescript@4.9.5): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz} id: registry.npmjs.org/ts-node/10.9.1 name: ts-node @@ -41924,14 +40841,14 @@ packages: '@tsconfig/node12': registry.npmjs.org/@tsconfig/node12@1.0.11 '@tsconfig/node14': registry.npmjs.org/@tsconfig/node14@1.0.3 '@tsconfig/node16': registry.npmjs.org/@tsconfig/node16@1.0.3 - '@types/node': registry.npmjs.org/@types/node@14.18.45 + '@types/node': registry.npmjs.org/@types/node@18.19.3 acorn: registry.npmjs.org/acorn@8.8.2 acorn-walk: registry.npmjs.org/acorn-walk@8.2.0 arg: registry.npmjs.org/arg@4.1.3 create-require: registry.npmjs.org/create-require@1.1.1 diff: registry.npmjs.org/diff@4.0.2 make-error: registry.npmjs.org/make-error@1.3.6 - typescript: registry.npmjs.org/typescript@5.3.3 + typescript: registry.npmjs.org/typescript@4.9.5 v8-compile-cache-lib: registry.npmjs.org/v8-compile-cache-lib@3.0.1 yn: registry.npmjs.org/yn@3.1.1 dev: true @@ -42314,6 +41231,11 @@ packages: buffer: registry.npmjs.org/buffer@5.7.1 through: registry.npmjs.org/through@2.3.8 + registry.npmjs.org/undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz} + name: undici-types + version: 5.26.5 + registry.npmjs.org/unescape-js@1.1.4: resolution: {integrity: sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.4.tgz} name: unescape-js @@ -42917,7 +41839,7 @@ packages: peerDependencies: eslint: '>=6.0.0' dependencies: - debug: registry.npmjs.org/debug@4.3.4 + debug: registry.npmjs.org/debug@4.3.4(supports-color@6.1.0) eslint: registry.npmjs.org/eslint@8.40.0 eslint-scope: registry.npmjs.org/eslint-scope@7.2.0 eslint-visitor-keys: registry.npmjs.org/eslint-visitor-keys@3.4.1 @@ -42945,7 +41867,7 @@ packages: name: vue-hot-reload-api version: 2.3.4 - registry.npmjs.org/vue-loader@15.10.1(css-loader@5.2.7)(lodash@4.17.21)(webpack@4.46.0): + registry.npmjs.org/vue-loader@15.10.1(css-loader@5.2.7)(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0)(vue-template-compiler@2.7.14)(webpack@4.46.0): resolution: {integrity: sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz} id: registry.npmjs.org/vue-loader/15.10.1 name: vue-loader @@ -42964,12 +41886,13 @@ packages: vue-template-compiler: optional: true dependencies: - '@vue/component-compiler-utils': registry.npmjs.org/@vue/component-compiler-utils@3.3.0(lodash@4.17.21) + '@vue/component-compiler-utils': registry.npmjs.org/@vue/component-compiler-utils@3.3.0(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0) css-loader: registry.npmjs.org/css-loader@5.2.7(webpack@4.46.0) hash-sum: registry.npmjs.org/hash-sum@1.0.2 loader-utils: registry.npmjs.org/loader-utils@1.4.2 vue-hot-reload-api: registry.npmjs.org/vue-hot-reload-api@2.3.4 vue-style-loader: registry.npmjs.org/vue-style-loader@4.1.3 + vue-template-compiler: registry.npmjs.org/vue-template-compiler@2.7.14 webpack: registry.npmjs.org/webpack@4.46.0 transitivePeerDependencies: - arc-templates @@ -43027,7 +41950,7 @@ packages: - whiskers dev: true - registry.npmjs.org/vue-loader@15.10.1(css-loader@6.7.3)(lodash@4.17.21)(webpack@5.78.0): + registry.npmjs.org/vue-loader@15.10.1(css-loader@6.7.3)(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0)(vue-template-compiler@2.7.14)(webpack@5.78.0): resolution: {integrity: sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz} id: registry.npmjs.org/vue-loader/15.10.1 name: vue-loader @@ -43046,12 +41969,13 @@ packages: vue-template-compiler: optional: true dependencies: - '@vue/component-compiler-utils': registry.npmjs.org/@vue/component-compiler-utils@3.3.0(lodash@4.17.21) + '@vue/component-compiler-utils': registry.npmjs.org/@vue/component-compiler-utils@3.3.0(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0) css-loader: registry.npmjs.org/css-loader@6.7.3(webpack@5.78.0) hash-sum: registry.npmjs.org/hash-sum@1.0.2 loader-utils: registry.npmjs.org/loader-utils@1.4.2 vue-hot-reload-api: registry.npmjs.org/vue-hot-reload-api@2.3.4 vue-style-loader: registry.npmjs.org/vue-style-loader@4.1.3 + vue-template-compiler: registry.npmjs.org/vue-template-compiler@2.7.14 webpack: registry.npmjs.org/webpack@5.78.0(esbuild@0.19.7) transitivePeerDependencies: - arc-templates @@ -43146,7 +42070,6 @@ packages: dependencies: de-indent: registry.npmjs.org/de-indent@1.0.2 he: registry.npmjs.org/he@1.2.0 - dev: true registry.npmjs.org/vue-template-es2015-compiler@1.9.1: resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz} @@ -43218,7 +42141,7 @@ packages: version: 2.0.1 requiresBuild: true dependencies: - chokidar: registry.npmjs.org/chokidar@2.1.8 + chokidar: registry.npmjs.org/chokidar@2.1.8(supports-color@6.1.0) transitivePeerDependencies: - supports-color optional: true @@ -43413,10 +42336,10 @@ packages: bonjour-service: registry.npmjs.org/bonjour-service@1.1.1 chokidar: registry.npmjs.org/chokidar@3.5.3 colorette: registry.npmjs.org/colorette@2.0.20 - compression: registry.npmjs.org/compression@1.7.4 + compression: registry.npmjs.org/compression@1.7.4(supports-color@6.1.0) connect-history-api-fallback: registry.npmjs.org/connect-history-api-fallback@2.0.0 default-gateway: registry.npmjs.org/default-gateway@6.0.3 - express: registry.npmjs.org/express@4.18.2 + express: registry.npmjs.org/express@4.18.2(supports-color@6.1.0) graceful-fs: registry.npmjs.org/graceful-fs@4.2.11 html-entities: registry.npmjs.org/html-entities@2.3.3 http-proxy-middleware: registry.npmjs.org/http-proxy-middleware@2.0.6(@types/express@4.17.17) @@ -43426,9 +42349,9 @@ packages: rimraf: registry.npmjs.org/rimraf@3.0.2 schema-utils: registry.npmjs.org/schema-utils@4.0.1 selfsigned: registry.npmjs.org/selfsigned@2.1.1 - serve-index: registry.npmjs.org/serve-index@1.9.1 + serve-index: registry.npmjs.org/serve-index@1.9.1(supports-color@6.1.0) sockjs: registry.npmjs.org/sockjs@0.3.24 - spdy: registry.npmjs.org/spdy@4.0.2 + spdy: registry.npmjs.org/spdy@4.0.2(supports-color@6.1.0) webpack: registry.npmjs.org/webpack@5.78.0 webpack-dev-middleware: registry.npmjs.org/webpack-dev-middleware@5.3.3(webpack@5.78.0) ws: registry.npmjs.org/ws@8.13.0 @@ -43888,7 +42811,7 @@ packages: dependencies: ansi-styles: registry.npmjs.org/ansi-styles@6.2.1 string-width: 5.1.2 - strip-ansi: 7.0.1 + strip-ansi: registry.npmjs.org/strip-ansi@7.0.1 registry.npmjs.org/wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.yarnpkg.com/, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz} @@ -43912,7 +42835,7 @@ packages: version: 4.0.2 engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: - imurmurhash: 0.1.4 + imurmurhash: registry.npmjs.org/imurmurhash@0.1.4 signal-exit: registry.npmjs.org/signal-exit@3.0.7 registry.npmjs.org/write-file-atomic@5.0.1: @@ -44322,7 +43245,7 @@ packages: version: 0.32.11 engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': registry.npmjs.org/@babel/runtime@7.21.5 '@types/lodash': registry.npmjs.org/@types/lodash@4.14.194 lodash: registry.npmjs.org/lodash@4.17.21 lodash-es: 4.17.21 @@ -44330,7 +43253,3 @@ packages: property-expr: registry.npmjs.org/property-expr@2.0.5 toposort: registry.npmjs.org/toposort@2.0.2 dev: false - -settings: - autoInstallPeers: false - excludeLinksFromLockfile: false From b6ddde8828ffa787ce42b37b982326741638fe37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E9=98=B3?= Date: Wed, 3 Apr 2024 18:17:28 +0800 Subject: [PATCH 05/19] =?UTF-8?q?=E5=90=8C=E6=AD=A5harmony=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E5=BC=80=E5=8F=91=E5=88=86=E6=94=AF=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=9A=E4=BB=A3=E7=A0=81format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/taro-cli-convertor/src/index.ts | 71 +++------ .../taro-cli-convertor/src/util/global.ts | 10 +- packages/taro-cli-convertor/src/util/index.ts | 145 ++++++++---------- 3 files changed, 91 insertions(+), 135 deletions(-) diff --git a/packages/taro-cli-convertor/src/index.ts b/packages/taro-cli-convertor/src/index.ts index c1e1497bb878..5cc70bbbcf78 100644 --- a/packages/taro-cli-convertor/src/index.ts +++ b/packages/taro-cli-convertor/src/index.ts @@ -867,7 +867,7 @@ export default class Convertor { if (needInsertImportTaro && !hasTaroImport(bodyNode)) { // 根据模块类型(commonjs/es6) 确定导入taro模块的类型 if (isCommonjsModule(ast.program.body as any)) { - (astPath.node as t.Program).body.unshift( + ;(astPath.node as t.Program).body.unshift( t.variableDeclaration('const', [ t.variableDeclarator( t.identifier('Taro'), @@ -876,7 +876,7 @@ export default class Convertor { ]) ) } else { - (astPath.node as t.Program).body.unshift( + ;(astPath.node as t.Program).body.unshift( t.importDeclaration([t.importDefaultSpecifier(t.identifier('Taro'))], t.stringLiteral('@tarojs/taro')) ) } @@ -901,9 +901,9 @@ export default class Convertor { copyFileToTaro(sourceImagePath, outputImagePath) printLog(processTypeEnum.COPY, '图片', self.generateShowPath(outputImagePath)) } else if (!t.isBinaryExpression(astPath.parent) || astPath.parent.operator !== '+') { - const position = { + const position = { row: astPath.node.loc?.start?.line || 0, - col: astPath.node.loc?.start?.column || 0 + col: astPath.node.loc?.start?.column || 0, } createErrorCodeMsg( 'ImageNotFound', @@ -1223,8 +1223,8 @@ export default class Convertor { } 文件解析异常 ${getLineBreak()}${err} ${getLineBreak()}` ) throw new IReportError( - `project.config${this.fileTypes.CONFIG} 解析失败,请检查!`, - 'ProjectConfigParsingError', + `project.config${this.fileTypes.CONFIG} 解析失败,请检查!`, + 'ProjectConfigParsingError', projectConfigFilePath, '' ) @@ -1272,12 +1272,7 @@ export default class Convertor { } } catch (err) { this.entryJSON = {} - createErrorCodeMsg( - 'AppConfigReadError', - `app${this.fileTypes.CONFIG} 读取失败,请检查!`, - '', - this.entryJSONPath - ) + createErrorCodeMsg('AppConfigReadError', `app${this.fileTypes.CONFIG} 读取失败,请检查!`, '', this.entryJSONPath) console.log(chalk.red(`app${this.fileTypes.CONFIG} 读取失败,请检查!`)) updateLogFileContent( `ERROR [taro-cli-convertor] getApp - app${ @@ -1655,21 +1650,16 @@ ${code} return } - const pageJSPath = pagePath + this.fileTypes.SCRIPT // .js文件 + const pageJSPath = pagePath + this.fileTypes.SCRIPT // .js文件 const pageDistJSPath = this.getDistFilePath(pageJSPath) - const pageConfigPath = pagePath + this.fileTypes.CONFIG // .json文件 - const pageStylePath = pagePath + this.fileTypes.STYLE // .wxss文件 - const pageTemplPath = pagePath + this.fileTypes.TEMPL // .wxml文件 + const pageConfigPath = pagePath + this.fileTypes.CONFIG // .json文件 + const pageStylePath = pagePath + this.fileTypes.STYLE // .wxss文件 + const pageTemplPath = pagePath + this.fileTypes.TEMPL // .wxml文件 try { if (!fs.existsSync(pageJSPath)) { updateLogFileContent(`ERROR [taro-cli-convertor] traversePages - 页面 ${page} 没有 JS 文件 ${getLineBreak()}`) - throw new IReportError( - `页面 ${page} 没有 JS 文件!`, - 'MissingJSFileError', - pagePath, - '' - ) + throw new IReportError(`页面 ${page} 没有 JS 文件!`, 'MissingJSFileError', pagePath, '') } const param: ITaroizeOptions = {} printLog(processTypeEnum.CONVERT, '页面文件', this.generateShowPath(pageJSPath)) @@ -1818,12 +1808,7 @@ ${code} updateLogFileContent( `ERROR [taro-cli-convertor] traverseComponents - 自定义组件 ${component} 没有 JS 文件 ${getLineBreak()}` ) - throw new IReportError( - `自定义组件 ${component} 没有 JS 文件!`, - 'MissingJSFileError', - componentJSPath, - '' - ) + throw new IReportError(`自定义组件 ${component} 没有 JS 文件!`, 'MissingJSFileError', componentJSPath, '') } printLog(processTypeEnum.CONVERT, '组件文件', this.generateShowPath(componentJSPath)) let componentConfig @@ -2049,12 +2034,7 @@ ${code} try { const pluginConfigJson = JSON.parse(String(fs.readFileSync(pluginConfigPath))) if (!pluginConfigJson) { - createErrorCodeMsg( - 'emptyPluginConfig', - '插件配置信息为空,请检查!', - '', - pluginConfigPath - ) + createErrorCodeMsg('emptyPluginConfig', '插件配置信息为空,请检查!', '', pluginConfigPath) console.log('插件配置信息为空,请检查!') updateLogFileContent(`WARN [taro-cli-convertor] parsePluginConfig - 插件配置信息为空 ${getLineBreak()}`) return @@ -2087,12 +2067,7 @@ ${code} pluginInfo.entryFilePath = path.join(pluginInfo.pluginRoot, entryFilePath) } } catch (err) { - createErrorCodeMsg( - 'PluginJsonParsingError', - '解析plugin.json失败,请检查!', - '', - pluginConfigPath - ) + createErrorCodeMsg('PluginJsonParsingError', '解析plugin.json失败,请检查!', '', pluginConfigPath) updateLogFileContent( `ERROR [taro-cli-convertor] parsePluginConfig - plugin.json 解析异常 ${getLineBreak()}${err} ${getLineBreak()}` ) @@ -2138,7 +2113,7 @@ ${code} pkgObj.dependencies['@tarojs/with-weapp'] = `^${version}` fs.writeJSONSync(path.join(this.convertRoot, 'package.json'), pkgObj, { spaces: 2, - EOL: '\n' + EOL: '\n', }) printLog(processTypeEnum.GENERATE, '文件', this.generateShowPath(path.join(this.convertRoot, 'package.json'))) printLog(processTypeEnum.GENERATE, '文件', this.generateShowPath(path.join(this.convertRoot, 'config/index.js'))) @@ -2173,18 +2148,20 @@ ${code} projectName: parseProjectName(this.root), projectPath: this.root, pagesNum: this.pages.size, - filesNum: computeProjectFileNums(this.root), - errMsgList: errMsgList + filesNum: computeProjectFileNums(this.root), + errMsgList: errMsgList, } try { generateReportFile(iconFilePath, reportDir, 'favicon.ico') generateReportFile(reportIndexFilePath, reportDir, 'index.html') - generateReportFile(reportBundleFilePath,path.join(reportDir, '/static/js'), 'bundle.js', reportData) + generateReportFile(reportBundleFilePath, path.join(reportDir, '/static/js'), 'bundle.js', reportData) generateReportFile(reportStyleFilePath, path.join(reportDir, '/static/css'), 'main.css') - generateReportFile(fontBlodFilePath, path.join(reportDir,'/static/media'), 'HarmonyOS_Sans_SC_Bold.ttf') - generateReportFile(fontMediumFilePath,path.join( reportDir,'/static/media'), 'HarmonyOS_Sans_SC_Medium.ttf') - console.log(`转换报告已生成,请在浏览器中打开 ${path.join(this.convertRoot, 'report', 'report.html')} 查看转换报告`) + generateReportFile(fontBlodFilePath, path.join(reportDir, '/static/media'), 'HarmonyOS_Sans_SC_Bold.ttf') + generateReportFile(fontMediumFilePath, path.join(reportDir, '/static/media'), 'HarmonyOS_Sans_SC_Medium.ttf') + console.log( + `转换报告已生成,请在浏览器中打开 ${path.join(this.convertRoot, 'report', 'report.html')} 查看转换报告` + ) } catch (error) { console.log(`报告生成失败 ${error.message}`) } diff --git a/packages/taro-cli-convertor/src/util/global.ts b/packages/taro-cli-convertor/src/util/global.ts index 5509f9f3ef2a..af6a022ffe3d 100644 --- a/packages/taro-cli-convertor/src/util/global.ts +++ b/packages/taro-cli-convertor/src/util/global.ts @@ -2,10 +2,10 @@ import { ErrCodeMsg } from './index' // taro-cli-convertor 模块的全局变量 interface Globals { - logFilePath: string // 日志文件路径 - errCodeMsgs: ErrCodeMsg[] // 错误代码信息 (转换报告涉及的字段) - currentParseFile: string // 当前解析的文件 (转换报告涉及的字段) - logCount: number + logFilePath: string // 日志文件路径 + errCodeMsgs: ErrCodeMsg[] // 错误代码信息 (转换报告涉及的字段) + currentParseFile: string // 当前解析的文件 (转换报告涉及的字段) + logCount: number logFileContent: string } @@ -14,5 +14,5 @@ export const globals: Globals = { errCodeMsgs: [], currentParseFile: '', logCount: 0, - logFileContent: '' + logFileContent: '', } diff --git a/packages/taro-cli-convertor/src/util/index.ts b/packages/taro-cli-convertor/src/util/index.ts index 9c924cba34e1..d6212c13abad 100644 --- a/packages/taro-cli-convertor/src/util/index.ts +++ b/packages/taro-cli-convertor/src/util/index.ts @@ -30,45 +30,49 @@ const prettierJSConfig: prettier.Options = { /* 转换报告信息 */ export interface IReportData { projectName: string // 工程名称 - projectPath: string // 工程路径 - pagesNum: number // 页面数 - filesNum: number // 文件数 - errMsgList: Array // 异常信息列表 + projectPath: string // 工程路径 + pagesNum: number // 页面数 + filesNum: number // 文件数 + errMsgList: Array // 异常信息列表 } /* 单个错误信息 */ export interface ErrMsgs { - filePath: string // 文件路径 - msgType: string // 异常类型 + filePath: string // 文件路径 + msgType: string // 异常类型 mesDescribe: string // 信息描述 - errCodeList: Array // 异常代码信息列表 + errCodeList: Array // 异常代码信息列表 } /* 单个错误的代码信息 */ export interface ErrCodeMsg { - msgType: string // 错误类型 - describe: string // 信息描述 - codeBeforeConvert?: { // 转换之前的异常代码信息 - filePath: string // 异常文件路径 - code: string // 异常代码 - location?: Location // 异常代码位置 + msgType: string // 错误类型 + describe: string // 信息描述 + codeBeforeConvert?: { + // 转换之前的异常代码信息 + filePath: string // 异常文件路径 + code: string // 异常代码 + location?: Location // 异常代码位置 } - codeAfterConvert?: { // 转换之后的异常代码信息 - filePath: string // 异常文件路径 - code: string // 异常代码 - location?: Location // 异常代码位置 + codeAfterConvert?: { + // 转换之后的异常代码信息 + filePath: string // 异常文件路径 + code: string // 异常代码 + location?: Location // 异常代码位置 } } /* 代码位置 */ export interface Location { - start?: { // 开始位置 - col: number // 列 - row: number // 行 + start?: { + // 开始位置 + col: number // 列 + row: number // 行 } - end?: { // 结束位置 - col: number // 列 - row: number // 行 + end?: { + // 结束位置 + col: number // 列 + row: number // 行 } } @@ -117,7 +121,7 @@ function getRelativePath (_rootPath: string, sourceFilePath: string, oriPath: st if (alias) { // 预防用户定义了模块路径的映射规则但没有使用的情况 absolutePath = revertScriptPath(path.join(sourceFilePath, '..', oriPath), SCRIPT_EXT) - + Object.keys(alias).forEach((key) => { const newKey = key.replace(/\/\*$/, '') @@ -458,12 +462,7 @@ export function getWxssImports (content: string) { * @param { string } targeFileName 转换后文件名 * @param { IReportData } reportErroMsg 报错信息 */ -export function generateReportFile ( - sourceFilePath, - targeFileDir, - targeFileName, - reportErroMsg?: IReportData -) { +export function generateReportFile (sourceFilePath, targeFileDir, targeFileName, reportErroMsg?: IReportData) { try { if (!fs.existsSync(targeFileDir)) { fs.mkdirSync(targeFileDir, { recursive: true }) @@ -499,12 +498,7 @@ export function generateDir (dirPath) { fs.mkdirSync(dirPath) } } catch (error) { - createErrorCodeMsg( - 'CreateFolderError', - `创建文件夹${dirPath}失败`, - '', - dirPath - ) + createErrorCodeMsg('CreateFolderError', `创建文件夹${dirPath}失败`, '', dirPath) console.log(`创建文件夹${dirPath}失败`) } } @@ -552,12 +546,7 @@ export function printToLogFile () { globals.logFileContent = '' } catch (error) { console.error(`写入日志文件异常 ${error.message}}`) - throw new IReportError( - '写日志文件异常', - 'WriteLogException', - globals.logFilePath, - '' - ) + throw new IReportError('写日志文件异常', 'WriteLogException', globals.logFilePath, '') } } @@ -567,12 +556,12 @@ export function printToLogFile () { * @param pluginComponentPath 小程序中引用的插件路径 * @param pluginInfo 插件信息 * @returns - */ + */ export function replacePluginComponentUrl (pluginComponentPath, pluginInfo) { // 捕获跳转路径中的插件名和页面名,替换为子包路径 const regexPluginUrl = /plugin:\/\/([^/]+)\/([^/?]+)/ const matchPluginUrl = pluginComponentPath.match(regexPluginUrl) - if (!matchPluginUrl) { + if (!matchPluginUrl) { createErrorCodeMsg( 'ImportSrcPathFormatError', `引用插件路径格式异常,插件路径:${pluginComponentPath}`, @@ -583,7 +572,7 @@ export function replacePluginComponentUrl (pluginComponentPath, pluginInfo) { } // 捕获页面名 - const componentName = matchPluginUrl[2] + const componentName = matchPluginUrl[2] // 通过引用的插件组件名在注册的插件组件信息中查找组件路径 let componentPath = null @@ -609,7 +598,7 @@ export function replacePluginComponentUrl (pluginComponentPath, pluginInfo) { /** * 将部分 ast 节点转为代码片段 * @param ast astNode 节点 - * @returns + * @returns */ export function astToCode (ast) { if (!ast) return '' @@ -627,7 +616,7 @@ export function astToCode (ast) { /** * 解析项目名称 - * @param projectPath 项目路径 + * @param projectPath 项目路径 * @returns { string } 项目名称 */ export function parseProjectName (projectPath: string): string { @@ -642,8 +631,8 @@ export function parseProjectName (projectPath: string): string { /** * 统计工程目录下文件数量 - * @param projectPath - * @returns + * @param projectPath + * @returns */ export function computeProjectFileNums (projectPath: string): number { let count = 0 @@ -667,24 +656,20 @@ export function computeProjectFileNums (projectPath: string): number { /** * 通过错误代码信息的 msgType、filePath 在 errMsgs 中寻找对应 errMsg - * @param msgType - * @param filePath - * @param errMsgList + * @param msgType + * @param filePath + * @param errMsgList */ -function findErrMsg ( - msgType: string, - filePath: string, - errMsgList: ErrMsgs[] -): undefined | ErrMsgs { +function findErrMsg (msgType: string, filePath: string, errMsgList: ErrMsgs[]): undefined | ErrMsgs { return errMsgList.find((errMsg) => { - return (errMsg.msgType === msgType) && (errMsg.filePath === filePath) + return errMsg.msgType === msgType && errMsg.filePath === filePath }) } /** * 判断 errCodeMsg 是否包含 code 代码 * @param errCodeMsg 错误信息代码 - * @returns + * @returns */ function hasCode (errCodeMsg: ErrCodeMsg): boolean { return !!errCodeMsg.codeBeforeConvert?.code @@ -696,7 +681,7 @@ function hasCode (errCodeMsg: ErrCodeMsg): boolean { */ export function paseGlobalErrMsgs (errCodeMsgs: ErrCodeMsg[]): ErrMsgs[] { const errMsgList: ErrMsgs[] = [] - errCodeMsgs.forEach((errCodeMsg: ErrCodeMsg ) => { + errCodeMsgs.forEach((errCodeMsg: ErrCodeMsg) => { const msgType = errCodeMsg.msgType const filePath = errCodeMsg.codeBeforeConvert?.filePath if (msgType && filePath) { @@ -706,11 +691,11 @@ export function paseGlobalErrMsgs (errCodeMsgs: ErrCodeMsg[]): ErrMsgs[] { errMsgs.errCodeList.push(errCodeMsg) } } else { - errMsgList.push({ - filePath, - msgType, - errCodeList: [errCodeMsg], - mesDescribe: hasCode(errCodeMsg) ? '' : errCodeMsg.describe + errMsgList.push({ + filePath, + msgType, + errCodeList: [errCodeMsg], + mesDescribe: hasCode(errCodeMsg) ? '' : errCodeMsg.describe, }) } } @@ -725,14 +710,10 @@ export function paseGlobalErrMsgs (errCodeMsgs: ErrCodeMsg[]): ErrMsgs[] { * @param { string } jsPath js文件路径 * @param { string } wxmlPath wxml文件路径 */ -export function parseError ( - errMsg: IReportError, - jsPath: string, - wxmlPath: string -) { +export function parseError (errMsg: IReportError, jsPath: string, wxmlPath: string) { const filePathMap = new Map([ ['WXML_FILE', wxmlPath], - ['JS_FILE', jsPath] + ['JS_FILE', jsPath], ]) if (errMsg.msgType) { const currentFilePath = filePathMap.get(errMsg.filePath) || errMsg.filePath @@ -742,8 +723,8 @@ export function parseError ( codeBeforeConvert: { filePath: currentFilePath, code: errMsg.code, - location: { start: errMsg.location } - } + location: { start: errMsg.location }, + }, } globals.errCodeMsgs.push(errCodeMsg) } @@ -755,13 +736,13 @@ export function parseError ( * @param describe 错误描述 * @param code 错误代码 * @param filePath 错误信息所在文件路径 - * @returns + * @returns */ export function createErrorCodeMsg ( - msgType: string, - describe: string, - code: string, - filePath: string, + msgType: string, + describe: string, + code: string, + filePath: string, position?: { col: number, row: number } | undefined ) { const errorCodeMst = { @@ -770,8 +751,8 @@ export function createErrorCodeMsg ( codeBeforeConvert: { filePath, code, - location: { start: position || { col: 0, row: 0 } } - } + location: { start: position || { col: 0, row: 0 } }, + }, } globals.errCodeMsgs.push(errorCodeMst) } @@ -780,7 +761,6 @@ export function createErrorCodeMsg ( * 拓展原生 Error 属性 */ export class IReportError extends Error { - // 错误信息类型 msgType: string @@ -795,7 +775,7 @@ export class IReportError extends Error { constructor ( message: string, - msgType?: string, + msgType?: string, filePath?: string | 'JS_FILE' | 'WXML_FILE', code?: string, location?: { col: number, row: number } | undefined @@ -805,7 +785,6 @@ export class IReportError extends Error { this.filePath = filePath || '' this.code = code || '' this.location = location || { col: 0, row: 0 } - } } From 7ae77cbcbf5663601bf0b3f2d33965b6cc944daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E9=98=B3?= Date: Wed, 3 Apr 2024 18:37:07 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E5=90=8C=E6=AD=A5harmony=E6=9C=80?= =?UTF-8?q?=E6=96=B0=E5=BC=80=E5=8F=91=E5=88=86=E6=94=AF=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=9A=E4=BB=A3=E7=A0=81format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/apis/NativeApi.ts | 558 +++++---- .../src/api/apis/ad/index.ts | 42 +- .../src/api/apis/ai/facial.ts | 6 +- .../src/api/apis/ai/index.ts | 6 +- .../src/api/apis/ai/inference.ts | 6 +- .../src/api/apis/ai/visual.ts | 6 +- .../src/api/apis/alipay/index.ts | 6 +- .../src/api/apis/base/crypto.ts | 4 +- .../src/api/apis/base/index.ts | 6 +- .../src/api/apis/base/performance.ts | 42 +- .../src/api/apis/base/system.ts | 11 +- .../src/api/apis/base/weapp/app-event.ts | 2 - .../src/api/apis/base/weapp/life-cycle.ts | 6 +- .../src/api/apis/canvas/CanvasContext.ts | 183 +-- .../api/apis/canvas/canvasToTempFilePath.ts | 14 +- .../api/apis/canvas/createCanvasContext.ts | 2 +- .../src/api/apis/cloud/index.ts | 6 +- .../src/api/apis/comments.ts | 1010 ++++++++--------- .../api/apis/data-analysis/getExptInfoSync.ts | 2 +- .../src/api/apis/data-analysis/index.ts | 4 +- .../api/apis/data-analysis/reportAnalytics.ts | 2 +- .../accelerometer/startAccelerometer.ts | 9 +- .../src/api/apis/device/accessibility.ts | 4 +- .../src/api/apis/device/battery.ts | 4 +- .../bluetooth-ble/closeBLEConnection.ts | 8 +- .../bluetooth-ble/createBLEConnection.ts | 9 +- .../getBLEDeviceCharacteristics.ts | 10 +- .../device/bluetooth-ble/getBLEDeviceRSSI.ts | 6 +- .../bluetooth-ble/getBLEDeviceServices.ts | 6 +- .../api/apis/device/bluetooth-ble/index.ts | 10 +- .../notifyBLECharacteristicValueChange.ts | 20 +- .../readBLECharacteristicValue.ts | 2 +- .../writeBLECharacteristicValue.ts | 2 +- .../api/apis/device/bluetooth-peripheral.ts | 8 +- .../src/api/apis/device/bluetooth/index.ts | 4 +- .../bluetooth/offBluetoothDeviceFound.ts | 1 - .../onBluetoothAdapterStateChange.ts | 1 - .../bluetooth/onBluetoothDeviceFound.ts | 1 - .../startBluetoothDevicesDiscovery.ts | 3 +- .../stopBluetoothDevicesDiscovery.ts | 1 - .../src/api/apis/device/calendar.ts | 4 +- .../src/api/apis/device/clipboard.ts | 4 +- .../apis/device/compass/onCompassChange.ts | 6 +- .../src/api/apis/device/contact/index.ts | 2 +- .../src/api/apis/device/crypto.ts | 4 +- .../src/api/apis/device/gyroscope/index.ts | 2 +- .../device/gyroscope/onGyroscopeChange.ts | 2 +- .../src/api/apis/device/iBeacon.ts | 16 +- .../apis/device/memory/offMemoryWarning.ts | 2 +- .../api/apis/device/memory/onMemoryWarning.ts | 4 +- .../src/api/apis/device/motion.ts | 8 +- .../src/api/apis/device/network.ts | 16 +- .../src/api/apis/device/nfc.ts | 34 +- .../src/api/apis/device/scan.ts | 8 +- .../apis/device/screen/onUserCaptureScreen.ts | 4 +- .../src/api/apis/device/sms.ts | 4 +- .../src/api/apis/device/wifi/index.ts | 6 +- .../src/api/apis/framework/index.ts | 5 +- .../api/apis/interface/NativeAContextApi.ts | 102 +- .../apis/interface/NativeFileSystemManager.ts | 106 +- .../src/api/apis/interface/NativeRequest.ts | 29 +- .../api/apis/interface/NativeUpdateManager.ts | 16 +- .../api/apis/interface/NativeUploadFile.ts | 16 +- .../src/api/apis/location/chooseLocation.ts | 23 +- .../src/api/apis/location/getFuzzyLocation.ts | 15 +- .../src/api/apis/location/getLocation.ts | 6 +- .../apis/location/onLocationChangeError.ts | 2 +- .../src/api/apis/location/openLocation.ts | 16 +- .../src/api/apis/media/EditorContext.ts | 32 +- .../src/api/apis/media/audio/AudioContext.ts | 12 +- .../api/apis/media/audio/InnerAudioContext.ts | 66 +- .../api/apis/media/background-audio/index.ts | 24 +- .../src/api/apis/media/camera.ts | 8 +- .../src/api/apis/media/image/chooseImage.ts | 15 +- .../src/api/apis/media/image/compressImage.ts | 2 +- .../src/api/apis/media/image/previewImage.ts | 16 +- .../src/api/apis/media/image/previewMedia.ts | 2 +- .../api/apis/media/live/LivePlayerContext.ts | 37 +- .../src/api/apis/media/map/MapContext.ts | 98 +- .../src/api/apis/media/media-recorder.ts | 6 +- .../src/api/apis/media/recorder.ts | 12 +- .../src/api/apis/media/video-decoder.ts | 6 +- .../src/api/apis/media/video-processing.ts | 8 +- .../src/api/apis/media/video/chooseMedia.ts | 15 +- .../src/api/apis/media/video/chooseVideo.ts | 17 +- .../src/api/apis/media/voip.ts | 32 +- .../src/api/apis/navigate/index.ts | 10 +- .../src/api/apis/network/download.ts | 51 +- .../src/api/apis/network/mdns.ts | 20 +- .../src/api/apis/network/request/index.ts | 4 +- .../src/api/apis/network/tcp.ts | 6 +- .../src/api/apis/network/udp.ts | 6 +- .../src/api/apis/network/upload.ts | 3 +- .../src/api/apis/network/websocket/index.ts | 18 +- .../src/api/apis/open-api/account.ts | 2 +- .../src/api/apis/open-api/address.ts | 4 +- .../src/api/apis/open-api/authorize.ts | 6 +- .../src/api/apis/open-api/card.ts | 6 +- .../src/api/apis/open-api/channels-live.ts | 18 +- .../src/api/apis/open-api/customer-service.ts | 4 +- .../src/api/apis/open-api/device-voip.ts | 5 +- .../src/api/apis/open-api/facial.ts | 6 +- .../src/api/apis/open-api/favorites.ts | 6 +- .../src/api/apis/open-api/group.ts | 2 +- .../src/api/apis/open-api/invoice.ts | 6 +- .../src/api/apis/open-api/license-plate.ts | 4 +- .../src/api/apis/open-api/login/index.ts | 6 +- .../src/api/apis/open-api/red-package.ts | 4 +- .../src/api/apis/open-api/settings/index.ts | 6 +- .../api/apis/open-api/subscribe-message.ts | 4 +- .../src/api/apis/open-api/user-info/index.ts | 4 +- .../src/api/apis/open-api/werun.ts | 4 +- .../src/api/apis/osChannelApi.ts | 220 ++-- .../src/api/apis/payment/index.ts | 6 +- .../src/api/apis/payment/requestPayment.ts | 2 +- .../src/api/apis/qq/index.ts | 2 +- .../src/api/apis/request.ts | 84 +- .../src/api/apis/share/index.ts | 82 +- .../src/api/apis/storage/background-fetch.ts | 4 +- .../src/api/apis/storage/index.ts | 56 +- .../apis/storage/setBackgroundFetchToken.ts | 6 +- .../src/api/apis/storage/util.ts | 8 +- .../src/api/apis/swan/index.ts | 2 +- .../src/api/apis/taro.ts | 28 +- .../src/api/apis/ui/animation/index.ts | 10 +- .../src/api/apis/ui/background.ts | 4 +- .../src/api/apis/ui/custom-component.ts | 4 +- .../src/api/apis/ui/fonts.ts | 8 +- .../src/api/apis/ui/interaction/index.ts | 46 +- .../src/api/apis/ui/menu.ts | 2 +- .../src/api/apis/ui/navigation-bar/index.ts | 4 +- .../src/api/apis/ui/pull-down-refresh.ts | 4 +- .../src/api/apis/ui/scroll/index.ts | 6 +- .../src/api/apis/ui/sticky.ts | 2 +- .../src/api/apis/ui/tab-bar.ts | 18 +- .../src/api/apis/ui/window.ts | 8 +- .../src/api/apis/utils/coordinateConvert.ts | 41 +- .../src/api/apis/utils/handler.ts | 6 +- .../src/api/apis/utils/helper.ts | 2 +- .../src/api/apis/utils/index.ts | 28 +- .../src/api/apis/utils/lodash.ts | 4 +- .../src/api/apis/worker/index.ts | 8 +- .../src/api/apis/wxml/index.ts | 14 +- .../src/api/apis/wxml/nodesRef.ts | 2 +- .../src/api/apis/wxml/selectorQuery.ts | 20 +- .../src/api/index.ts | 14 +- .../src/components/react/index.ts | 10 +- .../src/components/vue2/index.ts | 10 +- .../src/components/vue3/index.ts | 10 +- .../taro-platform-harmony-hybrid/src/index.ts | 2 +- .../src/program.ts | 42 +- .../src/resolve.ts | 2 +- .../src/runtime/apis/index.ts | 2 +- 153 files changed, 1975 insertions(+), 1976 deletions(-) diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts index 5c46bdfeb564..1f9d77010c89 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/NativeApi.ts @@ -1,790 +1,789 @@ import osChannelApi from './osChannelApi' import { RequestTask } from './request' - class NativeApi { // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getWindowInfo (): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getWindowInfo(): any { return '' } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getDeviceInfo (): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getDeviceInfo(): any { return '' } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getSystemInfoSync (): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getSystemInfoSync(): any { return '' } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getSystemSetting (): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getSystemSetting(): any { return '' } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAppBaseInfo (): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAppBaseInfo(): any { return '' } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAppAuthorizeSetting (): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAppAuthorizeSetting(): any { return '' } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - navigateToMiniProgram (options: any) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + navigateToMiniProgram(options: any) { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setNavigationBarColor (options: any) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setNavigationBarColor(options: any) { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getMenuButtonBoundingClientRect (): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getMenuButtonBoundingClientRect(): any { return '' } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - request (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + request(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - saveDataUrlToFile (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + saveDataUrlToFile(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - copyFileToSandboxCache (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + copyFileToSandboxCache(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - startAccelerometer (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + startAccelerometer(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - stopAccelerometer (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + stopAccelerometer(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onAccelerometerChange (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onAccelerometerChange(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offAccelerometerChange (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offAccelerometerChange(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - startCompass (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + startCompass(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - stopCompass (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + stopCompass(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onCompassChange (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onCompassChange(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offCompassChange (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offCompassChange(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - startGyroscope (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + startGyroscope(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - stopGyroscope (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + stopGyroscope(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onGyroscopeChange (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onGyroscopeChange(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - saveImageToPhotosAlbum (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + saveImageToPhotosAlbum(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - chooseMediaAssets (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + chooseMediaAssets(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getVideoInfo (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getVideoInfo(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getImageInfo (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getImageInfo(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - compressVideo (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + compressVideo(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getLocation (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getLocation(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - openDocument (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + openDocument(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - login (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + login(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setNavigationStyle (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setNavigationStyle(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getUserInfo (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getUserInfo(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - openSetting (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + openSetting(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - getSetting (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + getSetting(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setKeepScreenOn (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setKeepScreenOn(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onUserCaptureScreen (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onUserCaptureScreen(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offUserCaptureScreen (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offUserCaptureScreen(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onLocationChange (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onLocationChange(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offLocationChange (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offLocationChange(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setScreenBrightness (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setScreenBrightness(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getScreenBrightness (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getScreenBrightness(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onMemoryWarning (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onMemoryWarning(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offMemoryWarning (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offMemoryWarning(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - hideKeyboard (options?: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + hideKeyboard(options?: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - onKeyboardHeightChange (options?: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + onKeyboardHeightChange(options?: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offKeyboardHeightChange (options?: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offKeyboardHeightChange(options?: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - makePhoneCall (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + makePhoneCall(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getSavedFileList (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getSavedFileList(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - removeSavedFile (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + removeSavedFile(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getSavedFileInfo (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getSavedFileInfo(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - addPhoneContact (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + addPhoneContact(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - scanCode (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + scanCode(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - vibrateShort (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + vibrateShort(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - vibrateLong (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + vibrateLong(options: any): any { return options } // NativeUpdateManager // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - applyUpdate (): any {} + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + applyUpdate(): any {} // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - onCheckForUpdate (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + onCheckForUpdate(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - onUpdateFailed (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + onUpdateFailed(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - onUpdateReady (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + onUpdateReady(options: any): any { return options } // NativeAContextApi // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - createInnerAudioContext (): any { - } + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + createInnerAudioContext(): any {} // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - innerAudioStop (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + innerAudioStop(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - innerAudioPlay (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + innerAudioPlay(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false }) - innerAudioOnPlay (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false })) + innerAudioOnPlay(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false }) - innerAudioOnStop (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false })) + innerAudioOnStop(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false }) - innerAudioOnError (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false })) + innerAudioOnError(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false }) - innerAudioOnEnded (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: false })) + innerAudioOnEnded(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextVolume (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextVolume(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextVolume (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextVolume(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextStartTime (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextStartTime(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextStartTime (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextStartTime(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextPlaybackRate (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextPlaybackRate(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextPlaybackRate (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextPlaybackRate(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextPaused (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextPaused(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextPaused (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextPaused(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextObeyMuteSwitch (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextObeyMuteSwitch(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextObeyMuteSwitch (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextObeyMuteSwitch(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextLoop (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextLoop(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextLoop (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextLoop(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextDuration (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextDuration(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextDuration (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextDuration(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextCurrentTime (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextCurrentTime(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextCurrentTime (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextCurrentTime(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextBuffered (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextBuffered(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextBuffered (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextBuffered(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextAutoplay (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextAutoplay(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextAutoplay (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextAutoplay(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getAudioContextSrc (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getAudioContextSrc(option: any, _: number) { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setAudioContextSrc (option: any, _: number) { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setAudioContextSrc(option: any, _: number) { return option } // NativeUploadFile // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - uploadFile (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + uploadFile(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - downloadFile (options: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + downloadFile(options: any): any { return options } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - abort (option: any, _: number): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + abort(option: any, _: number): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offHeadersReceived (option: any, _: number): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offHeadersReceived(option: any, _: number): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offProgressUpdate (option: any, _: number): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offProgressUpdate(option: any, _: number): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onHeadersReceived (option: any, _: number): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onHeadersReceived(option: any, _: number): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onProgressUpdate (option: any, _: number): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onProgressUpdate(option: any, _: number): any { return option } // NativeFileSystemManager // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getFileManager (): any {} + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getFileManager(): any {} // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - access (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + access(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - saveFile (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + saveFile(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - getFileInfo (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + getFileInfo(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - readFile (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + readFile(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - readFileSync (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + readFileSync(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - openAppAuthorizeSetting (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + openAppAuthorizeSetting(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - requestSubscribeMessage (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + requestSubscribeMessage(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - closeBLEConnection (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + closeBLEConnection(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - createBLEConnection (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + createBLEConnection(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getBLEDeviceCharacteristics (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getBLEDeviceCharacteristics(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getBLEDeviceRSSI (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getBLEDeviceRSSI(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getBLEDeviceServices (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getBLEDeviceServices(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - notifyBLECharacteristicValueChange (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + notifyBLECharacteristicValueChange(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onBLECharacteristicValueChange (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onBLECharacteristicValueChange(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onBLEConnectionStateChange (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onBLEConnectionStateChange(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - readBLECharacteristicValue (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + readBLECharacteristicValue(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - setBLEMTU (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + setBLEMTU(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - writeBLECharacteristicValue (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + writeBLECharacteristicValue(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - closeBluetoothAdapter (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + closeBluetoothAdapter(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getBluetoothAdapterState (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getBluetoothAdapterState(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getBluetoothDevices (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getBluetoothDevices(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getConnectedBluetoothDevices (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getConnectedBluetoothDevices(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offBluetoothAdapterStateChange (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offBluetoothAdapterStateChange(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - offBluetoothDeviceFound (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + offBluetoothDeviceFound(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onBluetoothAdapterStateChange (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onBluetoothAdapterStateChange(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - onBluetoothDeviceFound (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + onBluetoothDeviceFound(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - openBluetoothAdapter (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + openBluetoothAdapter(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - startBluetoothDevicesDiscovery (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + startBluetoothDevicesDiscovery(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - stopBluetoothDevicesDiscovery (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + stopBluetoothDevicesDiscovery(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true }) - getExecStatus (option: any): any { // 获取缓存数据 + @(window.MethodChannel?.jsBridgeMode({ isAsync: false, autoRelease: true })) + getExecStatus(option: any): any { + // 获取缓存数据 return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false }) - setStorage (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: false })) + setStorage(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) - removeStorage (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true })) + removeStorage(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) - getStorage (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true })) + getStorage(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) - getStorageInfo (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true })) + getStorageInfo(option: any): any { return option } // @ts-ignore - @window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true }) - clearStorage (option: any): any { + @(window.MethodChannel?.jsBridgeMode({ isAsync: true, autoRelease: true })) + clearStorage(option: any): any { return option } } @@ -800,14 +799,14 @@ class CacheStorageProxy { private readonly nativeApi: NativeApi private readonly asyncToSyncProxy: any - constructor (nativeApi: NativeApi) { + constructor(nativeApi: NativeApi) { this.nativeApi = nativeApi this.cacheMap = new Map() this.asyncToSyncProxy = new Proxy(nativeApi, new AsyncToSyncProxy(this.nativeApi)) } // @ts-ignore - get (target: { [x: string]: any }, prop: string) { + get(target: { [x: string]: any }, prop: string) { if (prop === 'getStorageSync') { return (...args: any[]) => { const key = args[0].key @@ -825,7 +824,7 @@ class CacheStorageProxy { if (prop === 'setStorageSync') { return (...args: any[]) => { const { key, data } = args[0] - const status = this.asyncToSyncProxy.setStorageSync({ key,data }) + const status = this.asyncToSyncProxy.setStorageSync({ key, data }) if (status.done && status.errMsg === '') { this.cacheMap.set(key, status) } @@ -841,20 +840,13 @@ class CacheStorageProxy { class AsyncToSyncProxy { private readonly nativeApi: NativeApi private readonly STATUS: Status = { done: false, data: '', errorMsg: `search timeout` } - private methods = - [ - 'setStorageSync', - 'removeStorageSync', - 'getStorageSync', - 'getStorageInfoSync', - 'clearStorageSync' - ] - - constructor (nativeApi: NativeApi) { + private methods = ['setStorageSync', 'removeStorageSync', 'getStorageSync', 'getStorageInfoSync', 'clearStorageSync'] + + constructor(nativeApi: NativeApi) { this.nativeApi = nativeApi } - get (target: { [x: string]: any }, prop: string) { + get(target: { [x: string]: any }, prop: string) { if (this.methods.includes(prop)) { return (...args: any[]) => { const asyncFunc = prop.substring(0, prop.length - 'Sync'.length) @@ -864,7 +856,7 @@ class AsyncToSyncProxy { while (count < 20000) { count++ if (count % 2000 === 0) { - const status = this.nativeApi.getExecStatus({ method: prop, key: args[0].key } ) + const status = this.nativeApi.getExecStatus({ method: prop, key: args[0].key }) if (status.done || status.errorMsg) { return status } @@ -883,15 +875,15 @@ class HybridProxy { private readonly cacheProxy: any private readonly requestApi = 'request' - constructor (useAxios: boolean, useOsChannel: boolean, nativeApi: NativeApi) { + constructor(useAxios: boolean, useOsChannel: boolean, nativeApi: NativeApi) { this.useAxios = useAxios this.useOsChannel = useOsChannel this.cacheProxy = new Proxy(nativeApi, new CacheStorageProxy(nativeApi)) } - get (_target:any, prop:string) { + get(_target: any, prop: string) { return (...args: any) => { - if ( this.useAxios && prop === this.requestApi ) { + if (this.useAxios && prop === this.requestApi) { // @ts-ignore return new RequestTask(...args) } @@ -906,5 +898,3 @@ class HybridProxy { const nativeApi = new NativeApi() const native = new Proxy(nativeApi, new HybridProxy(false, false, nativeApi)) // 第一个false是默认走jsb,true是走纯js, 第二个false是不走osChannel export default native - - diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ad/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ad/index.ts index 8c10fae114b7..6be59ca132fe 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/ad/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ad/index.ts @@ -2,7 +2,7 @@ import Taro from '@tarojs/taro' /** * 创建激励视频广告组件 - * + * * @canNotUse createRewardedVideoAd */ export { createRewardedVideoAd } from '@tarojs/taro-h5' @@ -15,7 +15,7 @@ export { createRewardedVideoAd } from '@tarojs/taro-h5' /** * 创建插屏广告组件 - * + * * @canUse createInterstitialAd * @null_implementation */ @@ -25,44 +25,30 @@ export const createInterstitialAd = () => { /** * 插屏广告组件类 - * + * * @canUse InterstitialAd * @null_implementation */ class InterstitialAd implements Taro.InterstitialAd { - destroy (): void { + destroy(): void {} - } - - offClose (_callback: Taro.InterstitialAd.OnCloseCallback): void { - - } - - offError (_callback: Taro.InterstitialAd.OnErrorCallback): void { - - } - - offLoad (_callback: Taro.InterstitialAd.OnLoadCallback): void { + offClose(_callback: Taro.InterstitialAd.OnCloseCallback): void {} - } - - onClose (_callback: Taro.InterstitialAd.OnCloseCallback): void { - - } + offError(_callback: Taro.InterstitialAd.OnErrorCallback): void {} - onError (_callback: Taro.InterstitialAd.OnErrorCallback): void { + offLoad(_callback: Taro.InterstitialAd.OnLoadCallback): void {} - } + onClose(_callback: Taro.InterstitialAd.OnCloseCallback): void {} - onLoad (_callback: Taro.InterstitialAd.OnLoadCallback): void { + onError(_callback: Taro.InterstitialAd.OnErrorCallback): void {} - } + onLoad(_callback: Taro.InterstitialAd.OnLoadCallback): void {} - load (): Promise { + load(): Promise { return Promise.resolve() } - - show (): Promise { + + show(): Promise { return Promise.resolve() } -} \ No newline at end of file +} diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts index c20c834c7093..8af920d71d8c 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/facial.ts @@ -1,20 +1,20 @@ /** * 停止人脸识别 - * + * * @canNotUse stopFaceDetect */ export { stopFaceDetect } from '@tarojs/taro-h5' /** * 初始化人脸识别 - * + * * @canNotUse initFaceDetect */ export { initFaceDetect } from '@tarojs/taro-h5' /** * 人脸识别 - * + * * @canNotUse faceDetect */ export { faceDetect } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts index 1f7d7ab74e9e..afcfe0903dd5 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/index.ts @@ -1,20 +1,20 @@ /** * 获取通用AI推理引擎版本 - * + * * @canNotUse getInferenceEnvInfo */ export { getInferenceEnvInfo } from '@tarojs/taro-h5' /** * 创建 AI 推理 Session - * + * * @canNotUse createInferenceSession */ export { createInferenceSession } from '@tarojs/taro-h5' /** * InferenceSession类 - * + * * @canNotUse InferenceSession */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts index 7798cfe768e9..31b66e4f90cc 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/inference.ts @@ -1,13 +1,13 @@ /** * 获取通用AI推理引擎版本 - * + * * @canNotUse getInferenceEnvInfo */ export { getInferenceEnvInfo } from '@tarojs/taro-h5' /** * 创建 AI 推理 Session - * + * * @canNotUse createInferenceSession */ -export { createInferenceSession } from '@tarojs/taro-h5' \ No newline at end of file +export { createInferenceSession } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts index d21115072b8a..e750c7921778 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/ai/visual.ts @@ -1,13 +1,13 @@ /** * 判断支持版本 - * + * * @canNotUse isVKSupport */ export { isVKSupport } from '@tarojs/taro-h5' /** * 创建 vision kit 会话对象 - * + * * @canNotUse createVKSession */ export { createVKSession } from '@tarojs/taro-h5' @@ -54,4 +54,4 @@ export { createVKSession } from '@tarojs/taro-h5' /** * @canNotUse VKSession - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts index 0def59eb7178..e71a82c95957 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/alipay/index.ts @@ -1,13 +1,13 @@ /** * 获取支付宝会员的基础信息 - * + * * @canNotUse getOpenUserInfo */ export { getOpenUserInfo } from '@tarojs/taro-h5' /** * 此接口是用于发起支付的 API - * + * * @canNotUse tradePay */ -export { tradePay } from '@tarojs/taro-h5' \ No newline at end of file +export { tradePay } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts index 5ad8869292a3..4fdf200efe30 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/crypto.ts @@ -1,12 +1,12 @@ /** * 获取用户加密模块 - * + * * @canNotUse getUserCryptoManager */ export { getUserCryptoManager } from '@tarojs/taro-h5' /** * 用户加密模块类 - * + * * @canNotUse UserCryptoManager */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/index.ts index 9ddd2c25176f..3e2d73f03d6d 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/base/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/index.ts @@ -1,6 +1,6 @@ /** * 环境变量 - * + * * @canUse env * @__variable [FRAMEWORK, TARO_ENV, USER_DATA_PATH] */ @@ -14,10 +14,10 @@ export const env = { /** * 向调试面板中打印日志。console 是一个全局对象,可以直接访问。 - * + * * @canUse console * @__class [debug, error, group, groupEnd, info, log, warn] */ export * from './system' -export * from './weapp/life-cycle' \ No newline at end of file +export * from './weapp/life-cycle' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts index 51d44c88d3f3..0289c57763af 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/performance.ts @@ -2,35 +2,35 @@ import Taro from '@tarojs/taro' /** * 程序测速上报 - * + * * @canNotUse reportPerformance */ export { reportPerformance } from '@tarojs/taro-h5' /** * 预加载下个页面的 WebView - * + * * @canNotUse preloadWebview */ export { preloadWebview } from '@tarojs/taro-h5' /** * 预加载下个页面所需要的 Skyline 运行环境 - * + * * @canNotUse preloadSkylineView */ export { preloadSkylineView } from '@tarojs/taro-h5' /** * 为视图层预加载媒体资源文件 - * + * * @canNotUse preloadAssets */ export { preloadAssets } from '@tarojs/taro-h5' /** * 程序测速上报 - * + * * @canUse getPerformance * @null_implementation */ @@ -40,13 +40,13 @@ export const getPerformance: typeof Taro.getPerformance = () => { /** * 获取性能数据及创建性能监听器 - * + * * @canUse Performance * @null_implementation */ class Performance implements Taro.Performance { _res = { - /** 开始时间,不同指标的具体含义会有差异 */ + /** 开始时间,不同指标的具体含义会有差异 */ startTime: 0, /** 耗时 ms。仅对于表示阶段的指标有效。 */ duration: 0, @@ -72,9 +72,9 @@ class Performance implements Taro.Performance { viewLayerRenderEndTime: 0, } - createObserver (callback): Taro.PerformanceObserver { + createObserver(callback): Taro.PerformanceObserver { if (typeof callback === 'function') { - // do nothing + // do nothing } const result: Taro.PerformanceEntry = { /** 指标类型 */ @@ -84,9 +84,9 @@ class Performance implements Taro.Performance { ...this._res, } const disconnect = () => {} - const observe = (option: Taro.PerformanceObserver.observe.Option) => { + const observe = (option: Taro.PerformanceObserver.observe.Option) => { if (typeof option === 'object') { - // do nothing + // do nothing } } const performanceObserver: Taro.PerformanceObserver = { @@ -97,7 +97,7 @@ class Performance implements Taro.Performance { return performanceObserver } - getEntries (): Taro.PerformanceEntry[] { + getEntries(): Taro.PerformanceEntry[] { const result: Taro.PerformanceEntry = { /** 指标类型 */ entryType: 'navigation', @@ -108,7 +108,7 @@ class Performance implements Taro.Performance { return [result] } - getEntriesByName (name: string, entryType: string): Taro.PerformanceEntry[] { + getEntriesByName(name: string, entryType: string): Taro.PerformanceEntry[] { const result: Taro.PerformanceEntry = { /** 指标类型 */ entryType: entryType as keyof Taro.PerformanceEntry.EntryType, @@ -119,7 +119,7 @@ class Performance implements Taro.Performance { return [result] } - getEntriesByType (entryType: string): Taro.PerformanceEntry[] { + getEntriesByType(entryType: string): Taro.PerformanceEntry[] { const result: Taro.PerformanceEntry = { /** 指标类型 */ entryType: entryType as keyof Taro.PerformanceEntry.EntryType, @@ -130,27 +130,27 @@ class Performance implements Taro.Performance { return [result] } - setBufferSize (size: number): void { + setBufferSize(size: number): void { if (typeof size === 'number') { - // do nothing - } + // do nothing + } } } /** * EntryList 对象 - * + * * @canNotUse EntryList */ /** * 单条性能数据 - * + * * @canNotUse PerformanceEntry */ /** * PerformanceObserver 对象,用于监听性能相关事件 - * + * * @canNotUse PerformanceObserver - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts index 7650faaac88f..2ffc54e12cf8 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/system.ts @@ -58,7 +58,8 @@ export const getWindowInfo: typeof Taro.getWindowInfo = () => { screenHeight: info.screenHeight, windowWidth: info.screenWidth, // @ts-ignore - windowHeight: info.screenHeight - (window?.currentNavigation?.style === 'default' ? (window.navigationHeight || 0) : 0), + windowHeight: + info.screenHeight - (window?.currentNavigation?.style === 'default' ? window.navigationHeight || 0 : 0), statusBarHeight: info.statusBarHeight, safeArea: info.safeArea || { /** 安全区域右下角纵坐标 */ @@ -72,7 +73,7 @@ export const getWindowInfo: typeof Taro.getWindowInfo = () => { /** 安全区域左上角纵坐标, 状态栏高度 */ top: info.statusBarHeight, /** 安全区域的宽度,单位逻辑像素 */ - width: info.screenWidth + width: info.screenWidth, }, } return windowInfo @@ -122,7 +123,7 @@ export const getDeviceInfo: typeof Taro.getDeviceInfo = () => { /** 操作系统及版本 */ system: info.system, /** 客户端平台 */ - platform: info.platform + platform: info.platform, } return deviceInfo } @@ -144,7 +145,7 @@ export const getAppBaseInfo: typeof Taro.getAppBaseInfo = () => { host: { appId: info.appId }, language: info.appLanguage, version: info.appVersion, - theme: info.theme + theme: info.theme, } return appBaseInfo } @@ -176,7 +177,7 @@ export const getAppAuthorizeSetting: typeof Taro.getAppAuthorizeSetting = () => /** 允许微信通知的开关 */ notificationAuthorized: info.notificationAuthorized, /** 允许微信读写日历的开关 */ - phoneCalendarAuthorized: info.phoneCalendarAuthorized + phoneCalendarAuthorized: info.phoneCalendarAuthorized, } return appAuthorizeSetting } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts index c606f0829821..751fd7785cc2 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/app-event.ts @@ -116,7 +116,6 @@ export { onAudioInterruptionEnd } from '@tarojs/taro-h5' */ export { onAudioInterruptionBegin } from '@tarojs/taro-h5' - // app 以及 page onShow/onHide 生命周期回调处理 // --------------------------------------------------- const appPageShowListener = () => { @@ -183,7 +182,6 @@ export const offAppHide: typeof Taro.offAppHide = (callback) => { appHideCallbackManager.removeEvery(callback) } - /** * 取消监听未处理的 Promise 拒绝事件 * diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/life-cycle.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/life-cycle.ts index 8c97789eb485..2c12c1f8946c 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/life-cycle.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/base/weapp/life-cycle.ts @@ -1,6 +1,6 @@ import Taro from '@tarojs/api' -function getCustomLaunchInfo () { +function getCustomLaunchInfo() { let launchInfo try { // @ts-ignore @@ -39,14 +39,14 @@ function getCustomLaunchInfo () { } let launchOptions -export function initLaunchOptions (options = {}) { +export function initLaunchOptions(options = {}) { Object.assign(options, getCustomLaunchInfo()) launchOptions = options } /** * 获取程序启动时的参数 - * + * * @canUse getLaunchOptionsSync * @__return [path, query, scene, shareTicket, referrerInfo, apiCategory] */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/CanvasContext.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/CanvasContext.ts index da8ccee7999d..ee15ac7a7861 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/CanvasContext.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/CanvasContext.ts @@ -14,7 +14,7 @@ const TextBaseLineMap: Record { this.ctx.fillStyle = e }) } - get fillStyle () { + get fillStyle() { return this.ctx.fillStyle as string } - set font (e) { + set font(e) { this.ctx.font = e } - get font () { + get font() { return this.ctx.font } - set globalAlpha (e) { + set globalAlpha(e) { this.enqueueActions(() => { this.ctx.globalAlpha = e }) } - get globalAlpha () { + get globalAlpha() { return this.ctx.globalAlpha } - set globalCompositeOperation (e) { + set globalCompositeOperation(e) { this.enqueueActions(() => { this.ctx.globalCompositeOperation = e }) } - get globalCompositeOperation () { + get globalCompositeOperation() { return this.ctx.globalCompositeOperation } - set lineCap (e) { + set lineCap(e) { this.enqueueActions(() => { this.ctx.lineCap = e }) } - get lineCap () { + get lineCap() { return this.ctx.lineCap } - set lineDashOffset (e) { + set lineDashOffset(e) { this.enqueueActions(() => { this.ctx.lineDashOffset = e }) } - get lineDashOffset () { + get lineDashOffset() { return this.ctx.lineDashOffset } - set lineJoin (e) { + set lineJoin(e) { this.enqueueActions(() => { this.ctx.lineJoin = e }) } - get lineJoin () { + get lineJoin() { return this.ctx.lineJoin } - set lineWidth (e) { + set lineWidth(e) { this.enqueueActions(() => { this.ctx.lineWidth = e }) } - get lineWidth () { + get lineWidth() { return this.ctx.lineWidth } - set miterLimit (e) { + set miterLimit(e) { this.enqueueActions(() => { this.ctx.miterLimit = e }) } - get miterLimit () { + get miterLimit() { return this.ctx.miterLimit } - set shadowBlur (e) { + set shadowBlur(e) { this.enqueueActions(() => { this.ctx.shadowBlur = e }) } - get shadowBlur () { + get shadowBlur() { return this.ctx.shadowBlur } - set shadowColor (e) { + set shadowColor(e) { this.enqueueActions(() => { this.ctx.shadowColor = e }) } - get shadowColor () { + get shadowColor() { return this.ctx.shadowColor } - set shadowOffsetX (e) { + set shadowOffsetX(e) { this.enqueueActions(() => { this.ctx.shadowOffsetX = e }) } - get shadowOffsetX () { + get shadowOffsetX() { return this.ctx.shadowOffsetX } - set shadowOffsetY (e) { + set shadowOffsetY(e) { this.enqueueActions(() => { this.ctx.shadowOffsetY = e }) } - get shadowOffsetY () { + get shadowOffsetY() { return this.ctx.shadowOffsetY } - set strokeStyle (e) { + set strokeStyle(e) { this.enqueueActions(() => { this.ctx.strokeStyle = e }) } - get strokeStyle () { + get strokeStyle() { return this.ctx.strokeStyle as string } /** 小程序文档中不包括 ↓↓↓ */ - set textAlign (e) { + set textAlign(e) { this.ctx.textAlign = e } - get textAlign () { + get textAlign() { return this.ctx.textAlign } - set textBaseline (e) { + set textBaseline(e) { this.ctx.textBaseline = e } - get textBaseline () { + get textBaseline() { return this.ctx.textBaseline } - set direction (e) { + set direction(e) { this.ctx.direction = e } - get direction () { + get direction() { return this.ctx.direction } - set imageSmoothingEnabled (e) { + set imageSmoothingEnabled(e) { this.enqueueActions(() => { this.ctx.imageSmoothingEnabled = e }) } - get imageSmoothingEnabled () { + get imageSmoothingEnabled() { return this.ctx.imageSmoothingEnabled } - set imageSmoothingQuality (e) { + set imageSmoothingQuality(e) { this.enqueueActions(() => { this.ctx.imageSmoothingQuality = e }) } - get imageSmoothingQuality () { + get imageSmoothingQuality() { return this.ctx.imageSmoothingQuality } - set filter (e) { + set filter(e) { this.enqueueActions(() => { this.ctx.filter = e }) } - get filter () { + get filter() { return this.ctx.filter } /** 小程序文档中不包括 ↑↑↑ */ - arc (...args) { + arc(...args) { return this.enqueueActions(this.ctx.arc, ...args) } - arcTo (...args) { + arcTo(...args) { return this.enqueueActions(this.ctx.arcTo, ...args) } - beginPath (...args) { + beginPath(...args) { return this.enqueueActions(this.ctx.beginPath, ...args) } - bezierCurveTo (...args) { + bezierCurveTo(...args) { return this.enqueueActions(this.ctx.bezierCurveTo, ...args) } - clearRect (...args) { + clearRect(...args) { return this.enqueueActions(this.ctx.clearRect, ...args) } - clip (...args) { + clip(...args) { return this.enqueueActions(this.ctx.clip, ...args) } - closePath (...args) { + closePath(...args) { return this.enqueueActions(this.ctx.closePath, ...args) } - createPattern (imageResource: string, repetition: keyof Taro.CanvasContext.Repetition): CanvasPattern | null | Promise { + createPattern( + imageResource: string, + repetition: keyof Taro.CanvasContext.Repetition + ): CanvasPattern | null | Promise { // 需要转换为 Image if (typeof imageResource === 'string') { const img = new Image() @@ -299,7 +302,7 @@ export class CanvasContext implements Taro.CanvasContext { * 将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中。 * @todo 每次 draw 都会读取 width 和 height */ - async draw (reserve?: boolean, callback?: (...args: any[]) => any): Promise { + async draw(reserve?: boolean, callback?: (...args: any[]) => any): Promise { try { if (!reserve) { this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height) @@ -320,7 +323,7 @@ export class CanvasContext implements Taro.CanvasContext { } } - drawImage (imageResource: string, ...extra: any[]): void { + drawImage(imageResource: string, ...extra: any[]): void { // 如果是本地file://开头的文件路径,需要先转换为internal://开头的沙箱路径 if (imageResource.startsWith('file://')) { imageResource = native.copyFileToSandboxCache(imageResource).internalCachePath @@ -344,102 +347,104 @@ export class CanvasContext implements Taro.CanvasContext { }) } - fill (...args) { + fill(...args) { return this.enqueueActions(this.ctx.fill, ...args) } - fillRect (...args) { + fillRect(...args) { return this.enqueueActions(this.ctx.fillRect, ...args) } - fillText (...args) { + fillText(...args) { return this.enqueueActions(this.ctx.fillText, ...args) } - lineTo (...args) { + lineTo(...args) { return this.enqueueActions(this.ctx.lineTo, ...args) } - moveTo (...args) { + moveTo(...args) { return this.enqueueActions(this.ctx.moveTo, ...args) } - quadraticCurveTo (...args) { + quadraticCurveTo(...args) { return this.enqueueActions(this.ctx.quadraticCurveTo, ...args) } - rect (...args) { + rect(...args) { return this.enqueueActions(this.ctx.rect, ...args) } // @ts-ignore - reset () { return this.ctx.reset() } - restore (...args) { + reset() { + return this.ctx.reset() + } + restore(...args) { return this.enqueueActions(this.ctx.restore, ...args) } - rotate (...args) { + rotate(...args) { return this.enqueueActions(this.ctx.rotate, ...args) } - save (...args) { + save(...args) { return this.enqueueActions(this.ctx.save, ...args) } - scale (...args) { + scale(...args) { return this.enqueueActions(this.ctx.scale, ...args) } - setFillStyle (color: string | CanvasGradient): void { + setFillStyle(color: string | CanvasGradient): void { this.enqueueActions(() => { this.ctx.fillStyle = color }) } - setFontSize (fontSize: number): void { + setFontSize(fontSize: number): void { this.enqueueActions(() => { this.ctx.font = `${fontSize}px sans-serif` }) } - setGlobalAlpha (alpha: number): void { + setGlobalAlpha(alpha: number): void { this.enqueueActions(() => { this.ctx.globalAlpha = alpha }) } - setLineCap (lineCap: keyof Taro.CanvasContext.LineCap): void { + setLineCap(lineCap: keyof Taro.CanvasContext.LineCap): void { this.enqueueActions(() => { this.ctx.lineCap = lineCap }) } - setLineDash (pattern: number[], offset: number): void { + setLineDash(pattern: number[], offset: number): void { this.enqueueActions(() => { this.ctx.setLineDash(pattern) this.ctx.lineDashOffset = offset }) } - setLineJoin (lineJoin: keyof Taro.CanvasContext.LineJoin): void { + setLineJoin(lineJoin: keyof Taro.CanvasContext.LineJoin): void { this.enqueueActions(() => { this.ctx.lineJoin = lineJoin }) } - setLineWidth (lineWidth: number): void { + setLineWidth(lineWidth: number): void { this.enqueueActions(() => { this.ctx.lineWidth = lineWidth }) } - setMiterLimit (miterLimit: number): void { + setMiterLimit(miterLimit: number): void { this.enqueueActions(() => { this.ctx.miterLimit = miterLimit }) } - setShadow (offsetX: number, offsetY: number, blur: number, color: string): void { + setShadow(offsetX: number, offsetY: number, blur: number, color: string): void { this.enqueueActions(() => { this.ctx.shadowOffsetX = offsetX this.ctx.shadowOffsetY = offsetY @@ -448,59 +453,59 @@ export class CanvasContext implements Taro.CanvasContext { }) } - setStrokeStyle (color: string | CanvasGradient): void { + setStrokeStyle(color: string | CanvasGradient): void { this.enqueueActions(() => { this.ctx.strokeStyle = color }) } - setTextAlign (align: keyof Taro.CanvasContext.Align): void { + setTextAlign(align: keyof Taro.CanvasContext.Align): void { this.enqueueActions(() => { this.ctx.textAlign = align }) } - setTextBaseline (textBaseline: keyof Taro.CanvasContext.TextBaseline): void { + setTextBaseline(textBaseline: keyof Taro.CanvasContext.TextBaseline): void { this.enqueueActions(() => { this.ctx.textBaseline = TextBaseLineMap[textBaseline] || 'alphabetic' }) } - setTransform (...args) { + setTransform(...args) { return this.enqueueActions(this.ctx.setTransform, ...args) } - stroke (...args) { + stroke(...args) { return this.enqueueActions(this.ctx.stroke, ...args) } - strokeRect (...args) { + strokeRect(...args) { return this.enqueueActions(this.ctx.strokeRect, ...args) } - strokeText (...args) { + strokeText(...args) { return this.enqueueActions(this.ctx.strokeText, ...args) } - transform (...args) { + transform(...args) { return this.enqueueActions(this.ctx.transform, ...args) } - translate (...args) { + translate(...args) { return this.enqueueActions(this.ctx.translate, ...args) } - measureText (text: string): TextMetrics { + measureText(text: string): TextMetrics { return this.ctx.measureText(text) } - createCircularGradient (x: number, y: number, r: number): CanvasGradient { + createCircularGradient(x: number, y: number, r: number): CanvasGradient { const radialGradient = this.ctx.createRadialGradient(x, y, 0, x, y, r) return radialGradient } - createLinearGradient (x0: number, y0: number, x1: number, y1: number): CanvasGradient { + createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient { return this.ctx.createLinearGradient(x0, y0, x1, y1) } } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasToTempFilePath.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasToTempFilePath.ts index 21b6ef3ef327..9517d38d781a 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasToTempFilePath.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/canvasToTempFilePath.ts @@ -10,13 +10,13 @@ const QUALITY = 1.0 // 图片质量,为1.0时和原图片质量一致 const DX = 0 // imageResource的左上角在目标 canvas 上 x 轴的位置 const DY = 0 // imageResource的左上角在目标 canvas 上 y 轴的位置 -/** +/** * 把当前画布指定区域的内容导出生成指定大小的图片 - * + * * @canUse canvasToTempFilePath * @__object [canvas, canvasId, quality, destHeight, destWidth, fileType[jpg, png], height, width, x, y] * @__success [tempFilePath] -*/ + */ export const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = (options, inst) => { const name = 'canvasToTempFilePath' // options must be an Object @@ -26,7 +26,7 @@ export const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = (options, console.error(res.errMsg) return Promise.reject(res) } - const { + const { canvas, canvasId, quality = 1.0, @@ -37,9 +37,9 @@ export const canvasToTempFilePath: typeof Taro.canvasToTempFilePath = (options, width = 0, x = 0, y = 0, - success, - fail, - complete + success, + fail, + complete, } = options as Exclude const handle = new MethodHandler({ name, success, fail, complete }) diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/createCanvasContext.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/createCanvasContext.ts index a3c052c205e3..9f91f9881f32 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/createCanvasContext.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/canvas/createCanvasContext.ts @@ -5,7 +5,7 @@ import { CanvasContext } from './CanvasContext' /** * 创建 canvas 的绘图上下文 CanvasContext 对象 - * + * * @canUse createCanvasContext */ export const createCanvasContext: typeof Taro.createCanvasContext = (canvasId, inst) => { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts index 60ddd21d943e..92503c438d0a 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/cloud/index.ts @@ -2,7 +2,7 @@ import Taro from '@tarojs/api' /** * 云开发 SDK 实例 - * + * * @canUse cloud * @null_implementation */ @@ -76,6 +76,6 @@ export class cloud implements Taro.cloud { /** * 云开发 SDK 数据库实例 Taro.cloud.database() - * + * * @canNotUse DB - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/comments.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/comments.ts index 026d7cd28e32..e0af0300d01d 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/comments.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/comments.ts @@ -1,36 +1,36 @@ /** * 向系统日历添加事件 - * + * * @canNotUse addPhoneCalendar */ /** * 添加手机通讯录联系人 - * + * * @canNotUse addPhoneContact */ /** * 向系统日历添加重复事件 - * + * * @canNotUse addPhoneRepeatCalendar */ /** * 将Base64字符串转成ArrayBuffer数据 - * + * * @canUse arrayBufferToBase64 */ /** * 将ArrayBuffer数据转成Base64字符串 - * + * * @canUse base64ToArrayBuffer */ /** * 获取 canvas 区域隐含的像素数据。 - * + * * @canUse canvasGetImageData * @__object [canvasId, x, y, height, width] * @__success [data, height, width] @@ -38,180 +38,180 @@ /** * 将像素数据绘制到画布 - * + * * @canUse canvasPutImageData * @__object [canvasId, data, x, y] */ /** * 获取设备内是否录入如指纹等生物信息的接口 - * + * * @canNotUse checkIsSoterEnrolledInDevice */ /** * 获取本机支持的 SOTER 生物认证方式 - * + * * @canNotUse checkIsSupportSoterAuthentication */ /** * 拍摄视频或从手机相册中选视频 - * - * @canNotUse chooseVideo + * + * @canNotUse chooseVideo */ -/** +/** * 清理本地数据缓存 - * + * * @canUse clearStorage -*/ + */ -/** +/** * Taro.clearStorage 的同步版本 - * + * * @canUse clearStorageSync -*/ + */ /** * 断开与低功耗蓝牙设备的连接 - * + * * @canNotUse closeBLEConnection */ /** * 关闭蓝牙模块 - * + * * @canNotUse closeBluetoothAdapter */ /** * 压缩图片接口,可选压缩质量 - * - * @canNotUse compressImage + * + * @canNotUse compressImage */ /** * 创建一个 WebSocket 连接 - * + * * @canUse connectSocket * @__object [url, header, protocols, tcpNoDelay] */ /** * 连接 Wi-Fi - * + * * @canNotUse connectWifi */ /** * 创建一个动画实例 animation - * - * @canUse createAnimation - * @__object [duration, timingFunction[linear, ease, ease-in, ease-in-out, ease-out, step-start, step-end], delay, transformOrigin, unit] + * + * @canUse createAnimation + * @__object [duration, timingFunction[linear, ease, ease-in, ease-in-out, ease-out, step-start, step-end], delay, transformOrigin, unit] */ /** * 连接低功耗蓝牙设备 - * + * * @canNotUse createBLEConnection */ /** * 创建 camera 上下文 CameraContext 对象 - * + * * @canNotUse createCameraContext */ /** * 创建并返回一个 IntersectionObserver 对象实例 - * + * * @canUse createIntersectionObserver */ /** * 创建 live-player 上下文 LivePlayerContext 对象 - * + * * @canNotUse createLivePlayerContext */ /** * 创建 map 上下文 MapContext 对象。 - * + * * @canNotUse createMapContext */ /** * 创建并返回一个 MediaQueryObserver 对象实例 - * + * * @canUse createMediaQueryObserver */ /** * 创建 video 上下文 VideoContext 对象。 - * + * * @canUse createVideoContext */ /** * 获取蓝牙设备某个服务中所有特征值 - * + * * @canNotUse getBLEDeviceCharacteristics */ /** * 获取蓝牙低功耗设备的信号强度 - * + * * @canNotUse getBLEDeviceRSSI */ /** * 获取蓝牙设备所有服务(service) - * + * * @canNotUse getBLEDeviceServices */ /** * 获取全局唯一的背景音频管理器 - * + * * @canUse getBackgroundAudioManager */ /** * 获取设备电量 - * + * * @canUse getBatteryInfo * @__success [isCharging, level] */ /** * 获取本机蓝牙适配器状态 - * + * * @canNotUse getBluetoothAdapterState */ /** * 获取在蓝牙模块生效期间所有已发现的蓝牙设备 - * + * * @canNotUse getBluetoothDevices */ /** * 获取系统剪贴板的内容 - * + * * @canUse getClipboardData * @__success [data] */ /** * 根据 uuid 获取处于已连接状态的设备 - * + * * @canNotUse getConnectedBluetoothDevices */ /** * 获取已连接中的 Wi-Fi 信息 - * + * * @canNotUse getConnectedWifi */ @@ -223,75 +223,75 @@ /** * 获取本次程序启动时的参数 - * + * * @canNotUse getEnterOptionsSync */ /** * 关闭监听实时位置变化,前后台都停止消息接收 - * + * * @canNotUse getFileInfo */ /** * 获取网络类型 - * + * * @canUse getNetworkType - * @__success [networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] + * @__success [networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] */ /** * 获取全局唯一的录音管理器 - * + * * @canNotUse getRecorderManager */ /** * 获取本地文件的文件信息 - * + * * @canNotUse getSavedFileInfo */ /** * 获取本地已保存的文件列表 - * + * * @canNotUse getSavedFileList */ /** * 获取屏幕亮度 - * + * * @canNotUse getScreenBrightness * @__success [value] */ -/** +/** * 从本地缓存中异步获取指定 key 的内容 - * + * * @canUse getStorage * @__object [key] * @__success [data] -*/ + */ -/** +/** * 异步获取当前storage的相关信息 - * + * * @canUse getStorageInfo * @__success [currentSize, keys, limitSize] -*/ + */ -/** +/** * Taro.getStorageInfo 的同步版本 - * + * * @canUse getStorageInfoSync * @__return [currentSize, keys, limitSize] -*/ + */ -/** +/** * Taro.getStorage 的同步版本 - * + * * @canUse getStorageSync -*/ + */ /** * 异步获取系统信息 @@ -301,314 +301,314 @@ /** * 请求获取 Wi-Fi 列表 - * + * * @canNotUse getWifiList */ /** * 隐藏 loading 提示框 - * - * @canUse hideLoading - * @__object [noConflict] + * + * @canUse hideLoading + * @__object [noConflict] */ /** * 隐藏页面导航条加载图标 - * + * * @canNotUse hideNavigationBarLoading */ /** * 隐藏 tabBar - * + * * @canUse hideTabBar * @__object [animation] */ /** * 隐藏 tabBar 某一项的右上角的红点 - * + * * @canUse hideTabBarRedDot * @__object [index] */ /** * 隐藏消息提示框 - * - * @canUse hideToast + * + * @canUse hideToast * @__object [noConflict] */ /** * 动态加载网络字体 - * - * @canUse loadFontFace - * @__object [global, family, source, desc[style, variant, weight]] + * + * @canUse loadFontFace + * @__object [global, family, source, desc[style, variant, weight]] * @__success [status] -*/ + */ /** * 启用低功耗蓝牙设备特征值变化时的 notify 功能,订阅特征值 - * + * * @canNotUse notifyBLECharacteristicValueChange */ /** * 取消监听加速度数据事件,参数为空,则取消所有的事件监听 - * + * * @canNotUse offAccelerometerChange */ /** * 取消监听蓝牙适配器状态变化事件 - * + * * @canNotUse offBluetoothAdapterStateChange */ /** * 取消监听寻找到新设备的事件 - * + * * @canNotUse offBluetoothDeviceFound */ /** * 取消监听罗盘数据变化事件,参数为空,则取消所有的事件监听。 - * + * * @canNotUse offCompassChange */ /** * 取消监听设备方向变化事件,参数为空,则取消所有的事件监听。 - * + * * @canNotUse offDeviceMotionChange */ /** * 取消监听音频播放错误事件 - * + * * @canUse offError */ /** * 取消监听获取到 Wi-Fi 列表数据事件 - * + * * @canNotUse offGetWifiList */ /** * 取消监听键盘高度变化事件 - * + * * @canNotUse offKeyboardHeightChange */ /** * 取消监听实时地理位置变化事件 - * + * * @canNotUse offLocationChange */ /** * 取消监听持续定位接口返回失败时触发 - * + * * @canNotUse offLocationChangeError */ /** * 取消监听网络状态变化事件,参数为空,则取消所有的事件监听 - * + * * @canUse offNetworkStatusChange */ /** * 取消监听小程序要打开的页面不存在事件 - * + * * @canUse offPageNotFound */ /** * 取消监听系统主题改变事件 - * + * * @canNotUse offThemeChange */ /** * 取消监听未处理的 Promise 拒绝事件 - * + * * @canUse offUnhandledRejection */ /** * 监听小程序切前台事件 - * + * * @canUse onAppShow * @__callback [path, query, scene, shareTicket, referrerInfo] */ /** * 监听小程序切后台事件 - * + * * @canUse onAppHide */ /** * 取消监听小程序切前台事件 - * + * * @canUse offAppShow */ /** * 取消监听小程序切后台事件 - * + * * @canUse offAppHide */ /** * 取消用户主动截屏事件监听 - * + * * @canNotUse offUserCaptureScreen */ /** * 取消监听连接上 Wi-Fi 的事件 - * + * * @canNotUse offWifiConnected */ /** * 取消监听连接上 Wi-Fi 的事件 - * + * * @canNotUse offWifiConnectedWithPartialInfo */ /** * 取消监听窗口尺寸变化事件 - * + * * @canUse offWindowResize */ /** * 监听加速度数据事件。频率根据 Taro.startAccelerometer() 的 interval 参数。可使用 Taro.stopAccelerometer() 停止监听。 - * + * * @canNotUse onAccelerometerChange */ /** * 监听低功耗蓝牙设备的特征值变化事件 - * + * * @canNotUse onBLECharacteristicValueChange */ /** * 监听低功耗蓝牙连接状态的改变事件 - * + * * @canNotUse onBLEConnectionStateChange */ /** * 监听蓝牙适配器状态变化事件 - * + * * @canNotUse onBluetoothAdapterStateChange */ /** * 监听寻找到新设备的事件 - * + * * @canNotUse onBluetoothDeviceFound */ /** * 监听罗盘数据变化事件。频率:5 次/秒,接口调用后会自动开始监听,可使用 stopCompass 停止监听 - * + * * @canNotUse onCompassChange */ /** * 监听设备方向变化事件。 - * + * * @canNotUse onDeviceMotionChange */ /** * 监听小程序错误事件 - * + * * @canUse onError */ /** * 监听获取到 Wi-Fi 列表数据事件 - * + * * @canNotUse onGetWifiList */ /** * 监听陀螺仪数据变化事件。频率根据 Taro.startGyroscope() 的 interval 参数。可以使用 Taro.stopGyroscope() 停止监听。 - * + * * @canNotUse onGyroscopeChange */ /** * 监听键盘高度变化 - * + * * @canNotUse onKeyboardHeightChange * @__callback [height] */ /** * 监听实时地理位置变化事件 - * + * * @canNotUse onLocationChange * @__callback [accuracy, altitude, horizontalAccuracy, atitude, longitude, speed, verticalAccuracy] */ -/** +/** * 监听持续定位接口返回失败时触发 - * + * * @canNotUse onLocationChangeError * @__callback [errCode] -*/ + */ /** * 监听网络状态变化 - * + * * @canUse onNetworkStatusChange * @__success [isConnected, networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] */ /** * 监听程序要打开的页面不存在事件 - * + * * @canUse onPageNotFound * @__callback [isEntryPage, path, query] */ /** * 监听系统主题改变事件 - * + * * @canNotUse onThemeChange */ /** * 监听未处理的Promise拒绝事件 - * + * * @canUse onUnhandledRejection * @__callback [reason, promise] */ /** * 监听连接上 Wi-Fi 的事件 - * + * * @canNotUse onWifiConnected */ /** * 监听连接上 Wi-Fi 的事件 - * + * * @canNotUse onWifiConnectedWithPartialInfo */ /** * 监听窗口尺寸变化事件 - * + * * @canUse onWindowResize */ @@ -620,19 +620,19 @@ /** * 初始化蓝牙模块 - * + * * @canNotUse openBluetoothAdapter */ /** * 打开视频编辑器 - * - * @canNotUse openVideoEditor + * + * @canNotUse openVideoEditor */ /** * 将页面滚动到目标位置 - * + * * @canUse pageScrollTo * @__object [duration, scrollTop, selector, offsetTop] */ @@ -640,1017 +640,1017 @@ /** * previewImage api基于开源的React组件[react-wx-images-viewer](https://github.com/react-ld/react-wx-images-viewer)开发,感谢! * 在新页面中全屏预览图片/视频。预览的过程中用户可以进行保存图片/视频、发送给朋友等操作。 - * + * * @canUse previewMedia * @__object [sources, current] */ /** * 读取低功耗蓝牙设备的特征值的二进制数据值 - * + * * @canNotUse readBLECharacteristicValue */ /** * 新开页面打开文档,支持格式 - * + * * @canNotUse removeSavedFile */ -/** +/** * 从本地缓存中移除指定 key - * + * * @canUse removeStorage * @__object [key] -*/ + */ -/** +/** * Taro.removeStorage 的同步版本 - * + * * @canUse removeStorageSync -*/ + */ /** * 移除 tabBar 某一项右上角的文本 - * + * * @canUse removeTabBarBadge * @__object [index] */ /** * 保存文件到本地 - * + * * @canNotUse saveFile */ /** * 保存视频到系统相册 - * + * * @canNotUse saveVideoToPhotosAlbum */ /** * 调起客户端扫码界面,扫码成功后返回对应的结果 - * + * * @canNotUse scanCode */ /** * 协商设置蓝牙低功耗的最大传输单元 - * + * * @canNotUse setBLEMTU */ /** * 设置系统剪贴板的内容 - * + * * @canUse setClipboardData * @__object [data] */ /** * 设置页面导航条标题 - * + * * @canUse setNavigationBarTitle * @__object [title] */ /** * 设置屏幕亮度 - * + * * @canNotUse setScreenBrightness */ /** * 将数据存储在本地缓存中指定的 key 中 - * + * * @canUse setStorage * @__object [data, key] */ -/** +/** * Taro.setStorage 的同步版本 - * + * * @canUse setStorageSync * @__object [key, data] -*/ + */ /** * 为 tabBar 某一项的右上角添加文本 - * + * * @canUse setTabBarBadge * @__object [index, text] */ /** * 动态设置 tabBar 某一项的内容 - * + * * @canUse setTabBarItem * @__object [index, iconPath, selectedIconPath, text] */ /** * 动态设置 tabBar 的整体样式 - * + * * @canUse setTabBarStyle * @__object [backgroundColor, borderStyle, color, selectedColor] */ /** * 显示操作菜单 - * - * @canUse showActionSheet - * @__object [alertText, itemList, itemColor] + * + * @canUse showActionSheet + * @__object [alertText, itemList, itemColor] * @__success [tapIndex] */ /** * 显示 loading 提示框 - * + * * @canUse showLoading * @__object [title, mask] */ /** * 显示模态对话框 - * + * * @canUse showModal - * @__object [cancelColor, cancelText, confirmColor, confirmText, content, showCancel, title] + * @__object [cancelColor, cancelText, confirmColor, confirmText, content, showCancel, title] * @__success [cancel, confirm] -*/ + */ /** * 显示页面导航条加载图标 - * + * * @canNotUse showNavigationBarLoading */ /** * 显示 tabBar - * + * * @canUse showTabBar * @__object [animation] */ /** * 显示 tabBar 某一项的右上角的红点 - * + * * @canUse showTabBarRedDot * @__object [index] */ /** * 显示消息提示框 - * - * @canUse showToast + * + * @canUse showToast * @__object [title, duration, icon[success, error, loading, none], image, mask] */ /** * 开始监听加速度数据。 - * + * * @canNotUse startAccelerometer * @__object [interval[game, ui, normal]] */ /** * 开始搜寻附近的蓝牙外围设备 - * + * * @canNotUse startBluetoothDevicesDiscovery */ /** * 开始监听罗盘数据 - * + * * @canNotUse startCompass */ /** * 开始监听设备方向的变化。 - * + * * @canNotUse startDeviceMotionListening */ /** * 开始监听陀螺仪数据 - * + * * @canNotUse startGyroscope */ /** * 开启小程序进入前台时接收位置消息 - * + * * @canNotUse startLocationUpdate */ /** * 开启小程序进入前后台时均接收位置消息 - * + * * @canNotUse startLocationUpdateBackground */ /** * 开始下拉刷新。调用后触发下拉刷新动画,效果与用户手动下拉刷新一致。 - * + * * @canUse startPullDownRefresh */ /** * 开始 SOTER 生物认证。 - * + * * @canNotUse startSoterAuthentication */ /** * 初始化 Wi-Fi 模块 - * + * * @canNotUse startWifi */ /** * 停止监听加速度数据。 - * + * * @canNotUse stopAccelerometer */ /** * 停止搜寻附近的蓝牙外围设备 - * + * * @canNotUse stopBluetoothDevicesDiscovery */ /** * 停止监听罗盘数据 - * + * * @canNotUse stopCompass */ /** * 停止监听设备方向的变化。 - * + * * @canNotUse stopDeviceMotionListening */ /** * 停止监听陀螺仪数据 - * + * * @canNotUse stopGyroscope */ /** * 关闭监听实时位置变化,前后台都停止消息接收 - * + * * @canNotUse stopLocationUpdate */ /** * 停止当前页面下拉刷新。 - * + * * @canUse stopPullDownRefresh */ /** * 关闭 Wi-Fi 模块 - * + * * @canNotUse stopWifi */ /** * 使手机发生较长时间的振动(400 ms) - * + * * @canNotUse vibrateLong */ /** * 使手机发生较短时间的振动(15 ms)(harmony平台暂不支持入参type属性) - * + * * @canNotUse vibrateShort */ /** * 向低功耗蓝牙设备特征值中写入二进制数据 - * + * * @canNotUse writeBLECharacteristicValue */ /** * 批量添加卡券 - * + * * @canNotUse addCard */ /** * 收藏文件 - * + * * @canNotUse addFileToFavorites */ /** * 使用拦截器 - * + * * @canNotUse addInterceptor */ /** * 收藏视频 - * + * * @canNotUse addVideoToFavorites */ -/** - * 验证私密消息 - * +/** + * 验证私密消息 + * * @canNotUse authPrivateMessage -*/ + */ /** * 提前向用户发起授权请求 - * + * * @canNotUse authorize */ /** * 从本地缓存中异步批量获取指定 key 的内容 - * + * * @canNotUse batchGetStorage */ /** * 从本地缓存中同步批量获取指定 key 的内容 - * + * * @canNotUse batchGetStorageSync */ /** * 将数据批量存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。 - * + * * @canNotUse batchSetStorage */ /** * 将数据批量存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。 - * + * * @canNotUse batchSetStorageSync */ /** * 检查小程序是否被添加至 「我的小程序」 - * + * * @canNotUse checkIsAddedToMyMiniProgram */ /** * 检测是否开启视觉无障碍功能 - * + * * @canNotUse checkIsOpenAccessibility */ /** * 返回当前是否存在小窗播放 - * + * * @canNotUse checkIsPictureInPictureActive */ /** * 检查是否支持面部识别 - * + * * @canNotUse checkIsSupportFacialRecognition */ /** * 检查登录态是否过期 - * + * * @canNotUse checkSession */ /** * 收货地址 - * + * * @canNotUse chooseAddress */ /** * 添加手机通讯录联系人 - * + * * @canNotUse chooseContact */ /** * 选择用户已有的发票。 - * + * * @canNotUse chooseInvoice */ /** * 选择用户的发票抬头 - * + * * @canNotUse chooseInvoiceTitle */ /** * 选择车牌号。 - * + * * @canNotUse chooseLicensePlate */ /** * 从客户端会话选择文件 - * + * * @canNotUse chooseMessageFile */ /** * 打开POI列表选择位置 - * + * * @canNotUse choosePoi */ /** * 清除所有拦截器 - * + * * @canNotUse cleanInterceptors */ /** * 关闭 WebSocket 连接 - * + * * @canNotUse closeSocket */ /** * 建立本地作为蓝牙低功耗外围设备的服务端,可创建多个 - * + * * @canNotUse createBLEPeripheralServer */ /** * 根据传入的 buffer 创建一个唯一的 URL 存在内存中 - * + * * @canNotUse createBufferURL */ /** * 创建缓存管理器 - * + * * @canNotUse createCacheManager */ /** * 创建 AI 推理 Session - * + * * @canNotUse createInferenceSession */ /** * 创建 live-pusher 上下文 LivePusherContext 对象 - * + * * @canNotUse createLivePusherContext */ /** * 创建媒体音频播放器对象 MediaAudioPlayer 对象 - * + * * @canNotUse createMediaAudioPlayer */ /** * 创建音视频处理容器 - * + * * @canNotUse createMediaContainer */ /** * 创建 WebGL 画面录制器 - * + * * @canNotUse createMediaRecorder */ /** * 创建离屏 canvas 实例 - * + * * @canNotUse createOffscreenCanvas */ /** * 创建激励视频广告组件 - * + * * @canNotUse createRewardedVideoAd */ /** * 创建一个 TCP Socket 实例 - * + * * @canNotUse createTCPSocket */ /** * 创建一个 UDP Socket 实例 - * + * * @canNotUse createUDPSocket */ /** * 创建 vision kit 会话对象 - * + * * @canNotUse createVKSession */ /** * 创建视频解码器 - * + * * @canNotUse createVideoDecoder */ /** * 创建 WebAudio 上下文 - * + * * @canNotUse createWebAudioContext */ /** * 创建一个 Worker 线程 - * + * * @canNotUse createWorker */ /** * 裁剪图片接口 - * + * * @canNotUse cropImage */ /** * 编辑图片接口 - * + * * @canNotUse editImage */ /** * 退出当前小程序 - * + * * @canNotUse exitMiniProgram */ /** * 退出(销毁)实时语音通话 - * + * * @canNotUse exitVoIPChat */ /** * 人脸识别 - * + * * @canNotUse faceDetect */ /** * 支付各个安全场景验证人脸 - * + * * @canNotUse faceVerifyForPay */ /** * 获取当前支持的音频输入源 - * + * * @canNotUse getAvailableAudioSources */ /** * 获取蓝牙低功耗的最大传输单元 - * + * * @canNotUse getBLEMTU */ /** * 获取后台音乐播放状态 - * + * * @canNotUse getBackgroundAudioPlayerState */ /** * 获取设置过的自定义登录态 - * + * * @canNotUse getBackgroundFetchToken */ /** * Taro.getBatteryInfo 的同步版本 Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用 - * + * * @canNotUse getBatteryInfoSync */ /** * 获取所有已搜索到的 iBeacon 设备 - * + * * @canNotUse getBeacons */ /** * 获取视频号直播信息 - * + * * @canNotUse getChannelsLiveInfo */ /** * 获取视频号直播预告信息 - * + * * @canNotUse getChannelsLiveNoticeInfo */ /** * 获取视频号直播卡片/视频卡片的分享来源 - * + * * @canNotUse getChannelsShareKey */ /** * 查询当前用户授权的音视频通话设备(组)信息 - * + * * @canNotUse getDeviceVoIPList */ /** * 获取第三方平台自定义的数据字段 - * + * * @canNotUse getExtConfig */ /** * Taro.getExtConfig 的同步版本 - * + * * @canNotUse getExtConfigSync */ /** * 获取微信群聊场景下的小程序启动信息 - * + * * @canNotUse getGroupEnterInfo */ /** * 判断当前设备是否支持 HCE 能力 - * + * * @canNotUse getHCEState */ /** * 获取通用AI推理引擎版本 - * + * * @canNotUse getInferenceEnvInfo */ /** * 获取局域网IP地址 - * + * * @canNotUse getLocalIPAddress */ /** * 获取 NFC 实例 - * + * * @canNotUse getNFCAdapter */ /** * 获取支付宝会员的基础信息 - * + * * @canNotUse getOpenUserInfo */ /** * 查询隐私授权情况。 - * + * * @canNotUse getPrivacySetting */ /** * 获取密码学安全随机数 - * + * * @canNotUse getRandomValues */ /** * 获取程序的 UserAgent - * + * * @canNotUse getRendererUserAgent */ /** - * + * * 查询用户是否在录屏 - * + * * @canNotUse getScreenRecordingState */ /** * 在input、textarea等focus之后,获取输入框的光标位置 - * + * * @canNotUse getSelectedTextRange */ /** * 获取当前运行环境对于 Skyline 渲染引擎 的支持情况 - * + * * @canNotUse getSkylineInfo */ /** * 获取当前运行环境对于 Skyline 渲染引擎 的支持情况 - * + * * @canNotUse getSkylineInfoSync */ /** * 获取用户加密模块 - * + * * @canNotUse getUserCryptoManager */ /** * 获取用户信息 - * + * * @canNotUse getUserProfile */ /** * 获取用户过去三十天微信运动步数。 - * + * * @canNotUse getWeRunData */ /** * 初始化人脸识别 - * + * * @canNotUse initFaceDetect */ /** * 查询蓝牙设备是否配对 - * + * * @canNotUse isBluetoothDevicePaired */ /** * 判断支持版本 - * + * * @canNotUse isVKSupport */ /** * 加入(创建)双人通话 - * + * * @canNotUse join1v1Chat */ /** * 加入 (创建) 实时语音通话 - * + * * @canNotUse joinVoIPChat */ /** * 蓝牙配对接口 - * + * * @canNotUse makeBluetoothPair */ /** * 返回到上一个小程序 - * + * * @canNotUse navigateBackMiniProgram */ /** * 取消监听音频因为受到系统占用而被中断开始事件 - * + * * @canNotUse offAudioInterruptionBegin */ /** * 取消监听音频中断结束事件 - * + * * @canNotUse offAudioInterruptionEnd */ /** * 取消监听蓝牙低功耗设备的特征值变化事件 - * + * * @canNotUse offBLECharacteristicValueChange */ /** * 取消监听蓝牙低功耗连接状态的改变事件 - * + * * @canNotUse offBLEConnectionStateChange */ /** * 取消监听蓝牙低功耗的最大传输单元变化事件 - * + * * @canNotUse offBLEMTUChange */ /** * 取消监听当前外围设备被连接或断开连接事件 - * + * * @canNotUse offBLEPeripheralConnectionStateChanged */ /** * 取消监听 iBeacon 服务状态变化事件 - * + * * @canNotUse offBeaconServiceChange */ /** * 取消监听 iBeacon 设备更新事件 - * + * * @canNotUse offBeaconUpdate */ -/** - * 移除用户点击右上角菜单的「复制链接」按钮时触发的事件的监听函数 - * +/** + * 移除用户点击右上角菜单的「复制链接」按钮时触发的事件的监听函数 + * * @canNotUse offCopyUrl -*/ + */ /** * 取消监听陀螺仪数据变化事件。 - * + * * @canNotUse offGyroscopeChange */ /** * 接收 NFC 设备消息事件,取消事件监听 - * + * * @canNotUse offHCEMessage */ /** * 取消监听 mDNS 服务停止搜索的事件 - * + * * @canNotUse offLocalServiceDiscoveryStop */ /** * 取消监听 mDNS 服务发现的事件 - * + * * @canNotUse offLocalServiceFound */ /** * 取消监听 mDNS 服务离开的事件 - * + * * @canNotUse offLocalServiceLost */ /** * 取消监听 mDNS 服务解析失败的事件 - * + * * @canNotUse offLocalServiceResolveFail */ /** * 取消监听弱网状态变化事件 - * + * * @canNotUse offNetworkWeakChange */ /** * 取消用户录屏事件的监听函数 - * + * * @canNotUse offScreenRecordingStateChanged */ /** * 取消监听被动断开实时语音通话事件 - * + * * @canNotUse offVoIPChatInterrupted */ /** * 取消监听实时语音通话成员在线状态变化事件 - * + * * @canNotUse offVoIPChatMembersChanged */ /** * 取消监听实时语音通话成员通话状态变化事件 - * + * * @canNotUse offVoIPChatSpeakersChanged */ /** * 取消监听房间状态变化事件 - * + * * @canNotUse offVoIPChatStateChanged */ /** * 取消监听实时语音通话成员视频状态变化事件 - * + * * @canNotUse offVoIPVideoMembersChanged */ /** * 监听音频因为受到系统占用而被中断开始事件 - * + * * @canNotUse onAudioInterruptionBegin */ /** * 监听音频中断结束事件 - * + * * @canNotUse onAudioInterruptionEnd */ /** * 监听蓝牙低功耗的最大传输单元变化事件 - * + * * @canNotUse onBLEMTUChange */ /** * 监听当前外围设备被连接或断开连接事件 - * + * * @canNotUse onBLEPeripheralConnectionStateChanged */ /** * 监听音乐暂停 - * + * * @canNotUse onBackgroundAudioPause */ /** * 监听音乐播放 - * + * * @canNotUse onBackgroundAudioPlay */ /** * 监听音乐停止 - * + * * @canNotUse onBackgroundAudioStop */ /** * 收到 backgroundFetch 数据时的回调 - * + * * @canNotUse onBackgroundFetchData */ /** * 监听 iBeacon 服务状态变化事件,仅能注册一个监听 - * + * * @canNotUse onBeaconServiceChange */ /** * 监听 iBeacon 设备更新事件,仅能注册一个监听 - * + * * @canNotUse onBeaconUpdate */ -/** - * 监听用户点击右上角菜单的「复制链接」按钮时触发的事件 - * +/** + * 监听用户点击右上角菜单的「复制链接」按钮时触发的事件 + * * @canNotUse onCopyUrl -*/ + */ /** * 监听接收 NFC 设备消息事件,仅能注册一个监听 - * + * * @canNotUse onHCEMessage */ /** * 监听 mDNS 服务停止搜索的事件 - * + * * @canNotUse onLocalServiceDiscoveryStop */ /** * 监听 mDNS 服务发现的事件 - * + * * @canNotUse onLocalServiceFound */ /** * 监听 mDNS 服务离开的事件 - * + * * @canNotUse onLocalServiceLost */ /** * 监听 mDNS 服务解析失败的事件 - * + * * @canNotUse onLocalServiceResolveFail */ /** * 监听隐私接口需要用户授权事件。 - * + * * @canNotUse onNeedPrivacyAuthorization */ @@ -1660,121 +1660,121 @@ * - 出现三次 rtt 超过 400 * - 出现三次以上的丢包 * > 弱网事件通知规则是: 弱网状态变化时立即通知, 状态不变时 30s 内最多通知一次。 - * + * * @canNotUse onNetworkWeakChange */ /** * 监听用户录屏事件 - * + * * @canNotUse onScreenRecordingStateChanged */ /** * 监听 WebSocket 连接关闭事件 - * + * * @canNotUse onSocketClose */ /** * 监听 WebSocket 错误事件 - * + * * @canNotUse onSocketError */ /** * 监听 WebSocket 接受到服务器的消息事件 - * + * * @canNotUse onSocketMessage */ /** * 监听 WebSocket 连接打开事件 - * + * * @canNotUse onSocketOpen */ /** * 监听被动断开实时语音通话事件 - * + * * @canNotUse onVoIPChatInterrupted */ /** * 监听实时语音通话成员在线状态变化事件 - * + * * @canNotUse onVoIPChatMembersChanged */ /** * 监听实时语音通话成员通话状态变化事件 - * + * * @canNotUse onVoIPChatSpeakersChanged */ /** * 监听房间状态变化事件 - * + * * @canNotUse onVoIPChatStateChanged */ /** * 监听实时语音通话成员视频状态变化事件 - * + * * @canNotUse onVoIPVideoMembersChanged */ /** * 打开微信支付分小程序,引导用户查看订单详情 - * + * * @canNotUse openBusinessView */ /** * 查看微信卡包中的卡券 - * + * * @canNotUse openCard */ /** * 打开视频号视频 - * + * * @canNotUse openChannelsActivity */ /** * 打开视频号活动页 - * + * * @canNotUse openChannelsEvent */ /** * 打开视频号直播 - * + * * @canNotUse openChannelsLive */ /** * 微信客服 - * + * * @canNotUse openCustomerServiceChat */ /** * 打开半屏小程序 - * + * * @canNotUse openEmbeddedMiniProgram */ /** * 跳转至隐私协议页面 - * + * * @canNotUse openPrivacyContract */ /** * 打开手Q说说发表界面 - * + * * @canNotUse openQzonePublish */ @@ -1786,525 +1786,525 @@ /** * 暂停播放音乐 - * + * * @canNotUse pauseBackgroundAudio */ /** * 暂停正在播放的语音 - * + * * @canNotUse pauseVoice */ /** * 使用后台播放器播放音乐 - * + * * @canNotUse playBackgroundAudio */ /** * 开始播放语音 - * + * * @canNotUse playVoice */ /** * 该接口仅在小程序插件中可调用,调用接口获得插件用户标志凭证(code) - * + * * @canNotUse pluginLogin */ /** * 为视图层预加载媒体资源文件 - * + * * @canNotUse preloadAssets */ /** * 预加载下个页面所需要的 Skyline 运行环境 - * + * * @canNotUse preloadSkylineView */ /** * 预加载下个页面的 WebView - * + * * @canNotUse preloadWebview */ /** * 事件上报 - * + * * @canNotUse reportEvent */ /** * 自定义业务数据监控上报接口 - * + * * @canNotUse reportMonitor */ /** * 程序测速上报 - * + * * @canNotUse reportPerformance */ /** * 请求用户授权与设备(组)间进行音视频通话 - * + * * @canNotUse requestDeviceVoIP */ /** * 创建自定义版交易组件订单,并发起支付 - * + * * @canNotUse requestOrderPayment */ /** * 订阅设备消息接口,调用后弹出授权框,用户同意后会允许开发者给用户发送订阅模版消息 - * + * * @canNotUse requestSubscribeDeviceMessage */ /** * 请求订阅消息 - * + * * @canNotUse requestSubscribeMessage */ /** * 模拟隐私接口调用,并触发隐私弹窗逻辑 - * + * * @canNotUse requirePrivacyAuthorize */ /** * 预约视频号直播 - * + * * @canNotUse reserveChannelsLive */ /** * 根据 URL 销毁存在内存中的数据 - * + * * @canNotUse revokeBufferURL */ /** * 保存文件系统的文件到用户磁盘,仅在 PC 端支持 - * + * * @canNotUse saveFileToDisk */ /** * 控制音乐播放进度 - * + * * @canNotUse seekBackgroundAudio */ /** * 发送 NFC 消息 - * + * * @canNotUse sendHCEMessage */ /** * 拉起手机发送短信界面 - * + * * @canNotUse sendSms */ /** * 通过 WebSocket 连接发送数据 - * + * * @canNotUse sendSocketMessage */ /** * 动态设置窗口的背景色 - * + * * @canNotUse setBackgroundColor */ /** * 动态设置下拉背景字体、loading 图的样式 - * + * * @canNotUse setBackgroundTextStyle */ /** * 开启双人通话 - * + * * @canNotUse setEnable1v1Chat */ /** * 设置 InnerAudioContext项 - * + * * @canNotUse setInnerAudioOption */ /** * 百度智能小程序可接入百度搜索和百度 App,setPageInfo 负责为小程序设置各类页面基础信息,包括标题、关键字、页面描述以及图片信息、视频信息等。 - * + * * @canNotUse setPageInfo */ /** * 设置截屏/录屏时屏幕表现 - * + * * @canNotUse setVisualEffectOnCapture */ /** * 设置 wifiList 中 AP 的相关信息 - * + * * @canNotUse setWifiList */ /** * 设置窗口大小,该接口仅适用于 PC 平台,使用细则请参见指南 - * + * * @canNotUse setWindowSize */ -/** - * 转发文件到聊天 - * +/** + * 转发文件到聊天 + * * @canNotUse shareFileMessage -*/ + */ /** * 分享数据到微信运动 - * + * * @canNotUse shareToWeRun */ -/** - * 转发视频到聊天 - * +/** + * 转发视频到聊天 + * * @canNotUse shareVideoMessage -*/ + */ /** * 拉取h5领取红包封面页。 - * + * * @canNotUse showRedPackage */ -/** - * 打开分享图片弹窗,可以将图片发送给朋友、收藏或下载 - * +/** + * 打开分享图片弹窗,可以将图片发送给朋友、收藏或下载 + * * @canNotUse showShareImageMenu -*/ + */ /** * 开始搜索附近的 iBeacon 设备 - * + * * @canNotUse startBeaconDiscovery */ /** * 开始人脸识别认证 - * + * * @canNotUse startFacialRecognitionVerify */ /** * 开始人脸识别认证并上传认证视频 - * + * * @canNotUse startFacialRecognitionVerifyAndUploadVideo */ /** * 初始化 NFC 模块 - * + * * @canNotUse startHCE */ /** * 停止搜索 mDNS 服务 - * + * * @canNotUse startLocalServiceDiscovery */ /** * 开始录音 - * + * * @canNotUse startRecord */ /** * 停止播放音乐 - * + * * @canNotUse stopBackgroundAudio */ /** * 停止搜索附近的 iBeacon 设备 - * + * * @canNotUse stopBeaconDiscovery */ /** * 停止人脸识别 - * + * * @canNotUse stopFaceDetect */ /** * 关闭 NFC 模块 - * + * * @canNotUse stopHCE */ /** * 停止搜索 mDNS 服务 - * + * * @canNotUse stopLocalServiceDiscovery */ /** * 停止录音 - * + * * @canNotUse stopRecord */ /** * 结束播放语音 - * + * * @canNotUse stopVoice */ /** * 订阅视频画面成员 - * + * * @canNotUse subscribeVoIPVideoMembers */ /** * 此接口是用于发起支付的 API - * + * * @canNotUse tradePay */ -/** - * 更新转发属性 - * +/** + * 更新转发属性 + * * @canNotUse updateShareMenu -*/ + */ /** * 更新实时语音静音设置 - * + * * @canNotUse updateVoIPChatMuteConfig */ /** * 更新客户端版本 - * + * * @canNotUse updateWeChatApp */ /** * 仅小程序插件中能调用该接口 - * + * * @canNotUse authorizeForMiniProgram */ /** * 云开发 SDK 实例 - * + * * @canNotUse cloud */ /** * 压缩视频接口 - * + * * @canNotUse compressVideo */ /** * 创建插屏广告组件 - * + * * @canNotUse createInterstitialAd */ /** * 关闭小程序页面返回询问对话框 - * + * * @canNotUse disableAlertBeforeUnload */ /** * 开启小程序页面返回询问对话框 - * + * * @canNotUse enableAlertBeforeUnload */ /** * 获取当前帐号信息 - * + * * @canNotUse getAccountInfoSync */ /** * 拉取 backgroundFetch 客户端缓存数据 - * + * * @canNotUse getBackgroundFetchData */ /** * canvas 组件的绘图上下文 - * + * * @canNotUse getExptInfoSync */ /** * 获取日志管理器对象 - * + * * @canNotUse getLogManager */ /** * 程序测速上报 - * + * * @canNotUse getPerformance */ /** * 获取实时日志管理器对象 - * + * * @canNotUse getRealtimeLogManager */ -/** - * 获取转发详细信息 - * +/** + * 获取转发详细信息 + * * @canNotUse getShareInfo -*/ + */ /** * 获取全局唯一的版本更新管理器 - * + * * @canNotUse getUpdateManager */ /** * 隐藏返回首页按钮 - * + * * @canNotUse hideHomeButton */ -/** - * 隐藏当前页面的转发按钮 - * +/** + * 隐藏当前页面的转发按钮 + * * @canNotUse hideShareMenu -*/ + */ /** * 取消监听内存不足告警事件 - * + * * @canNotUse offMemoryWarning */ /** * 监听内存不足告警事件 - * + * * @canNotUse onMemoryWarning */ /** * 打开视频号主页 - * + * * @canNotUse openChannelsUserProfile */ /** * 新开页面打开文档,支持格式 - * + * * @canNotUse openDocument */ /** * canvas 组件的绘图上下文 - * + * * @canNotUse reportAnalytics */ /** * 发送微信支付 - * + * * @canNotUse requestPayment */ /** * 拉取 backgroundFetch 客户端缓存数据 - * + * * @canNotUse setBackgroundFetchToken */ /** * 设置是否打开调试开关 - * + * * @canNotUse setEnableDebug */ /** * 动态设置置顶栏文字内容 - * + * * @canNotUse setTopBarText */ -/** - * 显示当前页面的转发按钮 - * +/** + * 显示当前页面的转发按钮 + * * @canNotUse showShareMenu -*/ + */ /** * 插屏广告组件类 - * + * * @canNotUse InterstitialAd */ /** * 日志管理器 - * + * * @canNotUse LogManager */ /** * 获取性能数据及创建性能监听器 - * + * * @canNotUse Performance */ /** * 实时日志管理器 - * + * * @canNotUse RealtimeLogManager */ /** * 给定标签的实时日志管理器 - * + * * @canNotUse RealtimeTagLogManager */ /** * UpdateManager更新管理类 - * + * * @canNotUse UpdateManager */ /** * 动画对象 - * + * * @canUse Animation - * @__class + * @__class * [export, step, matrix, matrix3d, rotate, rotate3d, rotateX, rotateY, rotateZ, scale,\ * scale3d, scaleX, scaleY, scaleZ, skew, skewX, skewY, translate, translate3d, translateX,\ * translateY, translateZ, opacity, backgroundColor, width, height, left, right, top, bottom] @@ -2312,7 +2312,7 @@ /** * 用户授权设置信息 - * + * * @canUse AuthSetting * @__class [scope[userInfo, userLocation, address, invoiceTitle, invoice,\ * werun, record, writePhotosAlbum, camera, bluetoothBackground]] @@ -2320,197 +2320,197 @@ /** * BackgroundAudioManager 实例 - * + * * @canUse BackgroundAudioManager - * @__class + * @__class * [play, pause, seek, stop, onCanplay, onWaiting, onError, onPlay, onPause, onSeeking,\ * onSeeked, onEnded, onStop, onTimeUpdate] */ /** * CameraContext 实例 - * + * * @canNotUse CameraContext */ /** * CanvasGradient对象 - * + * * @canUse CanvasGradient * @__class [addColorStop] */ /** * EditorContext 实例 - * + * * @canNotUse EditorContext */ /** * 文件管理器 - * + * * @canUse FileSystemManager - * @__class + * @__class * [access, accessSync, appendFile, appendFileSync, close, closeSync, copyFile, copyFileSync, fstat,\ * ftruncate, ftruncateSync, getFileInfo, mkdir, mkdirSync, open, openSync, read, readdir, readdirSync,\ * readFile, readFileSync, readSync, rename, renameSync, rmdir, rmdirSync, truncate, truncateSync] */ -/** +/** * Image实例 - * + * * @canUse Image * @__class [src, height, width, referrerPolicy, onerror, onload] */ /** * ImageData对象 - * + * * @canUse ImageData * @__class [width, height, data] */ /** * IntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见 - * + * * @canUse IntersectionObserver * @__class [disconnect, observe, relativeTo, relativeToViewport] */ /** * LivePlayerContext 实例 - * + * * @canNotUse LivePlayerContext */ /** * MapContext 实例 - * + * * @canNotUse MapContext */ /** * MediaQueryObserver 对象,用于监听页面 media query 状态的变化,如界面的长宽是不是在某个指定的范围内 - * + * * @canUse MediaQueryObserver * @__class [observe, disconnect] */ /** * NodesRef 对象,用于获取 WXML 节点信息的对象 - * + * * @canUse NodesRef * @__class [boundingClientRect, context, node, fields, scrollOffset] */ /** * Path2D - * + * * @canUse Path2D */ /** * 文件读取结果。 通过 FileSystemManager.readSync 接口返回 - * + * * @canNotUse ReadResult */ /** * 全局唯一的录音管理器 - * + * * @canNotUse RecorderManager */ /** * RenderingContext - * + * * @canUse RenderingContext */ /** * 增强 ScrollView 实例 - * + * * @canNotUse ScrollViewContext */ /** * WebSocket 任务 - * + * * @canUse SocketTask * @__class [send, close, onOpen, onClose, onError, onMessage] */ /** * 订阅消息设置 - * + * * @canNotUse SubscriptionsSetting */ /** * 用户信息 - * + * * @canUse UserInfo * @__class [nickName, avatarUrl] */ /** * VideoContext 实例 - * + * * @canUse VideoContext * @__class [pause, play, requestFullScreen, seek, stop] */ /** * Wifi 信息(native 返回) - * + * * @canNotUse WifiInfo */ /** * AudioBuffer 接口表示存在内存里的一段短小的音频资源 - * + * * @canNotUse AudioBuffer */ /** * 外围设备的服务端 - * + * * @canNotUse BLEPeripheralServer */ /** * CacheManager实例 - * + * * @canNotUse CacheManager */ /** * CameraContext.onCameraFrame() 返回的监听器 - * + * * @canNotUse CameraFrameListener */ /** * Color实例 - * + * * @canNotUse Color */ /** * 云开发 SDK 数据库实例 Taro.cloud.database() - * + * * @canNotUse DB */ /** * EntryList 对象 - * + * * @canNotUse EntryList */ /** * 页面间事件通信通道 - * + * * @canNotUse EventChannel */ @@ -2520,109 +2520,109 @@ /** * InferenceSession类 - * + * * @canNotUse InferenceSession */ /** * IsoDep 标签 - * + * * @canNotUse IsoDep */ /** * LivePusherContext 实例 - * - * @canNotUse LivePusherContext + * + * @canNotUse LivePusherContext */ /** * MediaAudioPlayer 实例 - * + * * @canNotUse MediaAudioPlayer */ /** * 创建音视频处理容器,最终可将容器中的轨道合成一个视频 - * + * * @canNotUse MediaContainer */ /** * 画面录制器 - * + * * @canNotUse MediaRecorder */ /** * MediaTrack 音频或视频轨道 - * + * * @canNotUse MediaTrack */ /** * MifareClassic 标签 - * + * * @canNotUse MifareClassic */ /** * MifareUltralight 标签 - * + * * @canNotUse MifareUltralight */ /** * NFCAdapter 实例 - * + * * @canNotUse NFCAdapter */ /** * Ndef 标签 - * + * * @canNotUse Ndef */ /** * NfcA 标签 - * + * * @canNotUse NfcA */ /** * NfcB 标签 - * + * * @canNotUse NfcB */ /** * NfcF 标签 - * + * * @canNotUse NfcF */ /** * NfcV 标签 - * + * * @canNotUse NfcV */ /** * 离屏 canvas 实例,可通过 Taro.createOffscreenCanvas 创建 - * + * * @canNotUse OffscreenCanvas */ /** * 单条性能数据 - * + * * @canNotUse PerformanceEntry */ /** * PerformanceObserver 对象,用于监听性能相关事件 - * + * * @canNotUse PerformanceObserver */ @@ -2634,25 +2634,25 @@ /** * 描述文件状态的对象 - * + * * @canNotUse Stats */ /** * 一个 TCP Socket 实例,默认使用 IPv4 协议 - * + * * @canNotUse TCPSocket */ /** * 一个 UDP Socket 实例,默认使用 IPv4 协议 - * + * * @canNotUse UDPSocket */ /** * 用户加密模块类 - * + * * @canNotUse UserCryptoManager */ @@ -2702,30 +2702,30 @@ /** * 视频解码器 - * + * * @canNotUse VideoDecoder */ /** * WebAudioContext 实例 - * + * * @canNotUse WebAudioContext */ /** * 一类音频处理模块 - * + * * @canNotUse WebAudioContextNode */ /** * Worker类 - * - * @canNotUse Worker + * + * @canNotUse Worker */ /** * 文件写入结果。 通过 FileSystemManager.writeSync 接口返回 - * + * * @canNotUse WriteResult - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts index 64cc4ba3a83e..8ea288a60f62 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/getExptInfoSync.ts @@ -1,6 +1,6 @@ /** * canvas 组件的绘图上下文 - * + * * @canUse getExptInfoSync * @null_implementation */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts index 81080ede9c06..d4a5615dbc8f 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/index.ts @@ -1,13 +1,13 @@ /** * 自定义业务数据监控上报接口 - * + * * @canNotUse reportMonitor */ export { reportMonitor } from '@tarojs/taro-h5' /** * 事件上报 - * + * * @canNotUse reportEvent */ export * from './getExptInfoSync' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts index 6b53070b5471..269c7d79a3b3 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/data-analysis/reportAnalytics.ts @@ -1,6 +1,6 @@ /** * canvas 组件的绘图上下文 - * + * * @canUse reportAnalytics * @null_implementation */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts index 9f449e86974f..2987f692cd0c 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accelerometer/startAccelerometer.ts @@ -20,12 +20,7 @@ export const startAccelerometer: typeof Taro.startAccelerometer = (options) => { console.error(res.errMsg) return reject(res) } - const { - interval = 'normal', - success, - fail, - complete - } = options || {} + const { interval = 'normal', success, fail, complete } = options || {} const handle = new MethodHandler({ name, success, fail, complete }) // @ts-ignore @@ -36,7 +31,7 @@ export const startAccelerometer: typeof Taro.startAccelerometer = (options) => { }, fail: (res: any) => { handle.fail(res, { resolve, reject }) - } + }, }) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts index fabb804ba783..71c2fb27183d 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/accessibility.ts @@ -1,6 +1,6 @@ /** * 检测是否开启视觉无障碍功能 - * + * * @canNotUse checkIsOpenAccessibility */ -export { checkIsOpenAccessibility } from '@tarojs/taro-h5' \ No newline at end of file +export { checkIsOpenAccessibility } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts index 05ddc74267db..e442b281a12d 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/battery.ts @@ -1,13 +1,13 @@ /** * Taro.getBatteryInfo 的同步版本 Note: 浏览器标准下不支持,其他实现方案不准确,不建议开发者使用 - * + * * @canNotUse getBatteryInfoSync */ export { getBatteryInfoSync } from '@tarojs/taro-h5' /** * 获取设备电量 - * + * * @canUse getBatteryInfo * @__success [isCharging, level] */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts index 0464e21960db..ffc74f77484e 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/closeBLEConnection.ts @@ -34,8 +34,8 @@ export const closeBLEConnection: typeof Taro.closeBLEConnection = (options) => { errMsg: getParameterError({ para: 'deviceId', correct: 'string', - wrong: deviceId - }) + wrong: deviceId, + }), }, { resolve, reject } ) @@ -48,13 +48,13 @@ export const closeBLEConnection: typeof Taro.closeBLEConnection = (options) => { /** 错误信息 */ errMsg: '', /** 错误码 */ - errCode: res[0] + errCode: res[0], } handle.success(result, { resolve, reject }) }, fail: (err: any) => { handle.fail(err, { resolve, reject }) - } + }, }) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts index a6a75a6a53d1..dec72be40bb4 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/createBLEConnection.ts @@ -34,14 +34,13 @@ export const createBLEConnection: typeof Taro.createBLEConnection = (options) => errMsg: getParameterError({ para: 'deviceId', correct: 'string', - wrong: deviceId - }) + wrong: deviceId, + }), }, { resolve, reject } ) } - native.createBLEConnection({ deviceId: deviceId, timeout: timeout, @@ -50,13 +49,13 @@ export const createBLEConnection: typeof Taro.createBLEConnection = (options) => /** 错误信息 */ errMsg: '', /** 错误码 */ - errCode: res[0] + errCode: res[0], } handle.success(result, { resolve, reject }) }, fail: (err: any) => { handle.fail(err, { resolve, reject }) - } + }, }) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts index 44957ba66eef..27c51f7e820e 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceCharacteristics.ts @@ -36,8 +36,8 @@ export const getBLEDeviceCharacteristics: typeof Taro.getBLEDeviceCharacteristic errMsg: getParameterError({ para: 'deviceId', correct: 'string', - wrong: deviceId - }) + wrong: deviceId, + }), }, { resolve, reject } ) @@ -49,8 +49,8 @@ export const getBLEDeviceCharacteristics: typeof Taro.getBLEDeviceCharacteristic errMsg: getParameterError({ para: 'serviceId', correct: 'string', - wrong: serviceId - }) + wrong: serviceId, + }), }, { resolve, reject } ) @@ -64,7 +64,7 @@ export const getBLEDeviceCharacteristics: typeof Taro.getBLEDeviceCharacteristic }, fail: (err: any) => { handle.fail(err, { resolve, reject }) - } + }, }) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts index fa77b43d37f6..31a4921c045f 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceRSSI.ts @@ -35,8 +35,8 @@ export const getBLEDeviceRSSI: typeof Taro.getBLEDeviceRSSI = (options) => { errMsg: getParameterError({ para: 'deviceId', correct: 'string', - wrong: deviceId - }) + wrong: deviceId, + }), }, { resolve, reject } ) @@ -49,7 +49,7 @@ export const getBLEDeviceRSSI: typeof Taro.getBLEDeviceRSSI = (options) => { }, fail: (err: any) => { handle.fail(err, { resolve, reject }) - } + }, }) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts index 97087ff2ba08..52d822b2e106 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/getBLEDeviceServices.ts @@ -36,8 +36,8 @@ export const getBLEDeviceServices: typeof Taro.getBLEDeviceServices = (options) errMsg: getParameterError({ para: 'deviceId', correct: 'string', - wrong: deviceId - }) + wrong: deviceId, + }), }, { resolve, reject } ) @@ -50,7 +50,7 @@ export const getBLEDeviceServices: typeof Taro.getBLEDeviceServices = (options) }, fail: (err: any) => { handle.fail(err, { resolve, reject }) - } + }, }) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts index ccac7d4ae365..f4bf10b9610a 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/index.ts @@ -1,34 +1,34 @@ /** * 监听蓝牙低功耗的最大传输单元变化事件 - * + * * @canNotUse onBLEMTUChange */ export { onBLEMTUChange } from '@tarojs/taro-h5' /** * 取消监听蓝牙低功耗的最大传输单元变化事件 - * + * * @canNotUse offBLEMTUChange */ export { offBLEMTUChange } from '@tarojs/taro-h5' /** * 取消监听蓝牙低功耗连接状态的改变事件 - * + * * @canNotUse offBLEConnectionStateChange */ export { offBLEConnectionStateChange } from '@tarojs/taro-h5' /** * 取消监听蓝牙低功耗设备的特征值变化事件 - * + * * @canNotUse offBLECharacteristicValueChange */ export { offBLECharacteristicValueChange } from '@tarojs/taro-h5' /** * 获取蓝牙低功耗的最大传输单元 - * + * * @canNotUse getBLEMTU */ export * from './closeBLEConnection' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts index 8775729fddb3..965107c545b0 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/notifyBLECharacteristicValueChange.ts @@ -23,7 +23,7 @@ export const notifyBLECharacteristicValueChange: typeof Taro.notifyBLECharacteri } const { characteristicId, deviceId, serviceId, state, success, fail, complete } = options as Exclude< typeof options, - undefined + undefined > const handle = new MethodHandler({ name, success, fail, complete }) @@ -35,8 +35,8 @@ export const notifyBLECharacteristicValueChange: typeof Taro.notifyBLECharacteri errMsg: getParameterError({ para: 'characteristicId', correct: 'string', - wrong: characteristicId - }) + wrong: characteristicId, + }), }, { resolve, reject } ) @@ -48,8 +48,8 @@ export const notifyBLECharacteristicValueChange: typeof Taro.notifyBLECharacteri errMsg: getParameterError({ para: 'deviceId', correct: 'string', - wrong: deviceId - }) + wrong: deviceId, + }), }, { resolve, reject } ) @@ -61,8 +61,8 @@ export const notifyBLECharacteristicValueChange: typeof Taro.notifyBLECharacteri errMsg: getParameterError({ para: 'serviceId', correct: 'string', - wrong: serviceId - }) + wrong: serviceId, + }), }, { resolve, reject } ) @@ -74,8 +74,8 @@ export const notifyBLECharacteristicValueChange: typeof Taro.notifyBLECharacteri errMsg: getParameterError({ para: 'state', correct: 'boolean', - wrong: state - }) + wrong: state, + }), }, { resolve, reject } ) @@ -91,7 +91,7 @@ export const notifyBLECharacteristicValueChange: typeof Taro.notifyBLECharacteri }, fail: (err: any) => { handle.fail(err, { resolve, reject }) - } + }, }) }) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts index b364f4fdab10..bf185c5d7cdc 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/readBLECharacteristicValue.ts @@ -23,7 +23,7 @@ export const readBLECharacteristicValue: typeof Taro.readBLECharacteristicValue } const { characteristicId, deviceId, serviceId, success, fail, complete } = options as Exclude< typeof options, - undefined + undefined > const handle = new MethodHandler({ name, success, fail, complete }) diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts index add7769b65ba..475c243b0b79 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-ble/writeBLECharacteristicValue.ts @@ -23,7 +23,7 @@ export const writeBLECharacteristicValue: typeof Taro.writeBLECharacteristicValu } const { characteristicId, deviceId, serviceId, value, success, fail, complete } = options as Exclude< typeof options, - undefined + undefined > const handle = new MethodHandler<{ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts index 591c67b45aae..4f4f31c0fdcc 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth-peripheral.ts @@ -1,26 +1,26 @@ /** * 监听当前外围设备被连接或断开连接事件 - * + * * @canNotUse onBLEPeripheralConnectionStateChanged */ export { onBLEPeripheralConnectionStateChanged } from '@tarojs/taro-h5' /** * 取消监听当前外围设备被连接或断开连接事件 - * + * * @canNotUse offBLEPeripheralConnectionStateChanged */ export { offBLEPeripheralConnectionStateChanged } from '@tarojs/taro-h5' /** * 建立本地作为蓝牙低功耗外围设备的服务端,可创建多个 - * + * * @canNotUse createBLEPeripheralServer */ export { createBLEPeripheralServer } from '@tarojs/taro-h5' /** * 外围设备的服务端 - * + * * @canNotUse BLEPeripheralServer */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts index d712cae3b3d1..b0476bba44a2 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/index.ts @@ -1,13 +1,13 @@ /** * 蓝牙配对接口 - * + * * @canNotUse makeBluetoothPair */ export { makeBluetoothPair } from '@tarojs/taro-h5' /** * 查询蓝牙设备是否配对 - * + * * @canNotUse isBluetoothDevicePaired */ export * from './closeBluetoothAdapter' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts index c1c5122b6722..e590b44d09a4 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/offBluetoothDeviceFound.ts @@ -19,7 +19,6 @@ export const offBluetoothDeviceFound: typeof Taro.offBluetoothDeviceFound = (cal return } - native.offBluetoothDeviceFound((res: any) => { const result: Taro.onBluetoothDeviceFound.CallbackResult = { /** 新搜索到的设备列表 */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts index 75a25864af18..fa6423191448 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothAdapterStateChange.ts @@ -20,6 +20,5 @@ export const onBluetoothAdapterStateChange: typeof Taro.onBluetoothAdapterStateC return } - native.onBluetoothAdapterStateChange(callback) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts index 068166753b6d..c17e883bb73b 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/onBluetoothDeviceFound.ts @@ -20,7 +20,6 @@ export const onBluetoothDeviceFound: typeof Taro.onBluetoothDeviceFound = (callb return } - native.onBluetoothDeviceFound((res: any) => { const result: Taro.onBluetoothDeviceFound.CallbackResult = { /** 新搜索到的设备列表 */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts index 79fb44dd5b03..ef5f654decfc 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/startBluetoothDevicesDiscovery.ts @@ -22,7 +22,7 @@ export const startBluetoothDevicesDiscovery: typeof Taro.startBluetoothDevicesDi } const { allowDuplicatesKey, interval, services, success, fail, complete } = options as Exclude< typeof options, - undefined + undefined > const handle = new MethodHandler<{ @@ -30,7 +30,6 @@ export const startBluetoothDevicesDiscovery: typeof Taro.startBluetoothDevicesDi }>({ name, success, fail, complete }) return new Promise((resolve, reject) => { - native.startBluetoothDevicesDiscovery({ allowDuplicatesKey: allowDuplicatesKey, interval: interval, diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts index 9ee233b4e853..40d81f4cf700 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/bluetooth/stopBluetoothDevicesDiscovery.ts @@ -23,7 +23,6 @@ export const stopBluetoothDevicesDiscovery: typeof Taro.stopBluetoothDevicesDisc }>({ name, success, fail, complete }) return new Promise((resolve, reject) => { - native.stopBluetoothDevicesDiscovery({ success: (res: any) => { const result: TaroGeneral.BluetoothError = { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts index 7d232c4b75f4..3d1c39dcdad9 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/calendar.ts @@ -1,6 +1,6 @@ /** * 向系统日历添加重复事件 - * + * * @canUse addPhoneRepeatCalendar * @__object [title, startTime, allDay, description, location, endTime, alarm, alarmOffset, repeatInterval, repeatEndTime] */ @@ -8,7 +8,7 @@ export { addPhoneRepeatCalendar } from '@tarojs/taro-h5' /** * 向系统日历添加事件 - * + * * @canUse addPhoneCalendar * @__object [title, startTime, allDay, description, location, endTime, alarm, alarmOffset] */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts index 13130e977f96..0da0704b8a4d 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/clipboard.ts @@ -6,7 +6,7 @@ */ /** * 设置系统剪贴板的内容 - * + * * @canUse setClipboardData * @__object [data] */ @@ -14,7 +14,7 @@ export { setClipboardData } from '@tarojs/taro-h5' /** * 获取系统剪贴板的内容 - * + * * @canUse getClipboardData * @__success [data] */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts index 542d203a6e43..a7ba004648b7 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/compass/onCompassChange.ts @@ -10,7 +10,7 @@ import native from '../../NativeApi' * @canUse onCompassChange * @__callback [accuracy, direction] */ -export const onCompassChange: typeof Taro.onCompassChange = callback => { +export const onCompassChange: typeof Taro.onCompassChange = (callback) => { const name = 'onCompassChange' // callback must be an Function const isFunction = shouldBeFunction(callback) @@ -23,12 +23,12 @@ export const onCompassChange: typeof Taro.onCompassChange = callback => { try { if (!taroCallbackMap.has(callback)) { // eslint-disable-next-line no-inner-declarations - function newCallback (res: any) { + function newCallback(res: any) { const result: Taro.onCompassChange.OnCompassChangeCallbackResult = { /** 精度 */ accuracy: res.accuracy === 3 ? 'high' : 'unreliable', /** 面对的方向度数 */ - direction: res.direction + direction: res.direction, } callback(result) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts index 977e9126e77b..bf8151ffc0c4 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/contact/index.ts @@ -1,6 +1,6 @@ /** * 添加手机通讯录联系人 - * + * * @canNotUse chooseContact */ export * from './addPhoneContact' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts index e12bb7df2a82..d5c6d3df206d 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/crypto.ts @@ -1,6 +1,6 @@ /** * 获取密码学安全随机数 - * + * * @canNotUse getRandomValues */ -export { getRandomValues } from '@tarojs/taro-h5' \ No newline at end of file +export { getRandomValues } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts index 6d07027a3eed..43f2f8eda579 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/index.ts @@ -1,6 +1,6 @@ /** * 取消监听陀螺仪数据变化事件。 - * + * * @canNotUse offGyroscopeChange */ export * from './onGyroscopeChange' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts index 71fcffc317e8..dda31f18efe8 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/gyroscope/onGyroscopeChange.ts @@ -4,7 +4,7 @@ import native from '../../NativeApi' /** * 监听陀螺仪数据变化事件。频率根据 Taro.startGyroscope() 的 interval 参数。可以使用 Taro.stopGyroscope() 停止监听。 - * + * * @canUse onGyroscopeChange * @__callback [x, y, z] */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts index 5a975d13fb1a..87e2c261bb82 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/iBeacon.ts @@ -1,53 +1,53 @@ // 蓝牙-信标(Beacon) /** * 取消监听 iBeacon 设备更新事件 - * + * * @canNotUse offBeaconUpdate */ export { offBeaconUpdate } from '@tarojs/taro-h5' /** * 取消监听 iBeacon 服务状态变化事件 - * + * * @canNotUse offBeaconServiceChange */ export { offBeaconServiceChange } from '@tarojs/taro-h5' /** * 获取所有已搜索到的 iBeacon 设备 - * + * * @canNotUse getBeacons */ export { getBeacons } from '@tarojs/taro-h5' /** * 监听 iBeacon 服务状态变化事件,仅能注册一个监听 - * + * * @canNotUse onBeaconServiceChange */ export { onBeaconServiceChange } from '@tarojs/taro-h5' /** * 监听 iBeacon 设备更新事件,仅能注册一个监听 - * + * * @canNotUse onBeaconUpdate */ export { onBeaconUpdate } from '@tarojs/taro-h5' /** * 开始搜索附近的 iBeacon 设备 - * + * * @canNotUse startBeaconDiscovery */ export { startBeaconDiscovery } from '@tarojs/taro-h5' /** * 停止搜索附近的 iBeacon 设备 - * + * * @canNotUse stopBeaconDiscovery */ export { stopBeaconDiscovery } from '@tarojs/taro-h5' /** * @canNotUse IBeaconInfo - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts index 92aa77d865f7..8766f8b4558c 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/offMemoryWarning.ts @@ -4,7 +4,7 @@ import native from '../../NativeApi' /** * 取消监听内存不足告警事件 - * + * * @canUse offMemoryWarning * @null_implementation */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts index 3931b353797c..9f0b7022a212 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/memory/onMemoryWarning.ts @@ -2,7 +2,7 @@ import Taro from '@tarojs/taro' /** * 监听内存不足告警事件 - * + * * @canUse onMemoryWarning * @null_implementation */ @@ -12,7 +12,7 @@ export const onMemoryWarning: typeof Taro.onMemoryWarning = (callback) => { // @ts-ignore native.onMemoryWarning((res: any) => { const ret: Taro.onMemoryWarning.CallbackResult = { - level: res.level + level: res.level, } callback(ret) }) diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts index 6e722bfb67fa..dc84cb5a1b32 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/motion.ts @@ -1,13 +1,13 @@ /** * 停止监听设备方向的变化。 - * + * * @canUse stopDeviceMotionListening */ export { stopDeviceMotionListening } from '@tarojs/taro-h5' /** * 开始监听设备方向的变化。 - * + * * @canUse startDeviceMotionListening * @__object [interval[game, ui, normal]] */ @@ -15,7 +15,7 @@ export { startDeviceMotionListening } from '@tarojs/taro-h5' /** * 监听设备方向变化事件。 - * + * * @canUse onDeviceMotionChange * @__callback [alpha, beta, gamma] */ @@ -23,7 +23,7 @@ export { onDeviceMotionChange } from '@tarojs/taro-h5' /** * 取消监听设备方向变化事件,参数为空,则取消所有的事件监听。 - * + * * @canUse offDeviceMotionChange */ export { offDeviceMotionChange } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts index 537f7698d260..a8408e7e1a38 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/network.ts @@ -1,8 +1,8 @@ /** * 获取网络类型 - * + * * @canUse getNetworkType - * @__success [networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] + * @__success [networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] */ export { getNetworkType } from '@tarojs/taro-h5' @@ -12,14 +12,14 @@ export { getNetworkType } from '@tarojs/taro-h5' * - 出现三次 rtt 超过 400 * - 出现三次以上的丢包 * > 弱网事件通知规则是: 弱网状态变化时立即通知, 状态不变时 30s 内最多通知一次。 - * + * * @canNotUse onNetworkWeakChange */ export { onNetworkWeakChange } from '@tarojs/taro-h5' /** * 监听网络状态变化 - * + * * @canUse onNetworkStatusChange * @__success [isConnected, networkType[wifi, 2g, 3g, 4g, 5g, unknown, none]] */ @@ -27,21 +27,21 @@ export { onNetworkStatusChange } from '@tarojs/taro-h5' /** * 取消监听弱网状态变化事件 - * + * * @canNotUse offNetworkWeakChange */ export { offNetworkWeakChange } from '@tarojs/taro-h5' /** * 取消监听网络状态变化事件,参数为空,则取消所有的事件监听 - * + * * @canUse offNetworkStatusChange */ export { offNetworkStatusChange } from '@tarojs/taro-h5' /** * 获取局域网IP地址 - * + * * @canNotUse getLocalIPAddress */ -export { getLocalIPAddress } from '@tarojs/taro-h5' \ No newline at end of file +export { getLocalIPAddress } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts index b9a3f1bd51a9..0a106de66bd3 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/nfc.ts @@ -1,102 +1,102 @@ /** * 关闭 NFC 模块 - * + * * @canNotUse stopHCE */ export { stopHCE } from '@tarojs/taro-h5' /** * 初始化 NFC 模块 - * + * * @canNotUse startHCE */ export { startHCE } from '@tarojs/taro-h5' /** * 发送 NFC 消息 - * + * * @canNotUse sendHCEMessage */ export { sendHCEMessage } from '@tarojs/taro-h5' /** * 监听接收 NFC 设备消息事件,仅能注册一个监听 - * + * * @canNotUse onHCEMessage */ export { onHCEMessage } from '@tarojs/taro-h5' /** * 接收 NFC 设备消息事件,取消事件监听 - * + * * @canNotUse offHCEMessage */ export { offHCEMessage } from '@tarojs/taro-h5' /** * 获取 NFC 实例 - * + * * @canNotUse getNFCAdapter */ export { getNFCAdapter } from '@tarojs/taro-h5' /** * 判断当前设备是否支持 HCE 能力 - * + * * @canNotUse getHCEState */ export { getHCEState } from '@tarojs/taro-h5' /** * IsoDep 标签 - * + * * @canNotUse IsoDep */ /** * MifareClassic 标签 - * + * * @canNotUse MifareClassic */ /** * MifareUltralight 标签 - * + * * @canNotUse MifareUltralight */ /** * Ndef 标签 - * + * * @canNotUse Ndef */ /** * NfcA 标签 - * + * * @canNotUse NfcA */ /** * NFCAdapter 实例 - * + * * @canNotUse NFCAdapter */ /** * NfcB 标签 - * + * * @canNotUse NfcB */ /** * NfcF 标签 - * + * * @canNotUse NfcF */ /** * NfcV 标签 - * + * * @canNotUse NfcV - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts index 364c5c0f4f00..72c1bad38e53 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/scan.ts @@ -19,13 +19,7 @@ export const scanCode: typeof Taro.scanCode = (options) => { const res = { errMsg: `${name}:fail invalid params` } return Promise.reject(res) } - const { - onlyFromCamera = false, - scanType = [], - success, - fail, - complete - } = options || {} + const { onlyFromCamera = false, scanType = [], success, fail, complete } = options || {} const handle = new MethodHandler({ name, success, fail, complete }) return new Promise((resolve, reject) => { diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/onUserCaptureScreen.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/onUserCaptureScreen.ts index 660485aca13c..eb240c2f4e13 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/onUserCaptureScreen.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/screen/onUserCaptureScreen.ts @@ -23,9 +23,9 @@ export const onUserCaptureScreen: typeof Taro.onUserCaptureScreen = (callback) = try { if (!taroCallbackMap.has(callback)) { // eslint-disable-next-line no-inner-declarations - function newCallback (res: any) { + function newCallback(res: any) { const result: TaroGeneral.CallbackResult = { - errMsg: res === 'ohos not support path' ? `${name}:ok` : JSON.stringify(res) + errMsg: res === 'ohos not support path' ? `${name}:ok` : JSON.stringify(res), } callback(result) } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts index aff50ff54889..52d95a12fdd1 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/sms.ts @@ -1,7 +1,7 @@ // 短信 /** * 拉起手机发送短信界面 - * + * * @canNotUse sendSms */ -export { sendSms } from '@tarojs/taro-h5' \ No newline at end of file +export { sendSms } from '@tarojs/taro-h5' diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts index 82b29da21fae..0b56be887d9f 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/device/wifi/index.ts @@ -1,6 +1,6 @@ /** * 设置 wifiList 中 AP 的相关信息 - * + * * @canNotUse setWifiList */ export * from './connectWifi' @@ -18,7 +18,7 @@ export { setWifiList } from '@tarojs/taro-h5' /** * Wifi 信息(native 返回) - * + * * @canUse WifiInfo * @__class [SSID, BSSID, secure, signalStrength, frequency] - */ \ No newline at end of file + */ diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts index 2bd93e5217dd..8d233a7a568b 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/framework/index.ts @@ -1,6 +1,6 @@ import Taro from '@tarojs/api' -export const getApp: typeof Taro.getApp = function () { +export const getApp: typeof Taro.getApp = function () { return Taro.getCurrentInstance().app as unknown as T } @@ -8,6 +8,3 @@ export { getCurrentPages } from '@tarojs/router' // 自定义组件 export const getCurrentInstance = Taro.getCurrentInstance - - - diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeAContextApi.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeAContextApi.ts index 1529b400fc22..170450163951 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeAContextApi.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeAContextApi.ts @@ -5,199 +5,195 @@ import native from '../NativeApi' export class NativeInnerAudioContext implements Taro.InnerAudioContext { private objectId: number - constructor () { + constructor() { this.objectId = native.createInnerAudioContext() } - get volume () { + get volume() { return native.getAudioContextVolume({}, this.objectId) } - set volume (option: any) { + set volume(option: any) { native.setAudioContextVolume(option, this.objectId) } - get startTime () { + get startTime() { return native.getAudioContextStartTime({}, this.objectId) } - set startTime (option: any) { + set startTime(option: any) { native.setAudioContextStartTime(option, this.objectId) } - get playbackRate () { + get playbackRate() { return native.getAudioContextPlaybackRate({}, this.objectId) } - set playbackRate (option: any) { + set playbackRate(option: any) { native.setAudioContextPlaybackRate(option, this.objectId) } - get paused () { + get paused() { return native.getAudioContextPaused({}, this.objectId) } - set paused (option: any) { + set paused(option: any) { native.setAudioContextPaused(option, this.objectId) } - get obeyMuteSwitch () { + get obeyMuteSwitch() { return native.getAudioContextObeyMuteSwitch({}, this.objectId) } - set obeyMuteSwitch (option: any) { + set obeyMuteSwitch(option: any) { native.setAudioContextObeyMuteSwitch(option, this.objectId) } - get loop () { + get loop() { return native.getAudioContextLoop({}, this.objectId) } - set loop (option: any) { + set loop(option: any) { native.setAudioContextLoop(option, this.objectId) } - get duration () { + get duration() { return native.getAudioContextDuration({}, this.objectId) } - set duration (option: any) { + set duration(option: any) { native.setAudioContextDuration(option, this.objectId) } - get currentTime () { + get currentTime() { return native.getAudioContextCurrentTime({}, this.objectId) } - set currentTime (option: any) { + set currentTime(option: any) { native.setAudioContextCurrentTime(option, this.objectId) } - get buffered () { + get buffered() { return native.getAudioContextBuffered({}, this.objectId) } - set buffered (option: any) { + set buffered(option: any) { native.setAudioContextBuffered(option, this.objectId) } - get autoplay () { + get autoplay() { return native.getAudioContextAutoplay({}, this.objectId) } - set autoplay (option: any) { + set autoplay(option: any) { native.setAudioContextAutoplay(option, this.objectId) } - get src () { + get src() { return native.getAudioContextSrc({}, this.objectId) } - set src (option: any) { + set src(option: any) { native.setAudioContextSrc(option, this.objectId) } - static createInnerAudioContext () { + static createInnerAudioContext() { return new NativeInnerAudioContext() } - stop (): void { + stop(): void { native.innerAudioStop({}, this.objectId) } - play (): void { + play(): void { native.innerAudioPlay({}, this.objectId) } - onStop (option: any): void { + onStop(option: any): void { native.innerAudioOnStop(option, this.objectId) } - onPlay (option: any): void { + onPlay(option: any): void { native.innerAudioOnPlay(option, this.objectId) } - onEnded (option: any): void { + onEnded(option: any): void { native.innerAudioOnEnded(option, this.objectId) } - onError (option: any): void { + onError(option: any): void { native.innerAudioOnError(option, this.objectId) } - destroy (): void { - } + destroy(): void {} - offCanplay (option: any): void { + offCanplay(option: any): void { return option } - offEnded (option: any): void { + offEnded(option: any): void { return option } - offError (option: any): void { + offError(option: any): void { return option } - offPause (option: any): void { + offPause(option: any): void { return option } - offPlay (option: any): void { + offPlay(option: any): void { return option } - offSeeked (option: any): void { + offSeeked(option: any): void { return option } - offSeeking (option: any): void { + offSeeking(option: any): void { return option } - offStop (option: any): void { + offStop(option: any): void { return option } - offTimeUpdate (option: any): void { + offTimeUpdate(option: any): void { return option } - offWaiting (option: any): void { + offWaiting(option: any): void { return option } - onCanplay (option: any): void { + onCanplay(option: any): void { return option } - onPause (option: any): void { + onPause(option: any): void { return option } - onSeeked (option: any): void { + onSeeked(option: any): void { return option } - onSeeking (option: any): void { + onSeeking(option: any): void { return option } - onTimeUpdate (option: any): void { + onTimeUpdate(option: any): void { return option } - onWaiting (option: any): void { + onWaiting(option: any): void { return option } - pause (): void { - } + pause(): void {} - seek (option: any): void { + seek(option: any): void { return option } - - } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeFileSystemManager.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeFileSystemManager.ts index 09f3cd4f67be..ce1655e3b8a0 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeFileSystemManager.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeFileSystemManager.ts @@ -6,33 +6,31 @@ import native from '../NativeApi' export class NativeFileSystemManager implements Taro.FileSystemManager { private static nativeFileSystemManager: NativeFileSystemManager - constructor () { + constructor() { native.getFileManager() } - static getFileSystemManager () { - if ( !NativeFileSystemManager.nativeFileSystemManager ) { - NativeFileSystemManager.nativeFileSystemManager = new NativeFileSystemManager() + static getFileSystemManager() { + if (!NativeFileSystemManager.nativeFileSystemManager) { + NativeFileSystemManager.nativeFileSystemManager = new NativeFileSystemManager() } return NativeFileSystemManager.nativeFileSystemManager } - - access (option: any): void { + access(option: any): void { native.access(option) } - - getFileInfo (option: any): any { + getFileInfo(option: any): any { native.getFileInfo(option) } - readFile (option: any): any { + readFile(option: any): any { native.readFile({ ...(option || {}), success: (res) => { const result = { - data: res?.bufBase64 !== undefined ? toByteArray(res.bufBase64).buffer : res?.result + data: res?.bufBase64 !== undefined ? toByteArray(res.bufBase64).buffer : res?.result, } option?.success && option.success(result) option?.complete && option.complete(result) @@ -44,7 +42,7 @@ export class NativeFileSystemManager implements Taro.FileSystemManager { }) } - readFileSync (filePath: string, encoding?: string, position?: number, length?: number): any { + readFileSync(filePath: string, encoding?: string, position?: number, length?: number): any { const data = native.readFileSync({ filePath, encoding, @@ -54,172 +52,170 @@ export class NativeFileSystemManager implements Taro.FileSystemManager { if (data?.error) { throw data.error } - return (data?.bufBase64 !== undefined ? toByteArray(data.bufBase64).buffer : data?.result) + return data?.bufBase64 !== undefined ? toByteArray(data.bufBase64).buffer : data?.result } - accessSync (option: any): any { + accessSync(option: any): any { return option } - appendFile (option: any): any { + appendFile(option: any): any { return option } - appendFileSync (option: any): any { + appendFileSync(option: any): any { return option } - close (option: any): any { + close(option: any): any { return option } - closeSync (option: any): any { + closeSync(option: any): any { return option } - copyFile (option: any): any { + copyFile(option: any): any { return option } - copyFileSync (option: any): any { + copyFileSync(option: any): any { return option } - fstat (option: any): any { + fstat(option: any): any { return option } - fstatSync (option: any): any { + fstatSync(option: any): any { return option } - ftruncate (option: any): any { + ftruncate(option: any): any { return option } - ftruncateSync (option: any): any { + ftruncateSync(option: any): any { return option } - - getSavedFileList (option: any): any { + getSavedFileList(option: any): any { return option } - mkdir (option: any): any { + mkdir(option: any): any { return option } - mkdirSync (option: any): any { + mkdirSync(option: any): any { return option } - open (option: any): any { + open(option: any): any { return option } - openSync (option: any): any { + openSync(option: any): any { return option } - read (option: any): any { + read(option: any): any { return option } - readCompressedFile (option: any): any { + readCompressedFile(option: any): any { return option } - readCompressedFileSync (option: any): any { + readCompressedFileSync(option: any): any { return option } - - readSync (option: any): any { + readSync(option: any): any { return option } - readZipEntry (option: any): any { + readZipEntry(option: any): any { return option } - readdir (option: any): any { + readdir(option: any): any { return option } - readdirSync (option: any): any { + readdirSync(option: any): any { return option } - removeSavedFile (option: any): any { + removeSavedFile(option: any): any { return option } - rename (option: any): any { + rename(option: any): any { return option } - renameSync (option: any): any { + renameSync(option: any): any { return option } - rmdir (option: any): any { + rmdir(option: any): any { return option } - rmdirSync (option: any): any { + rmdirSync(option: any): any { return option } - saveFile (option: any): any { + saveFile(option: any): any { return option } - saveFileSync (option: any): any { + saveFileSync(option: any): any { return option } - stat (option: any): any { + stat(option: any): any { return option } - statSync (option: any): any { + statSync(option: any): any { return option } - truncate (option: any): any { + truncate(option: any): any { return option } - truncateSync (option: any): any { + truncateSync(option: any): any { return option } - unlink (option: any): any { + unlink(option: any): any { return option } - unlinkSync (option: any): any { + unlinkSync(option: any): any { return option } - unzip (option: any): any { + unzip(option: any): any { return option } - write (option: any): any { + write(option: any): any { return option } - writeFile (option: any): any { + writeFile(option: any): any { return option } - writeFileSync (option: any): any { + writeFileSync(option: any): any { return option } - writeSync (option: any): any { + writeSync(option: any): any { return option } } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeRequest.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeRequest.ts index 19ecec82edea..6ffbbcc7894e 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeRequest.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeRequest.ts @@ -2,49 +2,50 @@ import Taro from '@tarojs/api' import native from '../NativeApi' - export class NativeRequest implements Taro.RequestTask { readonly [Symbol.toStringTag]: string = 'NativeRequest' private objectId: number - constructor (objectId: number) { + constructor(objectId: number) { this.objectId = objectId } - static getRequestTask (objectId: number) { + static getRequestTask(objectId: number) { return new NativeRequest(objectId) } - abort (): void { - native.abort( {}, this.objectId) + abort(): void { + native.abort({}, this.objectId) } - onHeadersReceived (option: any): void { + onHeadersReceived(option: any): void { native.onHeadersReceived(option, this.objectId) } - offHeadersReceived (option: any): void { + offHeadersReceived(option: any): void { native.offHeadersReceived(option, this.objectId) } - catch (onrejected?: ((reason: any) => (PromiseLike | TResult)) | undefined | null): Promise { + catch( + onrejected?: ((reason: any) => PromiseLike | TResult) | undefined | null + ): Promise { return Promise.resolve(onrejected) } - offChunkReceived (option: any): void { + offChunkReceived(option: any): void { return option } - onChunkReceived (option: any): void { + onChunkReceived(option: any): void { return option } - then (onrejected?: ((reason: any) => (PromiseLike | TResult)) | undefined | null): Promise { + then( + onrejected?: ((reason: any) => PromiseLike | TResult) | undefined | null + ): Promise { return Promise.resolve(onrejected) } - finally (onfinally?: (() => void) | null | undefined): any { + finally(onfinally?: (() => void) | null | undefined): any { throw new Error(onfinally as undefined) } - - } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts index b28d97fa4f81..1e539fa9ac0a 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUpdateManager.ts @@ -3,30 +3,28 @@ import Taro from '@tarojs/api' import native from '../NativeApi' export class NativeUpdateManager implements Taro.UpdateManager { - private static nativeUpdateManager: NativeUpdateManager - static getUpdateManager () { - - if ( !NativeUpdateManager.nativeUpdateManager ) { - NativeUpdateManager.nativeUpdateManager = new NativeUpdateManager() + static getUpdateManager() { + if (!NativeUpdateManager.nativeUpdateManager) { + NativeUpdateManager.nativeUpdateManager = new NativeUpdateManager() } return NativeUpdateManager.nativeUpdateManager } - applyUpdate () { + applyUpdate() { native.applyUpdate() } - onCheckForUpdate (callback: Taro.UpdateManager.OnCheckForUpdateCallback) { + onCheckForUpdate(callback: Taro.UpdateManager.OnCheckForUpdateCallback) { native.onCheckForUpdate(callback) } - onUpdateFailed (callback: (res: TaroGeneral.CallbackResult) => void) { + onUpdateFailed(callback: (res: TaroGeneral.CallbackResult) => void) { native.onUpdateFailed(callback) } - onUpdateReady (callback: (res: TaroGeneral.CallbackResult) => void) { + onUpdateReady(callback: (res: TaroGeneral.CallbackResult) => void) { native.onUpdateReady(callback) } } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUploadFile.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUploadFile.ts index 63605bcee9b0..ad0d11c26585 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUploadFile.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/interface/NativeUploadFile.ts @@ -5,31 +5,31 @@ import native from '../NativeApi' export class NativeUploadFile implements Taro.UploadTask { private objectId: number - constructor ( objectId: number) { + constructor(objectId: number) { this.objectId = objectId } - static getUploadTask (objectId: number) { + static getUploadTask(objectId: number) { return new NativeUploadFile(objectId) } - abort (): void { - native.abort({}, this.objectId ) + abort(): void { + native.abort({}, this.objectId) } - offHeadersReceived (option: any): void { + offHeadersReceived(option: any): void { native.offHeadersReceived(option, this.objectId) } - offProgressUpdate (option: any): void { + offProgressUpdate(option: any): void { native.offProgressUpdate(option, this.objectId) } - onHeadersReceived (option: any): void { + onHeadersReceived(option: any): void { native.onHeadersReceived(option, this.objectId) } - onProgressUpdate (option: any): void { + onProgressUpdate(option: any): void { native.onProgressUpdate(option, this.objectId) } } diff --git a/packages/taro-platform-harmony-hybrid/src/api/apis/location/chooseLocation.ts b/packages/taro-platform-harmony-hybrid/src/api/apis/location/chooseLocation.ts index 287d4485b594..abd69c1ed5b7 100644 --- a/packages/taro-platform-harmony-hybrid/src/api/apis/location/chooseLocation.ts +++ b/packages/taro-platform-harmony-hybrid/src/api/apis/location/chooseLocation.ts @@ -4,7 +4,7 @@ import { stringify } from 'query-string' import { MethodHandler } from '../utils/handler' let container: HTMLDivElement | null = null -function createLocationChooser (handler, mapOpt: Taro.chooseLocation.Option['mapOpts'] = {}) { +function createLocationChooser(handler, mapOpt: Taro.chooseLocation.Option['mapOpts'] = {}) { // @ts-ignore const systemBarHeight = window.systemBarHeight ? window.systemBarHeight : 0 const { key = LOCATION_APIKEY, referer = 'myapp', ...opts } = mapOpt @@ -23,7 +23,10 @@ function createLocationChooser (handler, mapOpt: Taro.chooseLocation.Option['map

位置

-