diff --git a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md index 4d478ebc0011ca9e29f537318377b48366c0a649..25dbe4da7bf83ad06c7b841d2b4e2a0d82389751 100644 --- a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md +++ b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md @@ -60,7 +60,7 @@ - 是否同步合入interface仓的相关d.ts(需求合入用同一个issue) - [ ] 已同步 - [ ] 不涉及 -### L0新增用例自检结果 -- [ ] 是,有新增L0用例,且完成自检 -- [ ] 否 +### 是否已执行L0用例 +- [ ] 已验证 +- [ ] 不涉及。如不涉及,请写明理由 ## 六:将上述测试的截图贴到下面 diff --git a/base_sdk/BUILD.gn b/base_sdk/BUILD.gn index df8ace62c86c25713f52d53c81f895bf3b29f113..f6394d774ed9453d8ee4773dd924781bc2727b9c 100644 --- a/base_sdk/BUILD.gn +++ b/base_sdk/BUILD.gn @@ -30,3 +30,28 @@ ohos_prebuilt_etc("base_sdk_ets") { subsystem_name = "commonlibrary" part_name = "ets_utils" } + +generate_static_abc("base_transfer") { + base_url = "./transfer" + files = [ + "./transfer/@ohos.transfer.ets", + "./transfer/register.ets", + "./transfer/kitRegister/abilitykit.ets", + "./transfer/kitRegister/arkts.ets", + "./transfer/kitRegister/arkui.ets", + "./transfer/kitRegister/arkweb.ets", + "./transfer/kitRegister/registerMain.ets", + "./transfer/kitRegister/basicServicesKit.ets", + "./transfer/kitRegister/osAccount.ets", + ] + is_boot_abc = "True" + device_dst_file = "/system/framework/base_transfer.abc" +} + +ohos_prebuilt_etc("base_transfer_ets") { + source = "$target_out_dir/base_transfer.abc" + module_install_dir = "framework" + subsystem_name = "commonlibrary" + part_name = "ets_utils" + deps = [ ":base_transfer" ] +} diff --git a/base_sdk/transfer/@ohos.transfer.ets b/base_sdk/transfer/@ohos.transfer.ets new file mode 100644 index 0000000000000000000000000000000000000000..2bd36cfbbce60a3933bcabbaeaab7a00d661c87a --- /dev/null +++ b/base_sdk/transfer/@ohos.transfer.ets @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { staticRegisterMap, dynamicRegisterMap, CallbackUrl } from './register.ets'; +import { BusinessError } from '@ohos.base'; +import { registerMain } from './kitRegister/registerMain.ets'; + +registerMain(); + +const transferErrorCodeId = 10200067; + +const staticCBCache = new Map(); +const dynamicCBCache = new Map(); +const staticRegisterMapRef = staticRegisterMap; +const dynamicRegisterMapRef = dynamicRegisterMap; + +export namespace transfer { + + export function transferStatic(input: Any, inputName: string): Object { + + if (!staticRegisterMapRef.has(inputName)) { + throw new BusinessError(transferErrorCodeId, + new Error(`Transfer Error. The input name is not supported!`)); + } + let cb: CallbackUrl = staticRegisterMapRef.get(inputName)!; + if (cb.filePath === '') { + return cb.staticMethod!(input); + } + + let method: Method | undefined; + if (staticCBCache.has(inputName)) { + method = staticCBCache.get(inputName); + } else { + method = getMethod(cb.filePath, cb.className, cb.methodName); + staticCBCache.set(inputName, method); + } + return method!.invoke(null, [input]) as Object; + } + + export function transferDynamic(input: Object, inputName: string): Any { + if (!dynamicRegisterMapRef.has(inputName)) { + throw new BusinessError(transferErrorCodeId, + new Error(`Transfer Error. The input name is not supported!`)); + } + let cb: CallbackUrl = dynamicRegisterMapRef.get(inputName)!; + if (cb.filePath === '') { + return cb.dynamicMethod!(input) ; + } + + let method: Method | undefined; + if (dynamicCBCache.has(inputName)) { + method = dynamicCBCache.get(inputName); + } else { + method = getMethod(cb.filePath, cb.className, cb.methodName); + dynamicCBCache.set(inputName, method); + } + return method!.invoke(null, [input]) as Any; + } + + function getMethod(filePath: string, className: string, methodName: string): Method { + className = filePath + '.' + className; + let linker = Class.ofCaller()!.getLinker(); + let classType: ClassType | undefined = linker.getType(className) as ClassType; + if (!classType) { + throw new BusinessError(transferErrorCodeId, + new Error(`Transfer Error. The class ${className} is not found!`)); + } + for (let i = 0; i < classType!.getMethodsNum(); i++) { + if (methodName === classType!.getMethod(i).getName()) { + return classType!.getMethod(i); + } + } + throw new BusinessError(transferErrorCodeId, + new Error(`Transfer Error. The method ${methodName} is not found!`)); + } +} diff --git a/base_sdk/transfer/kitRegister/abilitykit.ets b/base_sdk/transfer/kitRegister/abilitykit.ets new file mode 100644 index 0000000000000000000000000000000000000000..03550f355e2dbfdaf88724e924851ee6bdc515f0 --- /dev/null +++ b/base_sdk/transfer/kitRegister/abilitykit.ets @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { registerStaticCB, registerDynamicCB } from '../register.ets'; + +export function registerAbilityKit() { + registerStaticCB('AbilityKit.UIAbilityContext', 'application.UIAbilityContext', 'UIAbilityContext', 'transferStatic'); + registerDynamicCB('AbilityKit.UIAbilityContext', 'application.UIAbilityContext', 'UIAbilityContext', 'transferDynamic'); + + registerStaticCB('AbilityKit.Context', 'application.Context', 'Context', 'transferStatic'); + registerDynamicCB('AbilityKit.Context', 'application.Context', 'Context', 'transferDynamic'); + + registerStaticCB('AbilityKit.ApplicationContext', 'application.ApplicationContext', 'ApplicationContext', 'transferStatic'); + registerDynamicCB('AbilityKit.ApplicationContext', 'application.ApplicationContext', 'ApplicationContext', 'transferDynamic'); + + registerStaticCB('AbilityKit.AbilityStageContext', 'application.AbilityStageContext', 'AbilityStageContext', 'transferStatic'); + registerDynamicCB('AbilityKit.AbilityStageContext', 'application.AbilityStageContext', 'AbilityStageContext', 'transferDynamic'); +} diff --git a/base_sdk/transfer/kitRegister/arkts.ets b/base_sdk/transfer/kitRegister/arkts.ets new file mode 100644 index 0000000000000000000000000000000000000000..9e492bf612e664b1c18c001d7603fe6cd2b950f8 --- /dev/null +++ b/base_sdk/transfer/kitRegister/arkts.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { registerStaticCB, registerDynamicCB } from '../register.ets'; + +export function registerArkTS() { + registerStaticCB('InteropTransferHelper', InteropTransferHelper.transferArrayBufferToStatic); + registerDynamicCB('InteropTransferHelper', InteropTransferHelper.transferArrayBufferToDynamic); +} diff --git a/base_sdk/transfer/kitRegister/arkui.ets b/base_sdk/transfer/kitRegister/arkui.ets new file mode 100644 index 0000000000000000000000000000000000000000..ced9decb3d42ab1a7a7a76bcd5fa335013b4b599 --- /dev/null +++ b/base_sdk/transfer/kitRegister/arkui.ets @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { registerStaticCB, registerDynamicCB } from '../register.ets'; + +export function registerArkTS() { + registerStaticCB('ArkUI.TouchEvent', "arkui.component.common", "TouchEventInternal", "transferStatic"); + registerDynamicCB('ArkUI.TouchEvent', "arkui.component.common", "TouchEventInternal", "transferDynamic"); + + registerStaticCB('ArkUI.MouseEvent', "arkui.component.common", "MouseEventInternal", "transferStatic"); + registerDynamicCB('ArkUI.MouseEvent', "arkui.component.common", "MouseEventInternal", "transferDynamic"); + + registerStaticCB('ArkUI.AxisEvent', "arkui.component.common", "AxisEventInternal", "transferStatic"); + registerDynamicCB('ArkUI.AxisEvent', "arkui.component.common", "AxisEventInternal", "transferDynamic"); + + registerStaticCB('ArkUI.ClickEvent', "arkui.component.common", "ClickEventInternal", "transferStatic"); + registerDynamicCB('ArkUI.ClickEvent', "arkui.component.common", "ClickEventInternal", "transferDynamic"); + + registerStaticCB('ArkUI.HoverEvent', "arkui.component.common", "HoverEventInternal", "transferStatic"); + registerDynamicCB('ArkUI.HoverEvent', "arkui.component.common", "HoverEventInternal", "transferDynamic"); +} diff --git a/base_sdk/transfer/kitRegister/arkweb.ets b/base_sdk/transfer/kitRegister/arkweb.ets new file mode 100644 index 0000000000000000000000000000000000000000..7c2f143b1d28f093432963fe9c874631fabfc83d --- /dev/null +++ b/base_sdk/transfer/kitRegister/arkweb.ets @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { registerStaticCB, registerDynamicCB } from '../register.ets'; + +export function registerArkWeb() { + registerStaticCB('ArkWeb.ScreenCaptureHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferScreenCaptureHandlerStatic'); + registerDynamicCB('ArkWeb.ScreenCaptureHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferScreenCaptureHandlerDynamic'); + + registerStaticCB('ArkWeb.FileSelectorParam', 'arkui.component.web', 'ArkWebTransfer', 'transferFileSelectorParamStatic'); + registerDynamicCB('ArkWeb.FileSelectorParam', 'arkui.component.web', 'ArkWebTransfer', 'transferFileSelectorParamDynamic'); + + registerStaticCB('ArkWeb.JsGeolocation', 'arkui.component.web', 'ArkWebTransfer', 'transferJsGeolocationStatic'); + registerDynamicCB('ArkWeb.JsGeolocation', 'arkui.component.web', 'ArkWebTransfer', 'transferJsGeolocationDynamic'); + + registerStaticCB('ArkWeb.JsResult', 'arkui.component.web', 'ArkWebTransfer', 'transferJsResultStatic'); + registerDynamicCB('ArkWeb.JsResult', 'arkui.component.web', 'ArkWebTransfer', 'transferJsResultDynamic'); + + registerStaticCB('ArkWeb.EventResult', 'arkui.component.web', 'ArkWebTransfer', 'transferEventResultStatic'); + registerDynamicCB('ArkWeb.EventResult', 'arkui.component.web', 'ArkWebTransfer', 'transferEventResultDynamic'); + + registerStaticCB('ArkWeb.FileSelectorResult', 'arkui.component.web', 'ArkWebTransfer', 'transferFileSelectorResultStatic'); + registerDynamicCB('ArkWeb.FileSelectorResult', 'arkui.component.web', 'ArkWebTransfer', 'transferFileSelectorResultDynamic'); + + registerStaticCB('ArkWeb.WebContextMenuParam', 'arkui.component.web', 'ArkWebTransfer', 'transferWebContextMenuParamStatic'); + registerDynamicCB('ArkWeb.WebContextMenuParam', 'arkui.component.web', 'ArkWebTransfer', 'transferWebContextMenuParamDynamic'); + + registerStaticCB('ArkWeb.WebContextMenuResult', 'arkui.component.web', 'ArkWebTransfer', 'transferWebContextMenuResultStatic'); + registerDynamicCB('ArkWeb.WebContextMenuResult', 'arkui.component.web', 'ArkWebTransfer', 'transferWebContextMenuResultDynamic'); + + registerStaticCB('ArkWeb.HttpAuthHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferHttpAuthHandlerToStatic'); + registerDynamicCB('ArkWeb.HttpAuthHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferHttpAuthHandlerToDynamic'); + + registerStaticCB('ArkWeb.WebResourceResponse', 'arkui.component.web', 'ArkWebTransfer', 'transferWebResourceReponseToStatic'); + registerDynamicCB('ArkWeb.WebResourceResponse', 'arkui.component.web', 'ArkWebTransfer', 'transferWebResourceReponseToDynamic'); + + registerStaticCB('ArkWeb.WebResourceRequest', 'arkui.component.web', 'ArkWebTransfer', 'transferWebResourceRequestToStatic'); + registerDynamicCB('ArkWeb.WebResourceRequest', 'arkui.component.web', 'ArkWebTransfer', 'transferWebResourceRequestToDynamic'); + + registerStaticCB('ArkWeb.ConsoleMessage', 'arkui.component.web', 'ArkWebTransfer', 'transferConsoleMessageToStatic'); + registerDynamicCB('ArkWeb.ConsoleMessage', 'arkui.component.web', 'ArkWebTransfer', 'transferConsoleMessageToDynamic'); + + registerStaticCB('ArkWeb.DataResubmissionHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferDataResubmissionHandlerToStatic'); + registerDynamicCB('ArkWeb.DataResubmissionHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferDataResubmissionHandlerToDynamic'); + + registerStaticCB('ArkWeb.ClientAuthenticationHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferClientAuthenticationHandlerToStatic'); + registerDynamicCB('ArkWeb.ClientAuthenticationHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferClientAuthenticationHandlerToDynamic'); + + registerStaticCB('ArkWeb.SslErrorHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferSslErrorHandlerToStatic'); + registerDynamicCB('ArkWeb.SslErrorHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferSslErrorHandlerToDynamic'); + + registerStaticCB('ArkWeb.PermissionRequest', 'arkui.component.web', 'ArkWebTransfer', 'transferPermissionRequestStatic'); + registerDynamicCB('ArkWeb.PermissionRequest', 'arkui.component.web', 'ArkWebTransfer', 'transferPermissionRequestDynamic'); + + registerStaticCB('ArkWeb.WebKeyboardController', 'arkui.component.web', 'ArkWebTransfer', 'transferWebKeyboardControllerStatic'); + registerDynamicCB('ArkWeb.WebKeyboardController', 'arkui.component.web', 'ArkWebTransfer', 'transferWebKeyboardControllerDynamic'); + + registerStaticCB('ArkWeb.ControllerHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferControllerHandlerStatic'); + registerDynamicCB('ArkWeb.ControllerHandler', 'arkui.component.web', 'ArkWebTransfer', 'transferControllerHandlerDynamic'); +} diff --git a/base_sdk/transfer/kitRegister/basicServicesKit.ets b/base_sdk/transfer/kitRegister/basicServicesKit.ets new file mode 100644 index 0000000000000000000000000000000000000000..d589f846d04851bbc8efaf4444cfbeee5009f177 --- /dev/null +++ b/base_sdk/transfer/kitRegister/basicServicesKit.ets @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { registerStaticCB, registerDynamicCB } from '../register.ets'; + +export function registerCommonEventManager() { + registerStaticCB('CommonEventManager.CommonEventSubscriber', 'commonEvent/commonEventSubscriber', 'CommonEventSubscriberInner', 'transferStatic'); + registerDynamicCB('CommonEventManager.CommonEventSubscriber', 'commonEvent/commonEventSubscriber', 'CommonEventSubscriberInner', 'transferDynamic'); + + registerStaticCB('StaticSubscriberExtensionContext', '@ohos.application.StaticSubscriberExtensionContext', 'StaticSubscriberExtensionContext', 'transferStatic'); + registerDynamicCB('StaticSubscriberExtensionContext', '@ohos.application.StaticSubscriberExtensionContext', 'StaticSubscriberExtensionContext', 'transferDynamic'); +} diff --git a/base_sdk/transfer/kitRegister/osAccount.ets b/base_sdk/transfer/kitRegister/osAccount.ets new file mode 100644 index 0000000000000000000000000000000000000000..425aa0e35de737178a32d45dd3428db0c21dcb48 --- /dev/null +++ b/base_sdk/transfer/kitRegister/osAccount.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { registerStaticCB, registerDynamicCB } from '../register.ets'; + +export function registerOsAccount() { + registerStaticCB('BasicServicesKit.IInputData', '@ohos.account.transfer.osAccount', 'Transfer', 'iInputDataTransferStatic'); + registerDynamicCB('BasicServicesKit.IInputData', '@ohos.account.transfer.osAccount', 'Transfer', 'iInputDataTransferDynamic'); +} diff --git a/base_sdk/transfer/kitRegister/registerMain.ets b/base_sdk/transfer/kitRegister/registerMain.ets new file mode 100644 index 0000000000000000000000000000000000000000..54503391d0f14feab5991f408d791c6c5f62bdc8 --- /dev/null +++ b/base_sdk/transfer/kitRegister/registerMain.ets @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { registerArkTS } from './arkts.ets'; +import { registerAbilityKit } from './abilitykit.ets'; +import { registerOsAccount } from './osAccount.ets'; +import { registerArkWeb } from './arkweb.ets'; +import { registerCommonEventManager } from './basicServicesKit.ets' + +export function registerMain(){ + registerArkTS(); + registerAbilityKit(); + registerOsAccount(); + registerArkWeb(); + registerCommonEventManager(); +} \ No newline at end of file diff --git a/base_sdk/transfer/register.ets b/base_sdk/transfer/register.ets new file mode 100644 index 0000000000000000000000000000000000000000..09ba267ba88ba9947c39d74cb72de2fb1942abd8 --- /dev/null +++ b/base_sdk/transfer/register.ets @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface CallbackUrl { + key: string; + filePath: string; + className: string; + methodName: string; + staticMethod?: (input: Any) => Object; + dynamicMethod?: (input: Object) => Any; +} + +export const staticRegisterMap = new Map(); +export const dynamicRegisterMap = new Map(); + +export function registerStaticCB(key: string, filePath: string, className: string, methodName: string) { + let callbackUrl: CallbackUrl = { + key: key, + filePath: filePath, + className: className, + methodName: methodName + }; + staticRegisterMap.set(key, callbackUrl); +} + +export function registerDynamicCB(key: string, filePath: string, className: string, methodName: string) { + let callbackUrl: CallbackUrl = { + key: key, + filePath: filePath, + className: className, + methodName: methodName + }; + dynamicRegisterMap.set(key, callbackUrl); +} + +export function registerStaticCB(key: string, staticMethod: (input: Any) => Object) { + let callbackUrl: CallbackUrl = { + key: key, + filePath: '', + className: '', + methodName: '', + staticMethod: staticMethod + }; + staticRegisterMap.set(key, callbackUrl); +} + +export function registerDynamicCB(key: string, dynamicMethod: (input: Object) => Any) { + let callbackUrl: CallbackUrl = { + key: key, + filePath: '', + className: '', + methodName: '', + dynamicMethod: dynamicMethod + }; + dynamicRegisterMap.set(key, callbackUrl); +} + + diff --git a/bundle.json b/bundle.json index 77f5f349db98089986cd583a4d6c30621042e993..a113f5879925083ef34d5e4a99c767fa287b2fba 100644 --- a/bundle.json +++ b/bundle.json @@ -73,6 +73,7 @@ "build": { "sub_component": [ "//commonlibrary/ets_utils/base_sdk:base_sdk_ets", + "//commonlibrary/ets_utils/base_sdk:base_transfer_ets", "//commonlibrary/ets_utils/js_api_module/uri:uri_packages", "//commonlibrary/ets_utils/js_api_module/url:url_packages", "//commonlibrary/ets_utils/js_api_module/convertxml:convertxml_packages",