From a97484861abab40860425a31ab552183df9dc643 Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 14:20:33 +0800 Subject: [PATCH 01/11] 1.FA model project update to stage model project 2.update project structure Signed-off-by: zhaodongyang --- .gitignore | 2 + AppScope/app.json5 | 11 + AppScope/resources/base/element/string.json | 8 + AppScope/resources/base/media/app_icon.png | Bin 0 -> 6790 bytes build-profile.json5 | 29 +- entry/.gitignore | 1 + entry/build-profile.json5 | 4 +- entry/hvigorfile.js | 2 +- entry/hvigorfile.ts | 2 + entry/package-lock.json | 11 - entry/package.json | 28 +- entry/src/main/config.json | 2 +- .../src/main/ets/entryability/EntryAbility.ts | 56 + .../index/index.js => ets/pages/Index.ets} | 58 +- entry/src/main/ets/pages/buffer.ets | 17 + entry/src/main/ets/pages/bytestring.ets | 17 + entry/src/main/ets/pages/filehandler.ets | 17 + entry/src/main/js/MainAbility/app.js | 19 - .../main/js/MainAbility/common/css/common.css | 19 - .../MainAbility/common/images/Wallpaper.png | Bin 155181 -> 0 bytes .../js/MainAbility/common/images/bg-tv.jpg | Bin 215219 -> 0 bytes entry/src/main/js/MainAbility/i18n/en-US.json | 6 - entry/src/main/js/MainAbility/i18n/zh-CN.json | 6 - entry/src/main/js/MainAbility/log/log.js | 60 - .../js/MainAbility/pages/buffer/buffer.css | 65 - .../js/MainAbility/pages/buffer/buffer.hml | 92 - .../js/MainAbility/pages/buffer/buffer.js | 140 -- .../pages/bytestring/bytestring.css | 68 - .../pages/bytestring/bytestring.hml | 196 -- .../pages/bytestring/bytestring.js | 156 -- .../pages/filehandler/filehandler.css | 64 - .../pages/filehandler/filehandler.hml | 24 - .../pages/filehandler/filehandler.js | 67 - .../main/js/MainAbility/pages/index/index.css | 64 - .../main/js/MainAbility/pages/index/index.hml | 21 - entry/src/main/module.json5 | 43 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 12 +- .../resources/base/profile/main_pages.json | 8 + .../main/resources/en_US/element/string.json | 16 + entry/src/main/resources/rawfile/test.txt | 1 - .../main/resources/zh_CN/element/string.json | 16 + hvigorfile.js | 2 +- okio/.gitignore | 3 +- okio/build-profile.json5 | 16 +- okio/{hvigorfile.js => hvigorfile.ts} | 2 +- okio/{index.js => index.ts} | 32 +- okio/package-lock.json | 5 - okio/package.json | 27 +- okio/src/main/config.json | 24 - okio/src/main/module.json5 | 9 + package-lock.json | 1643 ----------------- package.json | 35 +- 53 files changed, 366 insertions(+), 2868 deletions(-) create mode 100644 AppScope/app.json5 create mode 100644 AppScope/resources/base/element/string.json create mode 100644 AppScope/resources/base/media/app_icon.png create mode 100644 entry/hvigorfile.ts delete mode 100644 entry/package-lock.json create mode 100644 entry/src/main/ets/entryability/EntryAbility.ts rename entry/src/main/{js/MainAbility/pages/index/index.js => ets/pages/Index.ets} (48%) create mode 100644 entry/src/main/ets/pages/buffer.ets create mode 100644 entry/src/main/ets/pages/bytestring.ets create mode 100644 entry/src/main/ets/pages/filehandler.ets delete mode 100644 entry/src/main/js/MainAbility/app.js delete mode 100644 entry/src/main/js/MainAbility/common/css/common.css delete mode 100644 entry/src/main/js/MainAbility/common/images/Wallpaper.png delete mode 100644 entry/src/main/js/MainAbility/common/images/bg-tv.jpg delete mode 100644 entry/src/main/js/MainAbility/i18n/en-US.json delete mode 100644 entry/src/main/js/MainAbility/i18n/zh-CN.json delete mode 100644 entry/src/main/js/MainAbility/log/log.js delete mode 100644 entry/src/main/js/MainAbility/pages/buffer/buffer.css delete mode 100644 entry/src/main/js/MainAbility/pages/buffer/buffer.hml delete mode 100644 entry/src/main/js/MainAbility/pages/buffer/buffer.js delete mode 100644 entry/src/main/js/MainAbility/pages/bytestring/bytestring.css delete mode 100644 entry/src/main/js/MainAbility/pages/bytestring/bytestring.hml delete mode 100644 entry/src/main/js/MainAbility/pages/bytestring/bytestring.js delete mode 100644 entry/src/main/js/MainAbility/pages/filehandler/filehandler.css delete mode 100644 entry/src/main/js/MainAbility/pages/filehandler/filehandler.hml delete mode 100644 entry/src/main/js/MainAbility/pages/filehandler/filehandler.js delete mode 100644 entry/src/main/js/MainAbility/pages/index/index.css delete mode 100644 entry/src/main/js/MainAbility/pages/index/index.hml create mode 100644 entry/src/main/module.json5 create mode 100644 entry/src/main/resources/base/element/color.json create mode 100644 entry/src/main/resources/base/profile/main_pages.json create mode 100644 entry/src/main/resources/en_US/element/string.json delete mode 100644 entry/src/main/resources/rawfile/test.txt create mode 100644 entry/src/main/resources/zh_CN/element/string.json rename okio/{hvigorfile.js => hvigorfile.ts} (89%) rename okio/{index.js => index.ts} (46%) delete mode 100644 okio/package-lock.json delete mode 100644 okio/src/main/config.json create mode 100644 okio/src/main/module.json5 delete mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index b95ee6b..a98ead0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ .cxx /node_modules .idea +.hvigor +package-lock.json diff --git a/AppScope/app.json5 b/AppScope/app.json5 new file mode 100644 index 0000000..9c1e609 --- /dev/null +++ b/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "cn.openharmony.okio.sample", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/AppScope/resources/base/element/string.json b/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..633e227 --- /dev/null +++ b/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "okio" + } + ] +} diff --git a/AppScope/resources/base/media/app_icon.png b/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground() { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground() { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/entry/src/main/js/MainAbility/pages/index/index.js b/entry/src/main/ets/pages/Index.ets similarity index 48% rename from entry/src/main/js/MainAbility/pages/index/index.js rename to entry/src/main/ets/pages/Index.ets index 07bdb29..4d27c75 100644 --- a/entry/src/main/js/MainAbility/pages/index/index.js +++ b/entry/src/main/ets/pages/Index.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Huawei Device Co., Ltd. + * Copyright (c) 2022 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 @@ -13,28 +13,38 @@ * limitations under the License. */ -import router from '@system.router'; +import router from '@ohos.router'; -export default { - data: { - title: "", - fileUri: '/data/data/com.openharmony.ohos.okioapplication/cache/test.txt' - }, - onInit() { - }, - showBufferView() { - router.push({ - uri: 'pages/buffer/buffer' - }) - }, - showByteStringView() { - router.push({ - uri: 'pages/bytestring/bytestring' - }) - }, - showFileHandlingView() { - router.push({ - uri: 'pages/filehandler/filehandler' - }) + +@Entry +@Component +struct Index { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + + Text('测试Buffer') + .width('90%') + .height(50) + .backgroundColor(0xCCCCCC) + .borderRadius(15) + .fontSize(16) + .textAlign(TextAlign.Center) + .margin({ + top: 10 + }) + .onClick(() => { + router.push({ + url: '' + }) + }) + + + } + .width('100%') } -} + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/buffer.ets b/entry/src/main/ets/pages/buffer.ets new file mode 100644 index 0000000..0537d2a --- /dev/null +++ b/entry/src/main/ets/pages/buffer.ets @@ -0,0 +1,17 @@ +@Entry +@Component +struct Buffer { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/bytestring.ets b/entry/src/main/ets/pages/bytestring.ets new file mode 100644 index 0000000..5f253a3 --- /dev/null +++ b/entry/src/main/ets/pages/bytestring.ets @@ -0,0 +1,17 @@ +@Entry +@Component +struct Bytestring { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/ets/pages/filehandler.ets b/entry/src/main/ets/pages/filehandler.ets new file mode 100644 index 0000000..398fa68 --- /dev/null +++ b/entry/src/main/ets/pages/filehandler.ets @@ -0,0 +1,17 @@ +@Entry +@Component +struct Filehandler { + @State message: string = 'Hello World' + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/main/js/MainAbility/app.js b/entry/src/main/js/MainAbility/app.js deleted file mode 100644 index 477fa22..0000000 --- a/entry/src/main/js/MainAbility/app.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2021 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 default { - onCreate() {}, - onDestroy() {} -}; diff --git a/entry/src/main/js/MainAbility/common/css/common.css b/entry/src/main/js/MainAbility/common/css/common.css deleted file mode 100644 index 84e0321..0000000 --- a/entry/src/main/js/MainAbility/common/css/common.css +++ /dev/null @@ -1,19 +0,0 @@ -.container { - flex-direction: column; - justify-content: center; - align-items: center; - font-size: 40px; -} - -.nav-bar { - background-color: #1976D2; -} - -.btn { - width: 50%; - font-size: 16px; - radius: 60; - background-color: #1976D2; - text-color: white; - margin: 1%; -} \ No newline at end of file diff --git a/entry/src/main/js/MainAbility/common/images/Wallpaper.png b/entry/src/main/js/MainAbility/common/images/Wallpaper.png deleted file mode 100644 index 60d4841a80eb20c63de74306cb7f8350d6a85c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155181 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

-!Awc_yZD~-<2&{Tp_+cHBt5; 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

BVMGd3|AJ_LRJ{BtJ0| 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 KD590bfB)GV#f2sS diff --git a/entry/src/main/js/MainAbility/i18n/en-US.json b/entry/src/main/js/MainAbility/i18n/en-US.json deleted file mode 100644 index e63c70d..0000000 --- a/entry/src/main/js/MainAbility/i18n/en-US.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "Hello", - "world": "World" - } -} \ No newline at end of file diff --git a/entry/src/main/js/MainAbility/i18n/zh-CN.json b/entry/src/main/js/MainAbility/i18n/zh-CN.json deleted file mode 100644 index de6ee57..0000000 --- a/entry/src/main/js/MainAbility/i18n/zh-CN.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "您好", - "world": "世界" - } -} \ No newline at end of file diff --git a/entry/src/main/js/MainAbility/log/log.js b/entry/src/main/js/MainAbility/log/log.js deleted file mode 100644 index 350b766..0000000 --- a/entry/src/main/js/MainAbility/log/log.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2021 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. - */ - -const TAG = 'okhttp-'; -var logger = console; - -/** - * Basic log class - */ -export default class Log { - - /** - * print info level log - * - * @param {string} log - Log needs to be printed - */ - static showInfo(log, ...ms) { - logger.info(log,ms); - } - - /** - * print debug level log - * - * @param {string} log - Log needs to be printed - */ - static showDebug(log, ...ms) { - logger.debug(log,ms); - } - - /** - * print error level log - * - * @param {string} log - Log needs to be printed - */ - static showError(log, ...ms) { - logger.error(log,ms); - } - - /** - * print warn level log - * - * @param {string} log - Log needs to be printed - */ - static showWarn(log, ...ms) { - logger.warn(log,ms); - } - -} diff --git a/entry/src/main/js/MainAbility/pages/buffer/buffer.css b/entry/src/main/js/MainAbility/pages/buffer/buffer.css deleted file mode 100644 index 2cae9fa..0000000 --- a/entry/src/main/js/MainAbility/pages/buffer/buffer.css +++ /dev/null @@ -1,65 +0,0 @@ -@import "../../common/css/common.css"; - -.container { - flex-direction: column; - justify-content: center; - align-items: center; -} - -.title { - font-size: 40px; - color: #000000; - opacity: 0.9; -} - -@media screen and (device-type: tablet) and (orientation: landscape) { - .title { - font-size: 100px; - } -} - -@media screen and (device-type: wearable) { - .title { - font-size: 28px; - color: #FFFFFF; - } -} - -@media screen and (device-type: tv) { - .container { - background-image: url("/common/images/Wallpaper.png"); - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .title { - font-size: 100px; - color: #FFFFFF; - } -} - -@media screen and (device-type: phone) and (orientation: landscape) { - .title { - font-size: 60px; - } -} - -.button-controller{ - align-items: center; - justify-content: center; - padding-top: 20px; - padding-bottom: 20px; -} - -.textfield{ - width: 30%; - font-size: 16px; -} - -.text{ - width: 25%; - font-size: 16px; - margin-left: 30px; - margin-bottom: 5px; -} diff --git a/entry/src/main/js/MainAbility/pages/buffer/buffer.hml b/entry/src/main/js/MainAbility/pages/buffer/buffer.hml deleted file mode 100644 index 72fc8ac..0000000 --- a/entry/src/main/js/MainAbility/pages/buffer/buffer.hml +++ /dev/null @@ -1,92 +0,0 @@ -

diff --git a/entry/src/main/js/MainAbility/pages/buffer/buffer.js b/entry/src/main/js/MainAbility/pages/buffer/buffer.js deleted file mode 100644 index 01c37cd..0000000 --- a/entry/src/main/js/MainAbility/pages/buffer/buffer.js +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 2021 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 okio from 'okio'; - -export default { - data: { - title: "", - writeUtfValue: "", - writeIntValue: "", - writeStringValue: "", - writeShortValue: "", - writeIntLeValue: "", - writeShortLeValue: "", - writeByteValue: "", - writeUtf8CodePointValue: "", - writeUtf8ByteCountValue: "", - writableSegmentValue: "", - readUtfValue: "", - readInt: "", - readString: "", - readIntLe: "", - readShortLe: "", - readShort: "", - readByte: "", - readUtf8CodePointValue: "", - readUtf8ByteCountValue: "" - }, - onInit() { - this.validateokio(); - }, - getStringUtfValue(e) { - this.writeUtfValue = e.text; - }, - getWriteIntValue(e) { - this.writeIntValue = e.text; - }, - getWriteStringValue(e) { - this.writeStringValue = e.text; - }, - getWriteShortValue(e) { - this.writeShortValue = e.text; - }, - getWriteIntLeValue(e) { - this.writeIntLeValue = e.text; - }, - getWriteShortLeValue(e) { - this.writeShortLeValue = e.text; - }, - getWriteByteValue(e) { - this.writeByteValue = e.text; - }, - getUtf8CodePointValue(e) { - this.writeUtf8CodePointValue = e.text; - }, - getWritableSegmentValue(e) { - this.writableSegmentValue = e.text; - }, - getUtf8ByteCountValue(e) { - this.writeUtf8ByteCountValue = e.text; - }, - performWriteUtf8() { - var buffer = new okio.Buffer(); - - buffer.writeUtf8(this.writeUtfValue); - this.readUtfValue = buffer.readUtf8(); - }, - performWriteInt() { - var buffer = new okio.Buffer(); - buffer.writeInt(this.writeIntValue); - this.readInt = buffer.readInt(); - }, - performWriteString() { - var buffer = new okio.Buffer(); - buffer.writeString(this.writeStringValue); - this.readString = buffer.readString(); - }, - performWriteIntLe() { - var buffer = new okio.Buffer(); - buffer.writeIntLe(this.writeIntLeValue); - this.readIntLe = buffer.readIntLe(); - }, - performWriteShortLe() { - var buffer = new okio.Buffer(); - buffer.writeShortLe(this.writeShortLeValue); - this.readShortLe = buffer.readShortLe(); - }, - performWriteShort() { - var buffer = new okio.Buffer(); - buffer.writeShort(this.writeShortValue); - this.readShort = buffer.readShort(); - }, - performWriteByte() { - var buffer = new okio.Buffer(); - buffer.writeByte(this.writeByteValue) - this.readByte = buffer.readByte(); - }, - performWriteUtf8CodePoint() { - var buffer = new okio.Buffer(); - buffer.writeUtf8CodePoint(this.writeUtf8CodePointValue); - this.readUtf8CodePointValue = buffer.readUtf8CodePoint(); - }, - performWriteUtf8ByteCount() { - var buffer = new okio.Buffer(); - - buffer.writeUtf8(this.writeUtf8ByteCountValue); - this.readUtf8ByteCountValue = buffer.readUtf8ByteCount(buffer.size); - }, - validateokio() { - var buffer = new okio.Buffer(); - - buffer.writeUtf8("test"); - - buffer.writeInt(10); - - buffer.writeString("Test"); - - buffer.writeIntLe(100); - - buffer.writeShortLe(100); - - buffer.writeShort(25); - - buffer.writeByte(9); - - buffer.writeUtf8CodePoint(99); - } -} diff --git a/entry/src/main/js/MainAbility/pages/bytestring/bytestring.css b/entry/src/main/js/MainAbility/pages/bytestring/bytestring.css deleted file mode 100644 index bab6284..0000000 --- a/entry/src/main/js/MainAbility/pages/bytestring/bytestring.css +++ /dev/null @@ -1,68 +0,0 @@ -@import "../../common/css/common.css"; - -.container { - flex-direction: column; - width: 100%; -} - -.title { - font-size: 40px; - color: #000000; - opacity: 0.9; -} - -@media screen and (device-type: tablet) and (orientation: landscape) { - .title { - font-size: 100px; - } -} - -@media screen and (device-type: wearable) { - .title { - font-size: 28px; - color: #FFFFFF; - } -} - -@media screen and (device-type: tv) { - .container { - background-image: url("/common/images/Wallpaper.png"); - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .title { - font-size: 100px; - color: #FFFFFF; - } -} - -@media screen and (device-type: phone) and (orientation: landscape) { - .title { - font-size: 60px; - } -} - -.button-controller { - width: 100%; - align-items: center; - justify-content: center; - padding-top: 20px; - padding-bottom: 20px; -} - -.row { - width: 100%; -} - -.textfield { - width: 45%; - font-size: 16px; -} - -.text { - width: 100%; - font-size: 16px; - margin: 1% -} diff --git a/entry/src/main/js/MainAbility/pages/bytestring/bytestring.hml b/entry/src/main/js/MainAbility/pages/bytestring/bytestring.hml deleted file mode 100644 index a41e140..0000000 --- a/entry/src/main/js/MainAbility/pages/bytestring/bytestring.hml +++ /dev/null @@ -1,196 +0,0 @@ -
-
- - Hello world - -
- -
- - {{ encodeBase64Value }} - -
-
- - SGVsbG8gd29ybGQ= - -
- -
- - {{ decodeBase64Value }} - -
- -
- - Hello world - -
- -
- - {{ encodeHexValue }} - -
-
- - Hello world test test - -
- -
- - {{ encodemd5HexValue }} - -
-
- - 48656C6C6F20776F726C640D0A - -
- -
- - {{ decodeHexValue }} - -
- -
- - Hello world #4 ❤ ( ͡ㆆ ͜ʖ ͡ㆆ) - -
- -
- - {{ encodeUtf8Value }} - -
- -
- - Hello world - -
- -
- - {{ ofOutputValue }} - -
- -
- - HELLO WORLD - -
- -
- - {{ asciiLowercaseValue }} - -
- -
- - hello world - -
- -
- - {{ asciiUppercaseValue }} - -
- -
- - Hello world - -
- -
- - {{ byteArrayValue }} - -
- -
- - Hello world - -
-
- - {{ internalArrayValue }} - -
- -
- - Hello world - -
-
- - {{ hashCodeValue }} - -
-
- - - -
-
- Result of comparing with 10: {{ compareToResult }} -
- -
- - - -
- -
- getIndex Result for 'Hello world': {{ getIndexValue }} - -
-
- - - -
-
- Input size: {{ inputDataLength }} -
-
diff --git a/entry/src/main/js/MainAbility/pages/bytestring/bytestring.js b/entry/src/main/js/MainAbility/pages/bytestring/bytestring.js deleted file mode 100644 index af9d9d7..0000000 --- a/entry/src/main/js/MainAbility/pages/bytestring/bytestring.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (c) 2021 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 okio from 'okio'; - -var byteStringObj = new okio.ByteString.ByteString('Hello world'); - -export default { - data: { - decodeBase64Value: "", - decodeHexValue: "", - encodeUtf8Value: "", - ofOutputValue: "", - asciiLowercaseValue: "", - asciiUppercaseValue: "", - byteArrayValue: "", - internalArrayValue: "", - hashCodeValue:"", - inputData:"", - inputDataLength:"", - compareToValue : "Hello world", - compareToResult :"", - inputGetIndex: '', - getIndexValue: "", - encodeBase64Value:"", - encodeHexValue:"", - encodemd5HexValue:"" - }, - onInit() { - this.byteString(); - }, - encodeBase64() { - let encodeBase64 = byteStringObj.encodeUtf8('Hello world').Base64(); - this.encodeBase64Value = JSON.stringify(encodeBase64); - }, - decodeBase64() { - let decodeBase64 = byteStringObj.decodeBase64('SGVsbG8gd29ybGQ='); - this.decodeBase64Value = JSON.stringify(decodeBase64); - }, - encodeHex() { - let encodeHex = byteStringObj.encodeUtf8('Hello world').Hex(); - this.encodeHexValue = JSON.stringify(encodeHex); - }, - encodeMD5Hex() { - let encodeHex = byteStringObj.encodeUtf8('Hello world test test').md5().Hex(); - this.encodemd5HexValue = JSON.stringify(encodeHex); - }, - decodeHex() { - let decodehex = byteStringObj.decodeHex('48656C6C6F20776F726C640D0A'); - this.decodeHexValue = JSON.stringify(decodehex); - }, - encodeUtf8() { - let encodeUtf8 = byteStringObj.encodeUtf8('Hello world #4 ❤ ( ͡ㆆ ͜ʖ ͡ㆆ)'); - this.encodeUtf8Value = JSON.stringify(encodeUtf8); - }, - ofValue() { - let ofData = byteStringObj.of(["Hello", "world"]); - this.ofOutputValue = JSON.stringify(ofData); - }, - toAsciiLowercaseValue() { - let toAsciiLowercase = byteStringObj.toAsciiLowercase('HELLO WORLD'); - this.asciiLowercaseValue = JSON.stringify(toAsciiLowercase); - }, - toAsciiUppercaseValue() { - let toAsciiUppercase = byteStringObj.toAsciiUppercase('hello world'); - this.asciiUppercaseValue = JSON.stringify(toAsciiUppercase); - }, - toByteArrayValue() { - let toByteArray = byteStringObj.toByteArray(); - this.byteArrayValue = JSON.stringify(toByteArray); - }, - internalArray() { - let dataString = byteStringObj.internalArray(); - this.internalArrayValue = JSON.stringify(dataString); - }, - hashCode() { - let hashcode = byteStringObj.hashCode(); - this.hashCodeValue = JSON.stringify(hashcode); - }, - compareInputChange(e) { - this.compareToValue = e.text; - }, - compareToByteData() { - var byteA = new okio.ByteString.ByteString('10'); - var byteB = new okio.ByteString.ByteString(this.compareToValue); - this.compareToResult = byteA.compareToOther(byteB); - }, - getIndexInputChange(e) { - this.inputGetIndex = e.text; - }, - getIndex() { - // pass index(buffer's string value) for which you want to retrieve value - this.getIndexValue = byteStringObj.getWithIndex(this.inputGetIndex); - }, - inputDataChange(e){ - this.inputData = e.text; - }, - getLength() { - if (this.inputData.length > 0) { - var byteStrObj = new okio.ByteString.ByteString(this.inputData); - this.inputDataLength = byteStrObj.getSize(); - return; - } - this.inputDataLength = 0; - }, - byteString() { - /// API Methods. - // 1. decodeBase64 - returns byte array. - let decodeBase64 = byteStringObj.decodeBase64('SGVsbG8gd29ybGQ='); - - // 2. decodeHex - let decodehex = byteStringObj.decodeHex('48656C6C6F20776F726C640D0A'); - - //3. encodeUtf8 - let encodeUtf8 = byteStringObj.encodeUtf8('Hello world #4 ❤ ( ͡ㆆ ͜ʖ ͡ㆆ)'); - - //4. of () - let ofData = byteStringObj.of(["Hello", "world"]); - - //5. toAsciiLowercaseValue() - let toAsciiLowercase = byteStringObj.toAsciiLowercase('HELLO WORLD'); - - //6. toAsciiUppercaseValue() - let toAsciiUppercase = byteStringObj.toAsciiUppercase('hello world'); - - //7. toByteArrayValue() - let toByteArray = byteStringObj.toByteArray(); - - // 8. internalArray - let dataString = byteStringObj.internalArray(); - - //9. HashCode - let hashcode = byteStringObj.hashCode(); - - // 10. compareTo - var byteA = new okio.ByteString.ByteString('10'); - var byteB = new okio.ByteString.ByteString('10'); - var result = byteA.compareToOther(byteB); - - // 11. getLength - var byteStrObj = new okio.ByteString.ByteString(this.inputData); - this.inputDataLength = byteStrObj.getSize(); - } -} diff --git a/entry/src/main/js/MainAbility/pages/filehandler/filehandler.css b/entry/src/main/js/MainAbility/pages/filehandler/filehandler.css deleted file mode 100644 index e37d913..0000000 --- a/entry/src/main/js/MainAbility/pages/filehandler/filehandler.css +++ /dev/null @@ -1,64 +0,0 @@ -@import "../../common/css/common.css"; - -.container { - flex-direction: column; - justify-content: center; - align-items: center; -} - -.title { - font-size: 40px; - color: #000000; - opacity: 0.9; -} - -@media screen and (device-type: tablet) and (orientation: landscape) { - .title { - font-size: 100px; - } -} - -@media screen and (device-type: wearable) { - .title { - font-size: 28px; - color: #FFFFFF; - } -} - -@media screen and (device-type: tv) { - .container { - background-image: url("/common/images/Wallpaper.png"); - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .title { - font-size: 100px; - color: #FFFFFF; - } -} - -@media screen and (device-type: phone) and (orientation: landscape) { - .title { - font-size: 60px; - } -} - -.button-controller{ - align-items: center; - justify-content: center; - padding-top: 20px; - padding-bottom: 20px; -} - -.textfield{ - font-size: 16px; -} - -.text{ - width: 30%; - font-size: 16px; - margin-left: 30px; - margin-bottom: 5px; -} diff --git a/entry/src/main/js/MainAbility/pages/filehandler/filehandler.hml b/entry/src/main/js/MainAbility/pages/filehandler/filehandler.hml deleted file mode 100644 index 8144491..0000000 --- a/entry/src/main/js/MainAbility/pages/filehandler/filehandler.hml +++ /dev/null @@ -1,24 +0,0 @@ -
-
- - - -
- -
- -
-
- - - -
-
diff --git a/entry/src/main/js/MainAbility/pages/filehandler/filehandler.js b/entry/src/main/js/MainAbility/pages/filehandler/filehandler.js deleted file mode 100644 index 1467ab5..0000000 --- a/entry/src/main/js/MainAbility/pages/filehandler/filehandler.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2021 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 okio from 'okio'; -import Log from '../../log/log'; -import featureAbility from '@ohos.ability.featureAbility' - -export default { - data: { - title: "", - fileUri: '/data/data/com.openharmony.ohos.okioapplication/cache/test.txt', - writeInputValue: "", - readValue: "", - }, - onInit() { - }, - getWriteValue(e) { - this.writeInputValue = e.text; - }, - writeFile() { - var fileName = "/test.txt" - var that = this; - featureAbility.getContext().getFilesDir().then((data) => { - - that.fileUri=data+fileName; - Log.showInfo("okio: path: "+that.fileUri); - var sink = new okio.Sink(this.fileUri); - sink.write(that.writeInputValue,false); - - }).catch((err)=>{ - Log.showError("okio: path inside catch"+err); - }) - }, - readFileValue() { - try { - var that = this; - Log.showInfo("okio: path: " + that.fileUri); - var source = new okio.Source(that.fileUri); - - source.read().then(function (data) { - that.readValue = data; - }).catch(function (error) { - Log.showError("okio: readFileValue inside catch" + error); - }); - }catch(error){ - Log.showError("okio: readFileValue inside catch" + error); - } - }, - appendFileValue() { - var that = this; - Log.showInfo("okio: path: "+that.fileUri); - var sink = new okio.Sink(this.fileUri); - sink.write(that.writeInputValue,true); - } -} diff --git a/entry/src/main/js/MainAbility/pages/index/index.css b/entry/src/main/js/MainAbility/pages/index/index.css deleted file mode 100644 index e37d913..0000000 --- a/entry/src/main/js/MainAbility/pages/index/index.css +++ /dev/null @@ -1,64 +0,0 @@ -@import "../../common/css/common.css"; - -.container { - flex-direction: column; - justify-content: center; - align-items: center; -} - -.title { - font-size: 40px; - color: #000000; - opacity: 0.9; -} - -@media screen and (device-type: tablet) and (orientation: landscape) { - .title { - font-size: 100px; - } -} - -@media screen and (device-type: wearable) { - .title { - font-size: 28px; - color: #FFFFFF; - } -} - -@media screen and (device-type: tv) { - .container { - background-image: url("/common/images/Wallpaper.png"); - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .title { - font-size: 100px; - color: #FFFFFF; - } -} - -@media screen and (device-type: phone) and (orientation: landscape) { - .title { - font-size: 60px; - } -} - -.button-controller{ - align-items: center; - justify-content: center; - padding-top: 20px; - padding-bottom: 20px; -} - -.textfield{ - font-size: 16px; -} - -.text{ - width: 30%; - font-size: 16px; - margin-left: 30px; - margin-bottom: 5px; -} diff --git a/entry/src/main/js/MainAbility/pages/index/index.hml b/entry/src/main/js/MainAbility/pages/index/index.hml deleted file mode 100644 index a0ece83..0000000 --- a/entry/src/main/js/MainAbility/pages/index/index.hml +++ /dev/null @@ -1,21 +0,0 @@ -
-
- -
- -
- -
- -
- -
- - -
diff --git a/entry/src/main/module.json5 b/entry/src/main/module.json5 new file mode 100644 index 0000000..f635347 --- /dev/null +++ b/entry/src/main/module.json5 @@ -0,0 +1,43 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "metadata": [ + { + "name": "ArkTSPartialUpdate", + "value": "true" + } + ], + "abilities": [ + { + "name": "EntryAbility", + "srcEntrance": "./ets/entryability/EntryAbility.ts", + "description": "$string:EntryAbility_desc", + "icon": "$media:icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "visible": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/entry/src/main/resources/base/element/color.json b/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json index ad3d2fd..f945955 100644 --- a/entry/src/main/resources/base/element/string.json +++ b/entry/src/main/resources/base/element/string.json @@ -1,12 +1,16 @@ { "string": [ { - "name": "entry_MainAbility", - "value": "OKIO" + "name": "module_desc", + "value": "module description" }, { - "name": "mainability_description", - "value": "JS_Empty Ability" + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" } ] } \ No newline at end of file diff --git a/entry/src/main/resources/base/profile/main_pages.json b/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..74d52c4 --- /dev/null +++ b/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,8 @@ +{ + "src": [ + "pages/Index", + "pages/buffer", + "pages/bytestring", + "pages/filehandler" + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/en_US/element/string.json b/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 0000000..f945955 --- /dev/null +++ b/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/rawfile/test.txt b/entry/src/main/resources/rawfile/test.txt deleted file mode 100644 index cea8ca0..0000000 --- a/entry/src/main/resources/rawfile/test.txt +++ /dev/null @@ -1 +0,0 @@ -Okio JS \ No newline at end of file diff --git a/entry/src/main/resources/zh_CN/element/string.json b/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 0000000..597ecf9 --- /dev/null +++ b/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git a/hvigorfile.js b/hvigorfile.js index b8a72e6..1c48dfa 100644 --- a/hvigorfile.js +++ b/hvigorfile.js @@ -13,4 +13,4 @@ * limitations under the License. */ -module.exports = require('@ohos/hvigor-ohos-plugin').legacyAppTasks \ No newline at end of file +module.exports = require('@ohos/hvigor-ohos-plugin').appTasks \ No newline at end of file diff --git a/okio/.gitignore b/okio/.gitignore index 4f9a973..db26021 100644 --- a/okio/.gitignore +++ b/okio/.gitignore @@ -1,3 +1,4 @@ /node_modules /.preview -/build \ No newline at end of file +/build +package-lock.json \ No newline at end of file diff --git a/okio/build-profile.json5 b/okio/build-profile.json5 index d5e58e8..35dff6d 100644 --- a/okio/build-profile.json5 +++ b/okio/build-profile.json5 @@ -1,19 +1,5 @@ -/* - * Copyright (c) 2021 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. - */ { - "apiType": "faMode", + "apiType": "stageMode", "buildOption": { } } diff --git a/okio/hvigorfile.js b/okio/hvigorfile.ts similarity index 89% rename from okio/hvigorfile.js rename to okio/hvigorfile.ts index 4f2043e..34a2294 100644 --- a/okio/hvigorfile.js +++ b/okio/hvigorfile.ts @@ -12,5 +12,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -module.exports = require('@ohos/hvigor-ohos-plugin').legacyHarTasks +module.exports = require('@ohos/hvigor-ohos-plugin').harTasks diff --git a/okio/index.js b/okio/index.ts similarity index 46% rename from okio/index.js rename to okio/index.ts index 4948124..3475a8c 100644 --- a/okio/index.js +++ b/okio/index.ts @@ -1,10 +1,10 @@ /* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the MIT License, (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 + * http://opensource.org/licenses/MIT * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -13,16 +13,16 @@ * limitations under the License. */ -import {Buffer} from './src/main/js/core/Buffer.js'; -import {ByteString} from './src/main/js/core/ByteString.js'; -import Source from './src/main/js/filehandler/Source.js'; -import Sink from './src/main/js/filehandler/Sink.js' - -var okio = { - 'Buffer': Buffer, - 'ByteString': ByteString, - 'Source': Source, - 'Sink': Sink -} - -export default okio; \ No newline at end of file +//import {Buffer} from './src/main/js/core/Buffer.js'; +//import {ByteString} from './src/main/js/core/ByteString.js'; +//import Source from './src/main/js/filehandler/Source.js'; +//import Sink from './src/main/js/filehandler/Sink.js' +// +//var okio = { +// 'Buffer': Buffer, +// 'ByteString': ByteString, +// 'Source': Source, +// 'Sink': Sink +//} +// +//export default okio; \ No newline at end of file diff --git a/okio/package-lock.json b/okio/package-lock.json deleted file mode 100644 index 28740b9..0000000 --- a/okio/package-lock.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "@ohos/okio", - "version": "1.0.0", - "lockfileVersion": 1 -} diff --git a/okio/package.json b/okio/package.json index 2bee84b..b501ca3 100644 --- a/okio/package.json +++ b/okio/package.json @@ -1,19 +1,22 @@ { - "name": "@ohos/okio", - "version": "1.0.0", + "keywords": [ + "okio", + "OpenHarmony" + ], + "author": "ohos_tpc", "description": "Okio is a library that complements java.io and java.nio to make it much easier to access, store, and process your data", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, "ohos": { "org": "opensource" }, - "author": "ohos_tpc", - "license": "Apache License 2.0", + "main": "index.js", "repository": "https://gitee.com/openharmony-tpc/okio", - "keywords": [ - "okio", - "OpenHarmony" - ] + "type": "module", + "version": "1.0.0", + "dependencies": {}, + "license": "Apache License 2.0", + "devDependencies": {}, + "name": "@ohos/okio", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + } } diff --git a/okio/src/main/config.json b/okio/src/main/config.json deleted file mode 100644 index 7331238..0000000 --- a/okio/src/main/config.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "app": { - "bundleName": "cn.openharmony.okio.sample", - "vendor": "openharmony", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": {}, - "module": { - "package": "cn.openharmony.okio", - "deviceType": [ - "phone", - "tablet" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "okio", - "moduleType": "har" - }, - "uiSyntax": "js" - } -} diff --git a/okio/src/main/module.json5 b/okio/src/main/module.json5 new file mode 100644 index 0000000..78947fc --- /dev/null +++ b/okio/src/main/module.json5 @@ -0,0 +1,9 @@ +{ + "module": { + "name": "okio", + "type": "har", + "deviceTypes": [ + "default" + ] + } +} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 8fd77b1..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1643 +0,0 @@ -{ - "name": "okio", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@ohos/hvigor": { - "version": "1.0.6", - "resolved": "https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/product_npm/@ohos/hvigor/-/@ohos/hvigor-1.0.6.tgz", - "integrity": "sha512-jjp7vpvUOMW1Nf7TdyhOtonwWHoSyBJLUiZTQqIx/GJV4UJyIqsiURUOqFwncQ4L7PDdeHuWly4uEelknYeWhg==", - "requires": { - "@ohos/hvigor-base": "1.0.6", - "interpret": "1.4.0", - "liftoff": "4.0.0", - "mute-stdout": "1.0.0", - "pretty-hrtime": "1.0.0", - "v8flags": "3.2.0", - "yargs": "7.1.0" - } - }, - "@ohos/hvigor-base": { - "version": "1.0.6", - "resolved": "https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/product_npm/@ohos/hvigor-base/-/@ohos/hvigor-base-1.0.6.tgz", - "integrity": "sha512-cRDnWICTxmpNiFb9clIioqP5Oik1seLCICztXVhZqultrHuxwTheCRUZrHwlpyWdkSB2Al+FFBqmSwzIgZX4IQ==", - "requires": { - "json5": "2.2.0", - "log4js": "6.4.1", - "undertaker": "1.2.1" - } - }, - "@ohos/hvigor-ohos-plugin": { - "version": "1.0.6", - "resolved": "https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/product_npm/@ohos/hvigor-ohos-plugin/-/@ohos/hvigor-ohos-plugin-1.0.6.tgz", - "integrity": "sha512-MAAi8uJxMzODUoSSNfBr+fU4HQ20dfQtkje9I+X4asc7qY2kAplW/q9f5XS8IOvv8zhC8OcSgsAXOAJuLMstOQ==", - "requires": { - "@ohos/hvigor-base": "1.0.6", - "@ohos/sdkmanager-common": "1.1.3", - "ajv": "8.10.0", - "archiver": "5.3.0", - "execa": "5.1.1", - "fs-extra": "10.0.0", - "glob": "7.2.0", - "iconv-lite": "0.6.3", - "json5": "2.2.0", - "lodash": "4.17.21", - "pretty-hrtime": "1.0.3", - "resolve-package-path": "4.0.3" - }, - "dependencies": { - "fs-extra": { - "version": "10.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - } - } - }, - "@ohos/sdkmanager-common": { - "version": "1.1.3", - "resolved": "https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/product_npm/@ohos/sdkmanager-common/-/@ohos/sdkmanager-common-1.1.3.tgz", - "integrity": "sha512-d2uhVauDDJZIUvyyaWWoavG4N/jLyfF5IH5kEXKV6R8HNf3606H1zDQzA+UZtOfwwJFXhD9djRjnVFNB8xc7aw==" - }, - "ajv": { - "version": "8.10.0", - "resolved": "http://mirrors.tools.huawei.com/npm/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "archiver": { - "version": "5.3.0", - "resolved": "http://mirrors.tools.huawei.com/npm/archiver/-/archiver-5.3.0.tgz", - "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.0", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "http://mirrors.tools.huawei.com/npm/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-map": { - "version": "2.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "^1.0.0" - } - }, - "array-each": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, - "array-initial": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "http://mirrors.tools.huawei.com/npm/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "^4.0.0" - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "async": { - "version": "3.2.3", - "resolved": "http://mirrors.tools.huawei.com/npm/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "async-done": { - "version": "1.3.2", - "resolved": "http://mirrors.tools.huawei.com/npm/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "async-settle": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "^1.2.2" - } - }, - "bach": { - "version": "1.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "http://mirrors.tools.huawei.com/npm/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bl": { - "version": "4.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "http://mirrors.tools.huawei.com/npm/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "http://mirrors.tools.huawei.com/npm/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "http://mirrors.tools.huawei.com/npm/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "compress-commons": { - "version": "4.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "crc-32": { - "version": "1.2.2", - "resolved": "http://mirrors.tools.huawei.com/npm/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" - }, - "crc32-stream": { - "version": "4.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "d": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "date-format": { - "version": "4.0.6", - "resolved": "http://mirrors.tools.huawei.com/npm/date-format/-/date-format-4.0.6.tgz", - "integrity": "sha512-B9vvg5rHuQ8cbUXE/RMWMyX2YA5TecT3jKF5fLtGNlzPlU7zblSPmAm2OImDbWL+LDOQ6pUm+4LOFz+ywS41Zw==" - }, - "debug": { - "version": "4.3.4", - "resolved": "http://mirrors.tools.huawei.com/npm/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "http://mirrors.tools.huawei.com/npm/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "http://mirrors.tools.huawei.com/npm/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "http://mirrors.tools.huawei.com/npm/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.60", - "resolved": "http://mirrors.tools.huawei.com/npm/es5-ext/-/es5-ext-0.10.60.tgz", - "integrity": "sha512-jpKNXIt60htYG59/9FGf2PYT3pwMpnEbNKysU+k/4FGwyGtMotOvcZOuW+EmXXYASRqYSXQfGL5cVIthOTgbkg==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "http://mirrors.tools.huawei.com/npm/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "ext": { - "version": "1.6.0", - "resolved": "http://mirrors.tools.huawei.com/npm/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0", - "resolved": "http://mirrors.tools.huawei.com/npm/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "http://mirrors.tools.huawei.com/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "5.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - } - }, - "flagged-respawn": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" - }, - "flatted": { - "version": "3.2.5", - "resolved": "http://mirrors.tools.huawei.com/npm/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - }, - "for-in": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "10.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "glob": { - "version": "7.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "http://mirrors.tools.huawei.com/npm/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has": { - "version": "1.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "http://mirrors.tools.huawei.com/npm/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "human-signals": { - "version": "2.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "hypium": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/hypium/-/hypium-1.0.0.tgz", - "integrity": "sha512-nl+RQVv2AU/5FvFRhsXyWO5wh+2huhdqRZ3bszBWZzW+kpNI3AT4ydvVRYIfaQbYwV4UlX/rSc7BtFjLAezhow==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "http://mirrors.tools.huawei.com/npm/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "http://mirrors.tools.huawei.com/npm/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "http://mirrors.tools.huawei.com/npm/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "http://mirrors.tools.huawei.com/npm/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "http://mirrors.tools.huawei.com/npm/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "http://mirrors.tools.huawei.com/npm/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "http://mirrors.tools.huawei.com/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "http://mirrors.tools.huawei.com/npm/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "4.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "is-relative": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "http://mirrors.tools.huawei.com/npm/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json5": { - "version": "2.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "last-run": { - "version": "1.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "http://mirrors.tools.huawei.com/npm/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "liftoff": { - "version": "4.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", - "requires": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "object.map": "^1.0.1", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "http://mirrors.tools.huawei.com/npm/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "http://mirrors.tools.huawei.com/npm/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "http://mirrors.tools.huawei.com/npm/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "http://mirrors.tools.huawei.com/npm/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "http://mirrors.tools.huawei.com/npm/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" - }, - "log4js": { - "version": "6.4.1", - "resolved": "http://mirrors.tools.huawei.com/npm/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", - "requires": { - "date-format": "^4.0.3", - "debug": "^4.3.3", - "flatted": "^3.2.4", - "rfdc": "^1.3.0", - "streamroller": "^3.0.2" - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "http://mirrors.tools.huawei.com/npm/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "http://mirrors.tools.huawei.com/npm/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "http://mirrors.tools.huawei.com/npm/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "ms": { - "version": "2.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mute-stdout": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/mute-stdout/-/mute-stdout-1.0.0.tgz", - "integrity": "sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0=" - }, - "next-tick": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "http://mirrors.tools.huawei.com/npm/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "http://mirrors.tools.huawei.com/npm/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "http://mirrors.tools.huawei.com/npm/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://mirrors.tools.huawei.com/npm/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "http://mirrors.tools.huawei.com/npm/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "http://mirrors.tools.huawei.com/npm/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pify": { - "version": "2.3.0", - "resolved": "http://mirrors.tools.huawei.com/npm/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "http://mirrors.tools.huawei.com/npm/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pretty-hrtime": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", - "integrity": "sha1-9ualItPmBwRSK/Db5oVu0g515Nw=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "http://mirrors.tools.huawei.com/npm/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/readdir-glob/-/readdir-glob-1.1.1.tgz", - "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "rechoir": { - "version": "0.8.0", - "resolved": "http://mirrors.tools.huawei.com/npm/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "requires": { - "resolve": "^1.20.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve": { - "version": "1.22.0", - "resolved": "http://mirrors.tools.huawei.com/npm/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-package-path": { - "version": "4.0.3", - "resolved": "http://mirrors.tools.huawei.com/npm/resolve-package-path/-/resolve-package-path-4.0.3.tgz", - "integrity": "sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==", - "requires": { - "path-root": "^0.1.1" - } - }, - "rfdc": { - "version": "1.3.0", - "resolved": "http://mirrors.tools.huawei.com/npm/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "5.7.1", - "resolved": "http://mirrors.tools.huawei.com/npm/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "http://mirrors.tools.huawei.com/npm/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "http://mirrors.tools.huawei.com/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "http://mirrors.tools.huawei.com/npm/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, - "streamroller": { - "version": "3.0.6", - "resolved": "http://mirrors.tools.huawei.com/npm/streamroller/-/streamroller-3.0.6.tgz", - "integrity": "sha512-Qz32plKq/MZywYyhEatxyYc8vs994Gz0Hu2MSYXXLD233UyPeIeRBZARIIGwFer4Mdb8r3Y2UqKkgyDghM6QCg==", - "requires": { - "date-format": "^4.0.6", - "debug": "^4.3.4", - "fs-extra": "^10.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "http://mirrors.tools.huawei.com/npm/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - }, - "dependencies": { - "is-number": { - "version": "7.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - } - } - }, - "type": { - "version": "1.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "http://mirrors.tools.huawei.com/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "undertaker": { - "version": "1.2.1", - "resolved": "http://mirrors.tools.huawei.com/npm/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, - "universalify": { - "version": "2.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "http://mirrors.tools.huawei.com/npm/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8flags": { - "version": "3.2.0", - "resolved": "http://mirrors.tools.huawei.com/npm/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "http://mirrors.tools.huawei.com/npm/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "http://mirrors.tools.huawei.com/npm/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "http://mirrors.tools.huawei.com/npm/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "http://mirrors.tools.huawei.com/npm/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "3.2.2", - "resolved": "http://mirrors.tools.huawei.com/npm/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "yargs": { - "version": "7.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.1", - "resolved": "http://mirrors.tools.huawei.com/npm/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, - "zip-stream": { - "version": "4.1.0", - "resolved": "http://mirrors.tools.huawei.com/npm/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - } - } - } -} diff --git a/package.json b/package.json index 6773ec8..ed18c6b 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,19 @@ { - "license":"ISC", - "devDependencies":{}, - "name":"okio", - "ohos":{ - "org":"huawei", - "directoryLevel":"project", - "buildTool":"hvigor" - }, - "description":"OpenHarmony library for okio", - "repository":{}, - "version":"1.0.0", - "dependencies":{ - "@ohos/hvigor-ohos-plugin":"1.0.6", - "hypium":"^1.0.0", - "@ohos/hvigor":"1.0.6" - } -} \ No newline at end of file + "license": "ISC", + "devDependencies": {}, + "name": "okio", + "ohos": { + "org": "huawei", + "directoryLevel": "project", + "buildTool": "hvigor" + }, + "description": "OpenHarmony library for okio", + "repository": {}, + "version": "1.0.0", + "dependencies": { + "@ohos/hypium": "1.0.5", + "@ohos/hvigor-ohos-plugin": "1.4.0", + "hypium": "^1.0.0", + "@ohos/hvigor": "1.4.0" + } +} -- Gitee From fb8e61b824417894574fc71c99c44a80a141d1f0 Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 15:04:51 +0800 Subject: [PATCH 02/11] =?UTF-8?q?1=E3=80=82update=20library=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhaodongyang --- okio/index.ts | 22 +++++++--------- okio/src/main/{js => ets}/api/Buffer.d.ts | 0 okio/src/main/{js => ets}/api/ByteString.d.ts | 0 okio/src/main/{js => ets}/api/Sink.d.ts | 0 okio/src/main/{js => ets}/api/Source.d.ts | 0 .../{js/core/Buffer.js => ets/core/Buffer.ts} | 26 +++++++++---------- .../ByteString.js => ets/core/ByteString.ts} | 14 +++++----- .../Sink.js => ets/filehandler/Sink.ts} | 14 +++++++--- .../Source.js => ets/filehandler/Source.ts} | 3 ++- okio/src/main/{js => ets}/log.js | 0 okio/src/main/ets/okio.ts | 17 ++++++++++++ okio/src/main/{js => ets}/utils/BufferUtil.js | 0 okio/src/main/{js => ets}/utils/Hex.js | 0 okio/src/main/{js => ets}/utils/MD5.js | 0 okio/src/main/{js => ets}/utils/Segment.js | 0 .../src/main/{js => ets}/utils/SegmentPool.js | 0 okio/src/main/{js => ets}/utils/Utilities.js | 0 17 files changed, 58 insertions(+), 38 deletions(-) rename okio/src/main/{js => ets}/api/Buffer.d.ts (100%) rename okio/src/main/{js => ets}/api/ByteString.d.ts (100%) rename okio/src/main/{js => ets}/api/Sink.d.ts (100%) rename okio/src/main/{js => ets}/api/Source.d.ts (100%) rename okio/src/main/{js/core/Buffer.js => ets/core/Buffer.ts} (98%) rename okio/src/main/{js/core/ByteString.js => ets/core/ByteString.ts} (98%) rename okio/src/main/{js/filehandler/Sink.js => ets/filehandler/Sink.ts} (91%) rename okio/src/main/{js/filehandler/Source.js => ets/filehandler/Source.ts} (97%) rename okio/src/main/{js => ets}/log.js (100%) create mode 100644 okio/src/main/ets/okio.ts rename okio/src/main/{js => ets}/utils/BufferUtil.js (100%) rename okio/src/main/{js => ets}/utils/Hex.js (100%) rename okio/src/main/{js => ets}/utils/MD5.js (100%) rename okio/src/main/{js => ets}/utils/Segment.js (100%) rename okio/src/main/{js => ets}/utils/SegmentPool.js (100%) rename okio/src/main/{js => ets}/utils/Utilities.js (100%) diff --git a/okio/index.ts b/okio/index.ts index 3475a8c..6caa251 100644 --- a/okio/index.ts +++ b/okio/index.ts @@ -13,16 +13,12 @@ * limitations under the License. */ -//import {Buffer} from './src/main/js/core/Buffer.js'; -//import {ByteString} from './src/main/js/core/ByteString.js'; -//import Source from './src/main/js/filehandler/Source.js'; -//import Sink from './src/main/js/filehandler/Sink.js' -// -//var okio = { -// 'Buffer': Buffer, -// 'ByteString': ByteString, -// 'Source': Source, -// 'Sink': Sink -//} -// -//export default okio; \ No newline at end of file +export { Buffer } from './src/main/ets/core/Buffer'; + +export { ByteString } from './src/main/ets/core/ByteString'; + +export { default as Source } from './src/main/ets/filehandler/Source'; + +export { default as Sink } from './src/main/ets/filehandler/Sink' + +export { default as Okio } from './src/main/ets/okio' \ No newline at end of file diff --git a/okio/src/main/js/api/Buffer.d.ts b/okio/src/main/ets/api/Buffer.d.ts similarity index 100% rename from okio/src/main/js/api/Buffer.d.ts rename to okio/src/main/ets/api/Buffer.d.ts diff --git a/okio/src/main/js/api/ByteString.d.ts b/okio/src/main/ets/api/ByteString.d.ts similarity index 100% rename from okio/src/main/js/api/ByteString.d.ts rename to okio/src/main/ets/api/ByteString.d.ts diff --git a/okio/src/main/js/api/Sink.d.ts b/okio/src/main/ets/api/Sink.d.ts similarity index 100% rename from okio/src/main/js/api/Sink.d.ts rename to okio/src/main/ets/api/Sink.d.ts diff --git a/okio/src/main/js/api/Source.d.ts b/okio/src/main/ets/api/Source.d.ts similarity index 100% rename from okio/src/main/js/api/Source.d.ts rename to okio/src/main/ets/api/Source.d.ts diff --git a/okio/src/main/js/core/Buffer.js b/okio/src/main/ets/core/Buffer.ts similarity index 98% rename from okio/src/main/js/core/Buffer.js rename to okio/src/main/ets/core/Buffer.ts index 14341b6..ee9dd6e 100644 --- a/okio/src/main/js/core/Buffer.js +++ b/okio/src/main/ets/core/Buffer.ts @@ -70,9 +70,9 @@ function isShort(value, type) { function isByteValue(value) { var filter = /^(0|-?[1-9][0-9]*)$/.test(value); if (value >= -128 && value <= 127 && filter) - mIsByte = true; + mIsByte = true; else - mIsByte = false; + mIsByte = false; } Buffer.prototype.readShort = function () { @@ -83,7 +83,7 @@ Buffer.prototype.readShort = function () { commonReadShort$break: do { var tmp, tmp0; if (this.size.compareTo11rb$(L2) < 0) - return; + return; var segment = util.ensureNotNull(this.head); var pos = segment.pos; var limit = segment.limit; @@ -117,7 +117,7 @@ Buffer.prototype.readInt = function () { commonReadInt$break: do { var tmp, tmp0, tmp1, tmp2; if (this.size.compareTo11rb$(L4) < 0) - return; + return; var segment = util.ensureNotNull(this.head); var pos = segment.pos; var limit = segment.limit; @@ -175,7 +175,7 @@ Buffer.prototype.readUtf8ByteCount = function (byteCount) { return; } if (this.size.compareTo11rb$(byteCount) < 0) - return; + return; if (util.equals(byteCount, util.Long.ZERO)) { commonReadUtf8$result = ''; break commonReadUtf8$break; @@ -275,7 +275,7 @@ Buffer.prototype.writeUtf8BeginEndIndex = function (string, beginIndex, endIndex while (i < runLimit) { c = string.charCodeAt(i) | 0; if (c >= 128) - break; + break; data[segmentOffset + (tmp0 = i, i = tmp0 + 1 | 0, tmp0) | 0] = util.toByte(c); } var runSize = i + segmentOffset - tail.limit | 0; @@ -403,7 +403,7 @@ Buffer.prototype.writeByte = function (b) { Buffer.prototype.writeUtf8CodePoint = function (codePoint) { if (codePoint < 128) - this.writeByte(codePoint); + this.writeByte(codePoint); else if (codePoint < 2048) { var tail = this.writableSegment(2); var segment = util.ensureNotNull(this.head); @@ -412,7 +412,7 @@ Buffer.prototype.writeUtf8CodePoint = function (codePoint) { tail.limit = tail.limit + 2 | 0; this.size = this.size.add(util.Long.fromInt(2)); } else if (55296 <= codePoint && codePoint <= 57343) - this.writeByte(63); + this.writeByte(63); else if (codePoint < 65536) { var tail0 = this.writableSegment(3); tail0.data[tail0.limit] = util.toByte(codePoint >> 12 | 224); @@ -477,13 +477,13 @@ Buffer.prototype.readUtf8CodePoint = function () { } } if (codePoint > 1114111) - tmp0 = 65533; + tmp0 = 65533; else if (55296 <= codePoint && codePoint <= 57343) - tmp0 = 65533; + tmp0 = 65533; else if (codePoint < min) - tmp0 = 65533; + tmp0 = 65533; else - tmp0 = codePoint; + tmp0 = codePoint; commonReadUtf8CodePoint$result = tmp0; } while (false); @@ -518,7 +518,7 @@ Buffer.prototype.getCommonResult = function (pos) { while (true) { var nextOffset = offset2.add(util.Long.fromInt(s.limit - s.pos | 0)); if (nextOffset.compareTo11rb$(pos) > 0) - break; + break; s = util.ensureNotNull(s.next); offset2 = nextOffset; } diff --git a/okio/src/main/js/core/ByteString.js b/okio/src/main/ets/core/ByteString.ts similarity index 98% rename from okio/src/main/js/core/ByteString.js rename to okio/src/main/ets/core/ByteString.ts index c295fd1..0161b5c 100644 --- a/okio/src/main/js/core/ByteString.js +++ b/okio/src/main/ets/core/ByteString.ts @@ -120,20 +120,20 @@ var byteStringFunction = function(_, Util) { break; } if (outCount === out.length) - return out; + return out; return copyOf(out, outCount); } function decodeHexDigit(c) { var tmp; if ((new CharRange(48, 57)).containsmef7kx$(c)) - tmp = c - 48; + tmp = c - 48; else if ((new CharRange(97, 102)).containsmef7kx$(c)) - tmp = c - 97 + 10 | 0; + tmp = c - 97 + 10 | 0; else if ((new CharRange(65, 70)).containsmef7kx$(c)) - tmp = c - 65 + 10 | 0; + tmp = c - 65 + 10 | 0; else - throw illegalArgumentException('Unexpected hex digit: ' + String.fromCharCode(c)); + throw illegalArgumentException('Unexpected hex digit: ' + String.fromCharCode(c)); return tmp; } @@ -217,7 +217,7 @@ var byteStringFunction = function(_, Util) { return REPLACEMENT_BYTE; } }); - + function ByteString(data) { getByteStringCompanion(); this.data = data; @@ -264,7 +264,7 @@ var byteStringFunction = function(_, Util) { Log.showError('ArrayIndexOutOfBoundsException size=' + this.size + ' pos=' + pos); } return this.data[pos]; - }; + }; ByteString.prototype.getWithIndex = function(index) { return this.internalGet(index); }; diff --git a/okio/src/main/js/filehandler/Sink.js b/okio/src/main/ets/filehandler/Sink.ts similarity index 91% rename from okio/src/main/js/filehandler/Sink.js rename to okio/src/main/ets/filehandler/Sink.ts index 5e0adde..7332ab3 100644 --- a/okio/src/main/js/filehandler/Sink.js +++ b/okio/src/main/ets/filehandler/Sink.ts @@ -22,6 +22,8 @@ var isFileAdded = false; let fileDescriptor = null; export default class Sink { + filePath: string = '' + constructor(filePath) { this.filePath = filePath; } @@ -30,10 +32,11 @@ export default class Sink { if (isAppend) { this.writeData(data); } else { - if(this.exist()) this.deleteFile(); + if (this.exist()) this.deleteFile(); this.writeFile(data); } } + writeFile(content) { try { let fd = fileio.openSync(this.filePath, 0o102, 0o666) @@ -45,6 +48,7 @@ export default class Sink { Log.showError("Sink write Error - " + e); } } + writeData(content) { try { let fd = fileio.openSync(this.filePath, 0o102, 0o666) @@ -57,13 +61,15 @@ export default class Sink { Log.showError("Sink writeData Error - " + e); } } + deleteFile() { fileio.unlinkSync(this.filePath); } - exist(){ + + exist() { try { - let stat = fileio.statSync(this.filePath) - return stat.isFile() + let stat = fileio.statSync(this.filePath) + return stat.isFile() } catch (e) { return false } diff --git a/okio/src/main/js/filehandler/Source.js b/okio/src/main/ets/filehandler/Source.ts similarity index 97% rename from okio/src/main/js/filehandler/Source.js rename to okio/src/main/ets/filehandler/Source.ts index 7246305..f09e888 100644 --- a/okio/src/main/js/filehandler/Source.js +++ b/okio/src/main/ets/filehandler/Source.ts @@ -21,6 +21,7 @@ var fileDescriptor = null; var buffer = null; export default class Source { + filePath: string = '' constructor(filePath) { this.filePath = filePath; fileDescriptor = fileio.openSync(this.filePath, 0o102, 0o666); @@ -99,7 +100,7 @@ export default class Source { } return unicodeStr; } catch (error) { - Log.showError("Source read Error - " + error); + Log.showError("Source read Error - " + error); return null; } } diff --git a/okio/src/main/js/log.js b/okio/src/main/ets/log.js similarity index 100% rename from okio/src/main/js/log.js rename to okio/src/main/ets/log.js diff --git a/okio/src/main/ets/okio.ts b/okio/src/main/ets/okio.ts new file mode 100644 index 0000000..9b22aa2 --- /dev/null +++ b/okio/src/main/ets/okio.ts @@ -0,0 +1,17 @@ +import { Buffer } from './core/Buffer'; + +import { ByteString } from './core/ByteString'; + +import { default as Source } from './filehandler/Source'; + +import { default as Sink } from './filehandler/Sink' + +const Okio = { + 'Buffer': Buffer, + 'ByteString': ByteString, + 'Source': Source, + 'Sink': Sink, + +} + +export default Okio; \ No newline at end of file diff --git a/okio/src/main/js/utils/BufferUtil.js b/okio/src/main/ets/utils/BufferUtil.js similarity index 100% rename from okio/src/main/js/utils/BufferUtil.js rename to okio/src/main/ets/utils/BufferUtil.js diff --git a/okio/src/main/js/utils/Hex.js b/okio/src/main/ets/utils/Hex.js similarity index 100% rename from okio/src/main/js/utils/Hex.js rename to okio/src/main/ets/utils/Hex.js diff --git a/okio/src/main/js/utils/MD5.js b/okio/src/main/ets/utils/MD5.js similarity index 100% rename from okio/src/main/js/utils/MD5.js rename to okio/src/main/ets/utils/MD5.js diff --git a/okio/src/main/js/utils/Segment.js b/okio/src/main/ets/utils/Segment.js similarity index 100% rename from okio/src/main/js/utils/Segment.js rename to okio/src/main/ets/utils/Segment.js diff --git a/okio/src/main/js/utils/SegmentPool.js b/okio/src/main/ets/utils/SegmentPool.js similarity index 100% rename from okio/src/main/js/utils/SegmentPool.js rename to okio/src/main/ets/utils/SegmentPool.js diff --git a/okio/src/main/js/utils/Utilities.js b/okio/src/main/ets/utils/Utilities.js similarity index 100% rename from okio/src/main/js/utils/Utilities.js rename to okio/src/main/ets/utils/Utilities.js -- Gitee From b718569f33d226cdbe758224b9b868bba8470f78 Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 16:39:29 +0800 Subject: [PATCH 03/11] 1. update sample code Signed-off-by: zhaodongyang --- entry/package.json | 2 +- .../src/main/ets/entryability/EntryAbility.ts | 1 + entry/src/main/ets/pages/Index.ets | 36 ++- entry/src/main/ets/pages/buffer.ets | 186 +++++++++++++- entry/src/main/ets/pages/bytestring.ets | 243 +++++++++++++++++- entry/src/main/ets/pages/filehandler.ets | 91 ++++++- 6 files changed, 529 insertions(+), 30 deletions(-) diff --git a/entry/package.json b/entry/package.json index 2f815bc..f0c93ff 100644 --- a/entry/package.json +++ b/entry/package.json @@ -11,6 +11,6 @@ "repository": {}, "version": "1.0.0", "dependencies": { - "okio": "file:../okio" + "@ohos/okio": "file:../okio" } } diff --git a/entry/src/main/ets/entryability/EntryAbility.ts b/entry/src/main/ets/entryability/EntryAbility.ts index bd352a4..be5efb6 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ts +++ b/entry/src/main/ets/entryability/EntryAbility.ts @@ -20,6 +20,7 @@ import window from '@ohos.window'; export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + globalThis.context = this.context; } onDestroy() { diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 4d27c75..17ce043 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -24,7 +24,6 @@ struct Index { build() { Row() { Column() { - Text('测试Buffer') .width('90%') .height(50) @@ -36,11 +35,40 @@ struct Index { top: 10 }) .onClick(() => { - router.push({ - url: '' + router.pushUrl({ + url: 'pages/buffer' + }) + }) + Text('测试ByteString') + .width('90%') + .height(50) + .backgroundColor(0xCCCCCC) + .borderRadius(15) + .fontSize(16) + .textAlign(TextAlign.Center) + .margin({ + top: 10 + }) + .onClick(() => { + router.pushUrl({ + url: 'pages/bytestring' + }) + }) + Text('测试FileHandler') + .width('90%') + .height(50) + .backgroundColor(0xCCCCCC) + .borderRadius(15) + .fontSize(16) + .textAlign(TextAlign.Center) + .margin({ + top: 10 + }) + .onClick(() => { + router.pushUrl({ + url: 'pages/filehandler' }) }) - } .width('100%') diff --git a/entry/src/main/ets/pages/buffer.ets b/entry/src/main/ets/pages/buffer.ets index 0537d2a..83764a8 100644 --- a/entry/src/main/ets/pages/buffer.ets +++ b/entry/src/main/ets/pages/buffer.ets @@ -1,17 +1,183 @@ +import { Okio } from '@ohos/okio'; +import promptAction from '@ohos.promptAction' + @Entry @Component struct Buffer { - @State message: string = 'Hello World' + @State areaValue: string = ''; + @State rUtf8Value: string = ''; + @State rIntValue: string = ''; + @State rStringValue: string = ''; + @State rShortValue: string = ''; + @State rIntLeValue: string = ''; + @State rShortLeValue: string = ''; + @State rByteValue: string = ''; + @State rUtf8CodePointValue: string = ''; + @State rUtf8ByteCountValue: string = ''; + scroller: Scroller = new Scroller(); + controller: TextAreaController = new TextAreaController(); build() { - Row() { - Column() { - Text(this.message) - .fontSize(50) - .fontWeight(FontWeight.Bold) - } - .width('100%') - } - .height('100%') + Stack({ alignContent: Alignment.TopStart }) { + Scroll(this.scroller) { + Column() { + TextArea({ placeholder: '输入对应类型的数据,并点击按钮测试读取', controller: this.controller }) + .height(50) + .width('100%') + .margin(5) + .onChange((value: string) => { + this.areaValue = value; + this.controller.caretPosition(value.length); + }) + Text('测试readUTF8->' + this.rUtf8Value) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + if (this.areaValue != '' && typeof this.areaValue == 'string') { + buffer.writeUtf8(this.areaValue); + this.rUtf8Value = buffer.readUtf8(); + } else { + promptAction.showToast({ + message: 'No Null或者数据类型不对,需要类型string如:ate12fs', + bottom: '50%' + }) + } + }) + + Text('测试readInt->' + this.rIntValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeInt(this.areaValue); + this.rIntValue = buffer.readInt(); + }) + + Text('测试readString->' + this.rStringValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeString(this.areaValue); + this.rStringValue = buffer.readString(); + }) + Text('测试readShort->' + this.rShortValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeShort(this.areaValue); + this.rShortValue = buffer.readShort(); + }) + Text('测试readIntLe->' + this.rIntLeValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeIntLe(this.areaValue); + this.rIntLeValue = buffer.readIntLe(); + }) + Text('测试readShortLe->' + this.rShortLeValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeShortLe(this.areaValue); + this.rShortLeValue = buffer.readShortLe(); + }) + Text('测试readByte->' + this.rByteValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeUtf8CodePoint(this.areaValue); + this.rByteValue = buffer.readUtf8CodePoint(); + }) + Text('测试readUtf8ByteCodePoint->' + this.rUtf8CodePointValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeUtf8CodePoint(this.areaValue); + this.rUtf8CodePointValue = buffer.readUtf8CodePoint(buffer.size); + }) + Text('测试readUtf8ByteCount->' + this.rUtf8ByteCountValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + var buffer = new Okio.Buffer(); + buffer.writeUtf8(this.areaValue); + this.rUtf8ByteCountValue = buffer.readUtf8ByteCount(buffer.size); + }) + + }.width('100%') + .height('100%') + }.scrollable(ScrollDirection.Vertical) + .scrollBar(BarState.On) + .scrollBarColor(Color.Gray) + .scrollBarWidth(30) + + Button('全部重置显示', { type: ButtonType.Capsule, stateEffect: true }) + .backgroundColor(0x317aff) + .margin({ top: 200, left: 5 }) + .width(120) + .onClick(() => { + this.rUtf8Value = ''; + this.rIntValue = ''; + this.rStringValue = ''; + this.rShortValue = ''; + this.rIntLeValue = ''; + this.rShortLeValue = ''; + this.rByteValue = ''; + this.rUtf8CodePointValue = ''; + this.rUtf8ByteCountValue = ''; + }) + }.width('100%').height('100%').backgroundColor(0xDCDCDC) } } \ No newline at end of file diff --git a/entry/src/main/ets/pages/bytestring.ets b/entry/src/main/ets/pages/bytestring.ets index 5f253a3..3c5fc09 100644 --- a/entry/src/main/ets/pages/bytestring.ets +++ b/entry/src/main/ets/pages/bytestring.ets @@ -1,17 +1,240 @@ +import { ByteString } from '@ohos/okio'; +import promptAction from '@ohos.promptAction' + +const byteStringObj = new ByteString.ByteString('hello world') + @Entry @Component struct Bytestring { - @State message: string = 'Hello World' + @State decodeBase64Value: string = ''; + @State decodeHexValue: string = ''; + @State encodeUtf8Value: string = ''; + @State ofOutPutValue: string = ''; + @State asciiLowercaseValue: string = ''; + @State asciiUppercaseValue: string = ''; + @State byteArrayValue: string = ''; + @State internalArrayValue: string = ''; + @State hashCodeValue: string = ''; + @State inputData: string = ''; + @State inputDataLength: string = ''; + @State compareToResult: string = ''; + @State encodeBase64Value: string = ''; + @State encodeHexValue: string = ''; + @State encodeMD5HexValue: string = ''; + scroller: Scroller = new Scroller(); build() { - Row() { - Column() { - Text(this.message) - .fontSize(50) - .fontWeight(FontWeight.Bold) - } - .width('100%') - } - .height('100%') + Stack({ alignContent: Alignment.TopStart }) { + Scroll(this.scroller) { + Column() { + + Text('测试decodeBase64->' + this.decodeBase64Value) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let decodeBase64 = byteStringObj.decodeBase64('SGVsbG8gd29ybGQ='); + this.decodeBase64Value = JSON.stringify(decodeBase64); + }) + + Text('测试decodeHex->' + this.decodeHexValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let decodeHex = byteStringObj.decodeHex('48656C6C6F20776F726C640D0A'); + this.decodeHexValue = JSON.stringify(decodeHex); + }) + + Text('测试encodeUtf8->' + this.encodeUtf8Value) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let encodeUtf8 = byteStringObj.encodeUtf8('Hello Word #4 ❤ (!!!∑(゚Д゚ノ)ノ) '); + this.encodeUtf8Value = JSON.stringify(encodeUtf8); + }) + Text('测试of->' + this.ofOutPutValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let ofData = byteStringObj.of(['hello', 'world']); + this.ofOutPutValue = JSON.stringify(ofData); + }) + Text('测试toAsciiLowercase->' + this.asciiLowercaseValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let toAsciiLowercase = byteStringObj.toAsciiLowercase(['HELLO WORLD']); + this.asciiLowercaseValue = JSON.stringify(toAsciiLowercase); + }) + Text('测试toAsciiUppercase->' + this.asciiUppercaseValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let toAsciiUppercase = byteStringObj.toAsciiUppercase(['hello world']); + this.asciiUppercaseValue = JSON.stringify(toAsciiUppercase); + }) + Text('测试toByteArray->' + this.byteArrayValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let toByteArray = byteStringObj.toByteArray(); + this.byteArrayValue = JSON.stringify(toByteArray); + }) + Text('测试interArray->' + this.internalArrayValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let dataString = byteStringObj.interArray(); + this.internalArrayValue = JSON.stringify(dataString); + }) + Text('测试hashCode->' + this.hashCodeValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let hashCode = byteStringObj.hashCode(); + this.hashCodeValue = JSON.stringify(hashCode); + }) + Text('测试compareToOther->' + this.compareToResult) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let byteA = new ByteString.ByteString('a'); + let byteB = new ByteString.ByteString('cadsd'); + this.compareToResult = byteA.compareToOther(byteB); + }) + Text('测试getLength->' + this.inputDataLength) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + this.inputData = 'abcdesgsd213' + if (this.inputData.length > 0) { + let byteObj = new ByteString.ByteString(this.inputData); + this.inputDataLength = byteObj.getSize(); + } + }) + + Text('测试encodeBase64->' + this.encodeBase64Value) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let encodeBase64 = byteStringObj.encodeUtf8('Hello World').Base64(); + this.encodeBase64Value = JSON.stringify(encodeBase64); + }) + + Text('测试encodeHex->' + this.encodeHexValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let encodeHex = byteStringObj.encodeUtf8('Hello World').Hex(); + this.encodeHexValue = JSON.stringify(encodeHex); + }) + + Text('测试encodeMD5Hex->' + this.encodeMD5HexValue) + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + let encodeMD5Hex = byteStringObj.encodeUtf8('Hello World test test').md5().Hex(); + this.encodeMD5HexValue = JSON.stringify(encodeMD5Hex); + }) + + }.width('100%') + .height('100%') + }.scrollable(ScrollDirection.Vertical) + .scrollBar(BarState.On) + .scrollBarColor(Color.Gray) + .scrollBarWidth(30) + + Button('全部重置显示', { type: ButtonType.Capsule, stateEffect: true }) + .backgroundColor(0x317aff) + .margin({ top: 200, left: 5 }) + .width(120) + .onClick(() => { + this.decodeBase64Value = ''; + this.decodeHexValue = ''; + this.encodeUtf8Value = ''; + this.ofOutPutValue = ''; + this.asciiLowercaseValue = ''; + this.asciiUppercaseValue = ''; + this.byteArrayValue = ''; + this.internalArrayValue = ''; + this.hashCodeValue = ''; + this.inputData = ''; + this.inputDataLength = ''; + this.compareToResult = ''; + this.encodeBase64Value = ''; + this.encodeHexValue = ''; + this.encodeMD5HexValue = ''; + + }) + }.width('100%').height('100%').backgroundColor(0xDCDCDC) } } \ No newline at end of file diff --git a/entry/src/main/ets/pages/filehandler.ets b/entry/src/main/ets/pages/filehandler.ets index 398fa68..11247a8 100644 --- a/entry/src/main/ets/pages/filehandler.ets +++ b/entry/src/main/ets/pages/filehandler.ets @@ -1,16 +1,97 @@ +import { Okio } from '@ohos/okio'; +import promptAction from '@ohos.promptAction' + @Entry @Component struct Filehandler { - @State message: string = 'Hello World' + @State message: string = 'Hello World'; + @State areaValue: string = ''; + @State readValue: string = ''; + path: string = ''; + controller: TextAreaController = new TextAreaController(); + + aboutToAppear() { + this.path = globalThis.context.filesDir + '/testFile.txt'; + } + + writeData(path: string, content: string) { + var sink = new Okio.Sink(path); + sink.write(content, false); + } + + readeData(path: string) { + var source = new Okio.Source(path); + source.read().then((data) => { + if (data && typeof data === 'string') { + this.readValue = data; + } + }).catch((err) => { + promptAction.showToast({ + message: 'okio: readFileValue inside catch ' + err, + bottom: "50%" + }) + }); + } build() { Row() { Column() { - Text(this.message) - .fontSize(50) - .fontWeight(FontWeight.Bold) + TextArea({ placeholder: '输入字符串可写入文件', controller: this.controller }) + .height(50) + .width('100%') + .margin(5) + .onChange((value: string) => { + this.areaValue = value; + this.controller.caretPosition(value.length); + }) + + Text('测试将字符串写入文件') + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + if (this.areaValue && this.areaValue.length > 0) { + this.writeData(this.path, this.areaValue); + promptAction.showToast({ + message: '写入完成~~~', + bottom: '50%' + }) + } else { + promptAction.showToast({ + message: '写入失败,内容不可以为空', + bottom: '50%' + }) + } + }) + Text('测试将字符串读出来') + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + this.readeData(this.path); + }) + + Text('测试读取的文件数据') + .width('90%') + .height(50) + .backgroundColor(0xFFFFFF) + .borderRadius(15) + .fontSize(13) + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + .onClick(() => { + + }) } - .width('100%') + .width('100%').backgroundColor(Color.White) } .height('100%') } -- Gitee From f5e6394931084161e10d6bd85dccb2069cca7d0f Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 17:09:52 +0800 Subject: [PATCH 04/11] fix crash bug and page show issue Signed-off-by: zhaodongyang --- entry/src/main/config.json | 98 ------------------- entry/src/main/ets/pages/buffer.ets | 1 - entry/src/main/ets/pages/bytestring.ets | 6 +- entry/src/main/ets/pages/filehandler.ets | 2 +- .../main/resources/base/element/string.json | 2 +- .../main/resources/en_US/element/string.json | 2 +- .../main/resources/zh_CN/element/string.json | 2 +- 7 files changed, 6 insertions(+), 107 deletions(-) delete mode 100644 entry/src/main/config.json diff --git a/entry/src/main/config.json b/entry/src/main/config.json deleted file mode 100644 index a78be09..0000000 --- a/entry/src/main/config.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "app": { - "vendor": "openharmony", - "bundleName": "cn.openharmony.okio.sample", - "version": { - "code": 1000000, - "name": "1.0.0" - } - }, - "deviceConfig": {}, - "module": { - "package": "cn.openharmony.okio.sample", - "name": ".MyApplication", - "mainAbility": ".MainAbility", - "srcPath": "", - "deviceType": [ - "default" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "entry", - "moduleType": "entry", - "installationFree": false - }, - "abilities": [ - { - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "orientation": "unspecified", - "visible": true, - "srcPath": "MainAbility", - "name": ".MainAbility", - "srcLanguage": "js", - "icon": "$media:icon", - "description": "$string:mainability_description", - "formsEnabled": false, - "label": "$string:entry_MainAbility", - "type": "page", - "launchType": "standard" - } - ], - "reqPermissions": [ - { - "name": "ohos.permission.WRITE_USER_STORAGE", - "reason": "Storage", - "usedScene": { - "when": "always", - "ability": [ - "cn.openharmony.okio.sample" - ] - } - }, - { - "name": "ohos.permission.READ_USER_STORAGE", - "reason": "Storage", - "usedScene": { - "when": "always", - "ability": [ - "cn.openharmony.okio.sample" - ] - } - }, - { - "name": "ohos.permission.WRITE_EXTERNAL_MEDIA_MEMORY", - "reason": "Storage", - "usedScene": { - "when": "always", - "ability": [ - "cn.openharmony.okio.sample" - ] - } - } - ], - "js": [ - { - "pages": [ - "pages/index/index", - "pages/buffer/buffer", - "pages/bytestring/bytestring", - "pages/filehandler/filehandler" - ], - "name": ".MainAbility", - "window": { - "designWidth": 720, - "autoDesignWidth": true - } - } - ] - } -} \ No newline at end of file diff --git a/entry/src/main/ets/pages/buffer.ets b/entry/src/main/ets/pages/buffer.ets index 83764a8..b2ab5d6 100644 --- a/entry/src/main/ets/pages/buffer.ets +++ b/entry/src/main/ets/pages/buffer.ets @@ -157,7 +157,6 @@ struct Buffer { }) }.width('100%') - .height('100%') }.scrollable(ScrollDirection.Vertical) .scrollBar(BarState.On) .scrollBarColor(Color.Gray) diff --git a/entry/src/main/ets/pages/bytestring.ets b/entry/src/main/ets/pages/bytestring.ets index 3c5fc09..19b94cc 100644 --- a/entry/src/main/ets/pages/bytestring.ets +++ b/entry/src/main/ets/pages/bytestring.ets @@ -27,7 +27,6 @@ struct Bytestring { Stack({ alignContent: Alignment.TopStart }) { Scroll(this.scroller) { Column() { - Text('测试decodeBase64->' + this.decodeBase64Value) .width('90%') .height(50) @@ -114,7 +113,7 @@ struct Bytestring { let toByteArray = byteStringObj.toByteArray(); this.byteArrayValue = JSON.stringify(toByteArray); }) - Text('测试interArray->' + this.internalArrayValue) + Text('测试internalArray->' + this.internalArrayValue) .width('90%') .height(50) .backgroundColor(0xFFFFFF) @@ -123,7 +122,7 @@ struct Bytestring { .textAlign(TextAlign.Center) .margin({ top: 10 }) .onClick(() => { - let dataString = byteStringObj.interArray(); + let dataString = byteStringObj.internalArray(); this.internalArrayValue = JSON.stringify(dataString); }) Text('测试hashCode->' + this.hashCodeValue) @@ -207,7 +206,6 @@ struct Bytestring { }) }.width('100%') - .height('100%') }.scrollable(ScrollDirection.Vertical) .scrollBar(BarState.On) .scrollBarColor(Color.Gray) diff --git a/entry/src/main/ets/pages/filehandler.ets b/entry/src/main/ets/pages/filehandler.ets index 11247a8..c9a1cf1 100644 --- a/entry/src/main/ets/pages/filehandler.ets +++ b/entry/src/main/ets/pages/filehandler.ets @@ -79,7 +79,7 @@ struct Filehandler { this.readeData(this.path); }) - Text('测试读取的文件数据') + Text('测试读取的文件数据' + this.readValue) .width('90%') .height(50) .backgroundColor(0xFFFFFF) diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json index f945955..80f8bce 100644 --- a/entry/src/main/resources/base/element/string.json +++ b/entry/src/main/resources/base/element/string.json @@ -10,7 +10,7 @@ }, { "name": "EntryAbility_label", - "value": "label" + "value": "okio" } ] } \ No newline at end of file diff --git a/entry/src/main/resources/en_US/element/string.json b/entry/src/main/resources/en_US/element/string.json index f945955..80f8bce 100644 --- a/entry/src/main/resources/en_US/element/string.json +++ b/entry/src/main/resources/en_US/element/string.json @@ -10,7 +10,7 @@ }, { "name": "EntryAbility_label", - "value": "label" + "value": "okio" } ] } \ No newline at end of file diff --git a/entry/src/main/resources/zh_CN/element/string.json b/entry/src/main/resources/zh_CN/element/string.json index 597ecf9..b5c38da 100644 --- a/entry/src/main/resources/zh_CN/element/string.json +++ b/entry/src/main/resources/zh_CN/element/string.json @@ -10,7 +10,7 @@ }, { "name": "EntryAbility_label", - "value": "label" + "value": "okio" } ] } \ No newline at end of file -- Gitee From 7f16010e848fb80949afe84b173e502d1fc990aa Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 17:23:27 +0800 Subject: [PATCH 05/11] update config file Signed-off-by: zhaodongyang --- README.en.md | 294 -------------------------------------------- entry/hvigorfile.js | 15 --- hvigorfile.js | 16 --- hvigorfile.ts | 2 + okio/hvigorfile.ts | 18 +-- 5 files changed, 4 insertions(+), 341 deletions(-) delete mode 100644 README.en.md delete mode 100644 entry/hvigorfile.js delete mode 100644 hvigorfile.js create mode 100644 hvigorfile.ts diff --git a/README.en.md b/README.en.md deleted file mode 100644 index e3caca8..0000000 --- a/README.en.md +++ /dev/null @@ -1,294 +0,0 @@ -# okio - -okio is a library that provides support for system input and output through data streams, serialization and the file system, and defines buffers, which are containers for data, and provides an overview of the other NIO packages. To make it much easier to access, store, and process your data. It started as a component of OkHttp. - -## Usage Instructions -Import okio as below from node_modules after adding okio_ohos module in project root directory: -`` -import okio from 'okio; -`` - -1. To write and read Utf8 data in buffer: -`` - performWriteUtf8() { - var buffer = new okio.Buffer(); - buffer.writeUtf8("test"); - var readUtfValue = buffer.readUtf8(); - } -`` - -2. To write and read int data in buffer: -`` - performWriteInt() { - var buffer = new okio.Buffer(); - buffer.writeInt(10); - var readInt = buffer.readInt(); - } -`` - -3. To write and read String data in buffer: -`` - performWriteString() { - var buffer = new okio.Buffer(); - buffer.writeString("Test"); - var readString = buffer.readString(); - } -`` - -4. To write and read intLe data in buffer: -`` - performWriteIntLe() { - var buffer = new okio.Buffer(); - buffer.writeIntLe(25); - var readIntLe = buffer.readIntLe(); - } -`` - -5. To write and read short data in buffer: -`` - performWriteShort() { - var buffer = new okio.Buffer(); - buffer.writeShort(25); - var readShort = buffer.readShort(); - } -`` - -6. To write and read shortLe data in buffer: -`` - performWriteShortLe() { - var buffer = new okio.Buffer(); - buffer.writeShortLe(100); - var readShortLe = buffer.readShortLe(); - } -`` - -7. To write and read byte data in buffer: -`` - performWriteByte() { - var buffer = new okio.Buffer(); - buffer.writeByte(9) - var readByte = buffer.readByte(); - } -`` - -8. To write and read Utf8CodePoint data in buffer: -`` - performWriteUtf8CodePoint() { - var buffer = new okio.Buffer(); - buffer.writeUtf8CodePoint(99); - var readUtf8CodePointValue = buffer.readUtf8CodePoint(); - } -`` - -9. To write Base64 string data in ByteString format: -`` - decodeBase64() { - let decodeBase64 = byteStringCompanObj.decodeBase64('SGVsbG8gd29ybGQ='); - let decodeBase64Value = JSON.stringify(decodeBase64); - } -`` - -10. To write Hex string data in ByteString format: -`` - decodeHex() { - let decodehex = byteStringCompanObj.decodeHex('48656C6C6F20776F726C640D0A'); - let decodeHexValue = JSON.stringify(decodehex); - } -`` - -11. To write Utf8 string data in ByteString format: -`` - encodeUtf8() { - let encodeUtf8 = byteStringCompanObj.encodeUtf8('Hello world #4 ❤ ( ͡ㆆ ͜ʖ ͡ㆆ)'); - let encodeUtf8Value = JSON.stringify(encodeUtf8); - } -`` - -12. To write type of string data in ByteString format: -`` - ofValue() { - let ofData = byteStringCompanObj.of(["Hello", "world"]); - let ofOutputValue = JSON.stringify(ofData); - } -`` - -13. To write content on file: -`` - writeFile() { - let fileUri = '/data/data/com.openharmony.ohos.okioapplication/cache/test.txt'; - let writeInputValue = "openharmony"; - var sink = new okio.Sink(fileUri); - var isAppend = false; - - sink.write(writeInputValue,isAppend); - } -`` - -14. To read content from file: -`` - readFileValue() { - let fileUri = '/data/data/com.openharmony.ohos.okioapplication/cache/test.txt'; - var source = new okio.Source(fileUri); - - source.read().then(function (data) { - that.readValue = data; - }).catch(function (error) { - //Error - }); - } -`` - -## API - -### Buffer -**writeUtf8(data: string): Buffer;** -Take Utf8 as input to write into Buffer - -**readUtf8(): string;** -Returns string from Buffer - -**writeInt(data: int): Buffer; -Take int as input to write into Buffer - -**readInt(): int;** -Returns int from Buffer - -**writeString(data: string): Buffer;** -Take string as input to write into Buffer - -**readString(): string;** -Returns string from Buffer - -**writeIntLe(data: intLe): Buffer; -Take intLe as input to write into Buffer - -**readIntLe(): intLe;** -Returns int from Buffer - -**writeShortLe(data: shortLe): Buffer;** -Take shortLe as input to write into Buffer - -**readShortLe(): shortLe;** -Returns shortLe from Buffer - -**writeShort(data: short): Buffer;** -Take short as input to write into Buffer - -**readShort(): short;** -Returns short from Buffer - -**writeByte(data: byte): Buffer;** -Take byte as input to write into Buffer - -**readByte(): byte;** -Returns byte from Buffer - -**writeUtf8CodePoint(data: Utf8CodePoint): Buffer;** -Take Utf8CodePoint as input to write into Buffer - -**readUtf8CodePoint(): Utf8CodePoint;** -Returns Utf8CodePoint from Buffer - -**readUtf8ByteCount(byteCount): string** -Returns string from Buffer - -**writableSegment(minimumCapacity): int;** -Write segment capacity and return it - -**writeSubString(string, beginIndex, endIndex): Buffer** -Write sub string of string and returns Buffer - -**writeUtf8BeginEndIndex(string, beginIndex, endIndex): Buffer** -Write sub string of string and returns Buffer - -**getCommonResult(pos: int): string;** -get common result with position and returns string - -**skipByteCount(bytecount: int)** -skip the number of bytes when you read from buffer - -**readByteArray(byteCount): string** -read byte array and returns string - -**readFully(sink: int): Buffer** -read data as per given length and returns Buffer - -**read(sink, offset, byteCount): int** -reads data and returns length - -### ByteString -**ByteString(data: buffer);** -Take data buffer and create ByteString instance - -**decodeBase64(data: Base64String): ByteString;** -Takes Base64-encoded bytes as input, decodes it and returns their value as a byte string - -**decodeHex(data: HexString): ByteString;** -Takes Hex-encoded bytes as input, decodes it and returns their value as a byte string. - -**encodeUtf8(data: string): ByteString;** -Takes string as input and returns a new byte string containing the UTF-8 bytes of input - -**of(data: array): ByteString;** -Returns a new byte string containing a clone of the bytes of data. - -**toAsciiLowercase(data: string): ByteString;** -Take string as input and returns Ascii lowercase value in ByteString with array - -**toAsciiUppercase(data: string): ByteString;** -Take string as input and returns Ascii uppercase value in ByteString with array - -**toByteArray():ByteArray;** -Returns a byte array containing a copy of the bytes in this ByteString. - -**getWithIndex(index: int):ByteValue;** -Take integer as input and returns ByteValue - -**getSize():DataLength;** -Returns the number of bytes in this ByteString. - -**internalArray():ByteArray;** -Returns the bytes of this string without a defensive copy. Do not mutate! - -**hashCode():Hashcode;** -Returns the hashcode value - -**compareToOther(other: Buffer): ByteArray** -It can be used to compare two bytestrings and returns: -(a) 0 if bytestring’s size is same and strings are equal -(b) -1 if original bytestring’s 1st character is less than comparing bytestring’s 1st character -(c) 1 if original byte string’s 1st character is higher than comparing bytestring’s 1st character - - -### FIleHandler(Sink, Source) -**read(): string;** -Read content from file and returns it - -**write(writeInputValue: string, isAppend: boolean);** -Writes string value to new file if isAPpend set to false or update in the existing file if isAppend is set to true - -## Download and install - - ```javascript - npm install @ohos/okio --save - ``` -For more information on OpenHarmony npm environment configuration, please refer to [How to Install OpenHarmony npm package](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md) - -## Compatibility -Supports OpenHarmony API version 8 and above - -## Directory Structure -```` -|---- okio -| |---- entry # sample app usage -| |---- okio # okio library -| |---- index.ets # External interface -| |---- README.MD # installation and usage -```` - -## Code Contribution -If you find any problems during usage, you can submit an [Issue](https://gitee.com/openharmony-tpc/okio/issues) to us. Of course, we also welcome you to send us [PR](https://gitee.com/openharmony-tpc/httpclient/pulls). - -## Open source License -This project is based on [Apache License 2.0](https://gitee.com/openharmony-tpc/okio/blob/master/LICENSE) ,please enjoy and participate in open source freely. - diff --git a/entry/hvigorfile.js b/entry/hvigorfile.js deleted file mode 100644 index 046440d..0000000 --- a/entry/hvigorfile.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2021 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. - */ -module.exports = require('@ohos/hvigor-ohos-plugin').hapTasks diff --git a/hvigorfile.js b/hvigorfile.js deleted file mode 100644 index 1c48dfa..0000000 --- a/hvigorfile.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2021 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. - */ - -module.exports = require('@ohos/hvigor-ohos-plugin').appTasks \ No newline at end of file diff --git a/hvigorfile.ts b/hvigorfile.ts new file mode 100644 index 0000000..6478186 --- /dev/null +++ b/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/okio/hvigorfile.ts b/okio/hvigorfile.ts index 34a2294..47e6e1f 100644 --- a/okio/hvigorfile.ts +++ b/okio/hvigorfile.ts @@ -1,16 +1,2 @@ -/* - * Copyright (c) 2021 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. - */ -module.exports = require('@ohos/hvigor-ohos-plugin').harTasks - +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { harTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file -- Gitee From 5468227c15df004f852f77bda470042d8d64c245 Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 17:30:07 +0800 Subject: [PATCH 06/11] delete sign config info Signed-off-by: zhaodongyang --- build-profile.json5 | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/build-profile.json5 b/build-profile.json5 index 8e818d4..479d5cc 100644 --- a/build-profile.json5 +++ b/build-profile.json5 @@ -22,20 +22,7 @@ "signingConfig": "default" } ], - "signingConfigs": [ - { - "name": "default", - "material": { - "certpath": "C:\\Users\\Administrator\\.ohos\\config\\openharmony\\auto_ohos_default_okio_cn.openharmony.okio.sample.cer", - "storePassword": "0000001BF52CB1774D3D9963415C501AC03DA249E9CF45060237D70BC6953721F2A7918768811787F05720", - "keyAlias": "debugKey", - "keyPassword": "0000001BC2DBFC99CEB53BC3B3EFB9EEC9B4B5A4FBBA01E9159CCEDCB8189DDCFCD598AA034A830E789432", - "profile": "C:\\Users\\Administrator\\.ohos\\config\\openharmony\\auto_ohos_default_okio_cn.openharmony.okio.sample.p7b", - "signAlg": "SHA256withECDSA", - "storeFile": "C:\\Users\\Administrator\\.ohos\\config\\openharmony\\auto_ohos_default_okio_cn.openharmony.okio.sample.p12" - } - } - ] + "signingConfigs": [] }, "modules": [ { -- Gitee From 7dfb9fa97b8a5c7797b305d73c9cc1e430906e19 Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 19:03:45 +0800 Subject: [PATCH 07/11] update README CHANGELOG.md package.json Signed-off-by: zhaodongyang --- CHANGELOG.md | 4 ++++ README.md | 3 ++- okio/package.json | 12 +++++++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31c8bce..20c0303 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +##1.0.1 + +适配DevEco Studio 3.1 Beta1及以上版本 + ##1.0.0 1、在Openharmony框架中使用JS语言移植适配okio diff --git a/README.md b/README.md index 7173333..d824dd4 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,8 @@ import okio from '@ohos/okio'; | write | writeInputValue: string, isAppend: boolean | void | 如果 isAppend 设置为 false,则将字符串值写入新文件;如果 isAppend 设置为 true,则附加更新到现有文件 | ## 兼容性 -支持OpenHarmony API version 8 及以上版本 +- [DevEco Studio](https://developer.harmonyos.com/cn/develop/deveco-studio#download) 版本:DevEco Studio 3.1 Beta1及以上版本。 +- OpenHarmony SDK版本:API version 9及以上版本。 ## 目录结构 ````javascript diff --git a/okio/package.json b/okio/package.json index b501ca3..b205a6f 100644 --- a/okio/package.json +++ b/okio/package.json @@ -1,18 +1,24 @@ { + "types": "", "keywords": [ "okio", - "OpenHarmony" + "OpenHarmony", + "HarmonyOS" ], "author": "ohos_tpc", "description": "Okio is a library that complements java.io and java.nio to make it much easier to access, store, and process your data", "ohos": { "org": "opensource" }, - "main": "index.js", + "main": "index.ts", "repository": "https://gitee.com/openharmony-tpc/okio", "type": "module", - "version": "1.0.0", + "version": "1.0.1", "dependencies": {}, + "tags": [ + "Tool", + "FileData" + ], "license": "Apache License 2.0", "devDependencies": {}, "name": "@ohos/okio", -- Gitee From 55aba164a96f95f0ccb9dd2ccc9507c51e65c218 Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Wed, 1 Mar 2023 19:11:58 +0800 Subject: [PATCH 08/11] format code Signed-off-by: zhaodongyang --- CHANGELOG.md | 4 +- OAT.xml | 32 +- README.md | 4 + okio/src/main/ets/api/Buffer.d.ts | 476 +++++++++++++----------- okio/src/main/ets/api/ByteString.d.ts | 254 ++++++------- okio/src/main/ets/api/Sink.d.ts | 16 +- okio/src/main/ets/api/Source.d.ts | 16 +- okio/src/main/ets/core/Buffer.ts | 16 +- okio/src/main/ets/core/ByteString.ts | 85 +++-- okio/src/main/ets/filehandler/Sink.ts | 2 +- okio/src/main/ets/filehandler/Source.ts | 3 +- okio/src/main/ets/log.js | 6 +- okio/src/main/ets/utils/BufferUtil.js | 2 +- okio/src/main/ets/utils/Hex.js | 4 +- okio/src/main/ets/utils/MD5.js | 30 +- okio/src/main/ets/utils/Segment.js | 8 +- 16 files changed, 510 insertions(+), 448 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20c0303..8f4bf63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ -##1.0.1 +## 1.0.1 适配DevEco Studio 3.1 Beta1及以上版本 -##1.0.0 +## 1.0.0 1、在Openharmony框架中使用JS语言移植适配okio diff --git a/OAT.xml b/OAT.xml index c272048..7c12ea6 100644 --- a/OAT.xml +++ b/OAT.xml @@ -2,15 +2,33 @@ - - - + + + - - - + + + - + diff --git a/README.md b/README.md index d824dd4..6f68c42 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ npm install @ohos/okio --save OpenHarmony npm环境配置等更多内容,请参考[如何安装OpenHarmony npm包](https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_npm_usage.md) ## 使用说明: + ```javascript import okio from '@ohos/okio'; ``` @@ -217,10 +218,12 @@ import okio from '@ohos/okio'; | write | writeInputValue: string, isAppend: boolean | void | 如果 isAppend 设置为 false,则将字符串值写入新文件;如果 isAppend 设置为 true,则附加更新到现有文件 | ## 兼容性 + - [DevEco Studio](https://developer.harmonyos.com/cn/develop/deveco-studio#download) 版本:DevEco Studio 3.1 Beta1及以上版本。 - OpenHarmony SDK版本:API version 9及以上版本。 ## 目录结构 + ````javascript |---- okio | |---- entry # 示例代码文件夹 @@ -234,4 +237,5 @@ import okio from '@ohos/okio'; 使用过程中发现任何问题都可以提[Issue](https://gitee.com/openharmony-tpc/okio/issues) 给我们,当然,我们也非常欢迎你给我们提[PR](https://gitee.com/openharmony-tpc/okio/pulls)。 ## 开源协议 + 本项目基于 [Apache License 2.0](https://gitee.com/openharmony-tpc/okio/blob/master/LICENSE),请自由地享受和参与开源。 diff --git a/okio/src/main/ets/api/Buffer.d.ts b/okio/src/main/ets/api/Buffer.d.ts index 96aa9bc..b5c5b23 100644 --- a/okio/src/main/ets/api/Buffer.d.ts +++ b/okio/src/main/ets/api/Buffer.d.ts @@ -23,266 +23,292 @@ */ declare namespace Buffer { - /** - * write Utf8 data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: The data to be written in Buffer - * @return - Buffer - */ +/** + * write Utf8 data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: The data to be written in Buffer + * @return - Buffer + */ function writeUtf8(data: string): Buffer; /** - * read Utf8 data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Returns the Utf8 data - */ + * read Utf8 data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Returns the Utf8 data + */ function readUtf8(): string; /** - * write int data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: int data to be written in Buffer - * @return - Buffer - */ + * write int data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: int data to be written in Buffer + * @return - Buffer + */ function writeInt(data): Buffer; /** - * read int data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Returns the int data - */ - function readInt(): var int; + * read int data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Returns the int data + */ + function readInt(): var + + int; /** - * write string data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: The data to be written in Buffer - * @return Buffer - */ + * write string data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: The data to be written in Buffer + * @return Buffer + */ function writeString(data: string): Buffer; /** - * read string data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Returns the string data - */ + * read string data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Returns the string data + */ function readString(): string; /** - * write intLe data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: intLe data to be written in Buffer - * @return Buffer - */ - function writeIntLe(data): var Buffer; + * write intLe data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: intLe data to be written in Buffer + * @return Buffer + */ + function writeIntLe(data): var + + Buffer; + + /** + * read intLe data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Returns the intLe data + */ + function readIntLe(): var + + intLe; + + /** + * write shortLe data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: shortLe data to be written in Buffer + * @return Buffer + */ + function writeShortLe(data): var + + Buffer; + + /** + * read Utf8 shortLe. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Returns the shortLe data + */ + function readShortLe(): var + + shortLe; + + /** + * write short data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: short data to be written in Buffer + * @return Buffer + */ + function writeShort(data): var + + Buffer; + + /** + * read short data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Returns the short data + */ + function readShort(): var + + short; + + /** + * write byte data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: byte data to be written in Buffer + * @return Buffer + */ + function writeByte(data): var + + Buffer; + + /** + * read byte data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Returns the byte data + */ + function readByte(): var + + byte; /** - * read intLe data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Returns the intLe data - */ - function readIntLe(): var intLe; + * write Utf8CodePoint data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: Utf8CodePoint data to be written in Buffer + * @return Buffer + */ + function writeUtf8CodePoint(data): var + + Buffer; /** - * write shortLe data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: shortLe data to be written in Buffer - * @return Buffer - */ - function writeShortLe(data): var Buffer; + * read Utf8CodePoint data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return Utf8CodePoint data + */ + function readUtf8CodePoint(): var + + Utf8CodePoint; /** - * read Utf8 shortLe. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Returns the shortLe data - */ - function readShortLe(): var shortLe; + * read Utf8ByteCount data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param byteCount: int byteCount to be written in integer + * @return Utf8ByteCount data + */ + function readUtf8ByteCount(byteCount): var + + string + + /** + * write sub string of string. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param string: The string to be written in string + * @param beginIndex: The beginIndex to be written in integer + * @param endIndex: The endIndex to be written in integer + * @return buffer data + */ + function writeSubString(string, beginIndex, endIndex): Buffer /** - * write short data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: short data to be written in Buffer - * @return Buffer - */ - function writeShort(data): var Buffer; + * write Utf8 sub string of string. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param string: The string to be written in string + * @param beginIndex: The beginIndex to be written in integer + * @param endIndex: The endIndex to be written in integer + * @return buffer data + */ + function writeUtf8BeginEndIndex(string, beginIndex, endIndex): Buffer /** - * read short data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Returns the short data - */ - function readShort(): var short; + * write string. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param pos: int pos to be written in integer + * @return string data + */ + function getCommonResult(pos): string; /** - * write byte data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: byte data to be written in Buffer - * @return Buffer - */ - function writeByte(data): var Buffer; + * skip the bytes. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param bytecount: int bytecount to be written in integer + */ + function skipByteCount(bytecount) /** - * read byte data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Returns the byte data - */ - function readByte(): var byte; + * read byte array. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param byteCount: The bytecount to be written in integer + * @return string data + */ + function readByteArray(byteCount): string /** - * write Utf8CodePoint data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: Utf8CodePoint data to be written in Buffer - * @return Buffer - */ - function writeUtf8CodePoint(data): var Buffer; + * read data by given length. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param sink: int sink to be written in integer + * @return buffer data + */ + function readFully(sink): Buffer /** - * read Utf8CodePoint data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return Utf8CodePoint data - */ - function readUtf8CodePoint(): var Utf8CodePoint; - - /** - * read Utf8ByteCount data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param byteCount: int byteCount to be written in integer - * @return Utf8ByteCount data - */ - function readUtf8ByteCount(byteCount): var string - - /** - * write sub string of string. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param string: The string to be written in string - * @param beginIndex: The beginIndex to be written in integer - * @param endIndex: The endIndex to be written in integer - * @return buffer data - */ - function writeSubString(string, beginIndex, endIndex): Buffer - - /** - * write Utf8 sub string of string. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param string: The string to be written in string - * @param beginIndex: The beginIndex to be written in integer - * @param endIndex: The endIndex to be written in integer - * @return buffer data - */ - function writeUtf8BeginEndIndex(string, beginIndex, endIndex): Buffer - - /** - * write string. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param pos: int pos to be written in integer - * @return string data - */ - function getCommonResult(pos): string; - - /** - * skip the bytes. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param bytecount: int bytecount to be written in integer - */ - function skipByteCount(bytecount) - - /** - * read byte array. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param byteCount: The bytecount to be written in integer - * @return string data - */ - function readByteArray(byteCount): string - - /** - * read data by given length. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param sink: int sink to be written in integer - * @return buffer data - */ - function readFully(sink): Buffer - - /** - * read data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param sink: The sink to be written in integer - * @param offset: The offset to be written in integer - * @param byteCount: The byteCount to be written in integer - * @return data length - */ - function read(sink, offset, byteCount): var int + * read data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param sink: The sink to be written in integer + * @param offset: The offset to be written in integer + * @param byteCount: The byteCount to be written in integer + * @return data length + */ + function read(sink, offset, byteCount): var + + int } export default Buffer; \ No newline at end of file diff --git a/okio/src/main/ets/api/ByteString.d.ts b/okio/src/main/ets/api/ByteString.d.ts index ec6da4f..31147c0 100644 --- a/okio/src/main/ets/api/ByteString.d.ts +++ b/okio/src/main/ets/api/ByteString.d.ts @@ -22,144 +22,146 @@ * @permission N/A */ declare namespace ByteString { - - /** - * Create ByteString instance. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: String data to be stored in Buffer - */ - function ByteString(data: buffer); + +/** + * Create ByteString instance. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: String data to be stored in Buffer + */ + function ByteString(data: buffer); /** - * write Base64String data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: The data to be decode - * @return - ByteString - */ + * write Base64String data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: The data to be decode + * @return - ByteString + */ function decodeBase64(data: Base64String): ByteString; /** - * write HexString data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: The data to be decode - * @return - ByteString - */ + * write HexString data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: The data to be decode + * @return - ByteString + */ function decodeHex(data: HexString): ByteString; /** - * write string data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: The data to be decode - * @return - ByteString - */ + * write string data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: The data to be decode + * @return - ByteString + */ function encodeUtf8(data: string): ByteString; /** - * write array data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: array data - * @return - ByteString - */ + * write array data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: array data + * @return - ByteString + */ function of(data: array): ByteString; - - /** - * write string data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: The data to be string - * @return - ByteString - */ - function toAsciiLowercase(data: string): ByteString; - - /** - * write string data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: The data to be string - * @return - ByteString - */ - function toAsciiUppercase(data: string): ByteString; - - /** - * Return ByteString data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return - ByteString - */ - function toByteArray(): ByteString; - - /** - * write int data. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param index: The index to be integer - * @return - ByteValue - */ - function getWithIndex(index: int):ByteValue; - - /** - * Return data size. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return - DataLength - */ - function getSize(): var DataLength; - - /** - * Return byte array. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return - ByteArray - */ - function internalArray():ByteArray; - - /** - * Return hash code. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return - Hashcode - */ - function hashCode():Hashcode - - /** - * write byte array. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param other: The other to be buffer. - * @return - ByteValue - */ - function compareToOther(other: Buffer): ByteArray + + /** + * write string data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: The data to be string + * @return - ByteString + */ + function toAsciiLowercase(data: string): ByteString; + + /** + * write string data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: The data to be string + * @return - ByteString + */ + function toAsciiUppercase(data: string): ByteString; + + /** + * Return ByteString data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return - ByteString + */ + function toByteArray(): ByteString; + + /** + * write int data. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param index: The index to be integer + * @return - ByteValue + */ + function getWithIndex(index: int): ByteValue; + + /** + * Return data size. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return - DataLength + */ + function getSize(): var + + DataLength; + + /** + * Return byte array. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return - ByteArray + */ + function internalArray(): ByteArray; + + /** + * Return hash code. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return - Hashcode + */ + function hashCode(): Hashcode + + /** + * write byte array. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param other: The other to be buffer. + * @return - ByteValue + */ + function compareToOther(other: Buffer): ByteArray } export default ByteString; \ No newline at end of file diff --git a/okio/src/main/ets/api/Sink.d.ts b/okio/src/main/ets/api/Sink.d.ts index a05dddc..206b3ee 100644 --- a/okio/src/main/ets/api/Sink.d.ts +++ b/okio/src/main/ets/api/Sink.d.ts @@ -23,14 +23,14 @@ */ declare namespace Sink { - /** - * Write content onto file. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @param data: file path - */ +/** + * Write content onto file. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @param data: file path + */ function write(data: string, isAppend: boolean); } diff --git a/okio/src/main/ets/api/Source.d.ts b/okio/src/main/ets/api/Source.d.ts index 384c0f7..14ba945 100644 --- a/okio/src/main/ets/api/Source.d.ts +++ b/okio/src/main/ets/api/Source.d.ts @@ -23,14 +23,14 @@ */ declare namespace Source { - /** - * read file. - * - * @devices phone, tablet - * @since 1.0.0 - * @sysCap AAFwk - * @return - string; - */ +/** + * read file. + * + * @devices phone, tablet + * @since 1.0.0 + * @sysCap AAFwk + * @return - string; + */ function read(): read and returns content written on file; } diff --git a/okio/src/main/ets/core/Buffer.ts b/okio/src/main/ets/core/Buffer.ts index ee9dd6e..8d0567c 100644 --- a/okio/src/main/ets/core/Buffer.ts +++ b/okio/src/main/ets/core/Buffer.ts @@ -14,8 +14,8 @@ */ import BufferUtil from '../utils/BufferUtil.js'; -import {util} from '../utils/Utilities.js'; -import {SegmentPool} from '../utils/SegmentPool.js'; +import { util } from '../utils/Utilities.js'; +import { SegmentPool } from '../utils/SegmentPool.js'; import Log from '../log.js'; var mIsInt = false; @@ -29,6 +29,7 @@ export function Buffer() { this.head = null; this.sizeDefault = util.Long.ZERO; } + Object.defineProperty(Buffer.prototype, 'size', { configurable: true, get: function () { @@ -51,7 +52,7 @@ function isInteger(value, type) { if (type == "intLe") mIsIntLe = true; else mIsInt = true; } else { - if (type == "intLe") mIsIntLe = false; + if (type == "intLe") mIsIntLe = false; else mIsInt = false; } } @@ -62,7 +63,7 @@ function isShort(value, type) { if (type == "shortLe") mIsShortLe = true; else mIsShort = true; } else { - if (type == "shortLe") mIsShortLe = false; + if (type == "shortLe") mIsShortLe = false; else mIsShort = false; } } @@ -512,7 +513,7 @@ Buffer.prototype.getCommonResult = function (pos) { } var s0 = s; var offset1 = offset0; - commonGet$result=util.ensureNotNull(s0).data[util.Long.fromInt(s0.pos).add(pos).subtract(offset1).toInt()]; + commonGet$result = util.ensureNotNull(s0).data[util.Long.fromInt(s0.pos).add(pos).subtract(offset1).toInt()]; } else { var offset2 = L0; while (true) { @@ -524,14 +525,15 @@ Buffer.prototype.getCommonResult = function (pos) { } var s1 = s; var offset3 = offset2; - commonGet$result=util.ensureNotNull(s1).data[util.Long.fromInt(s1.pos).add(pos).subtract(offset3).toInt()]; + commonGet$result = util.ensureNotNull(s1).data[util.Long.fromInt(s1.pos).add(pos).subtract(offset3).toInt()]; } } while (false); return commonGet$result; }; -function checkOffsetAndCount(size, offset, byteCount) {} +function checkOffsetAndCount(size, offset, byteCount) { +} Buffer.prototype.skipByteCount = function (byteCount) { var tmp; diff --git a/okio/src/main/ets/core/ByteString.ts b/okio/src/main/ets/core/ByteString.ts index 0161b5c..859f895 100644 --- a/okio/src/main/ets/core/ByteString.ts +++ b/okio/src/main/ets/core/ByteString.ts @@ -15,11 +15,12 @@ import { util } from '../utils/Utilities.js'; import Log from '../log.js'; -import {hex} from '../utils/Hex.js' -import {Md5} from '../utils/MD5.js' +import { hex } from '../utils/Hex.js' +import { Md5 } from '../utils/MD5.js' + var byteString = {}; -var byteStringFunction = function(_, Util) { +var byteStringFunction = function (_, Util) { 'use strict'; var L6 = Util.Long.fromInt(6); @@ -64,6 +65,7 @@ var byteStringFunction = function(_, Util) { return base64; } + function decodeBase64ToArray($receiver) { var tmp, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5; var limit = $receiver.length; @@ -75,7 +77,9 @@ var byteStringFunction = function(_, Util) { limit = limit - 1 | 0; } var out = new Int8Array(Util.Long.fromInt(limit).multiply(L6).div(L8).toInt()); - var outCount = 0; var inCount = 0; var word = 0; + var outCount = 0; + var inCount = 0; + var word = 0; tmp = limit; for (var pos = 0; pos < tmp; pos++) { var c0 = $receiver.charCodeAt(pos); @@ -140,10 +144,12 @@ var byteStringFunction = function(_, Util) { function asUtf8ToByteArray($receiver) { return commonAsUtf8ToByteArray($receiver); } + function ArrayIndexOutOfBoundsException(message) { IndexOutOfBoundsException.call(this, message); this.name = 'ArrayIndexOutOfBoundsException'; } + function commonAsUtf8ToByteArray($receiver) { var bytes = new Int8Array(4 * $receiver.length | 0); var tmp = $receiver.length; @@ -209,11 +215,12 @@ var byteStringFunction = function(_, Util) { } return copyOf(bytes, $receiver.length); } + var package$okio = _.okio || (_.okio = {}); REPLACEMENT_BYTE = toByte(63 | 0); Object.defineProperty(package$okio, 'REPLACEMENT_BYTE_8be2vx$', { - get: function() { + get: function () { return REPLACEMENT_BYTE; } }); @@ -223,16 +230,18 @@ var byteStringFunction = function(_, Util) { this.data = data; this.hashValue = 0; } + Object.defineProperty(ByteString.prototype, 'hashCode8b', { configurable: true, - get: function() { + get: function () { return this.hashValue; }, - set: function(value) {} + set: function (value) { + } }); ByteString.prototype.toAsciiLowercase = function (data) { - if(data === undefined || data === null || data.length === 0) { + if (data === undefined || data === null || data.length === 0) { Log.showError('Invalid toAsciiLowercase input'); return; } @@ -246,7 +255,7 @@ var byteStringFunction = function(_, Util) { }; ByteString.prototype.toAsciiUppercase = function (data) { - if(data === undefined || data === null || data.length === 0) { + if (data === undefined || data === null || data.length === 0) { Log.showError('Invalid toAsciiUppercase input'); return; } @@ -258,48 +267,47 @@ var byteStringFunction = function(_, Util) { } return new ByteString(commonToAsciiUppercase$result); }; - ByteString.prototype.internalGet = function(pos) { - if (pos >= this.size || pos < 0) - { + ByteString.prototype.internalGet = function (pos) { + if (pos >= this.size || pos < 0) { Log.showError('ArrayIndexOutOfBoundsException size=' + this.size + ' pos=' + pos); } return this.data[pos]; }; - ByteString.prototype.getWithIndex = function(index) { + ByteString.prototype.getWithIndex = function (index) { return this.internalGet(index); }; Object.defineProperty(ByteString.prototype, 'size', { configurable: true, - get: function() { + get: function () { return this.getSize(); } }); - ByteString.prototype.getSize = function() { - if(this.data === undefined || this.data === null) { + ByteString.prototype.getSize = function () { + if (this.data === undefined || this.data === null) { Log.showError('Invalid getSize input'); return; } return this.data.length; }; - ByteString.prototype.toByteArray = function() { - if(this.data === undefined || this.data === null || this.data.length === 0) { + ByteString.prototype.toByteArray = function () { + if (this.data === undefined || this.data === null || this.data.length === 0) { Log.showError('Invalid toByteArray input'); return; } return this.data.slice(); }; - ByteString.prototype.internalArray = function() { - if(this.data === undefined || this.data === null || this.data.length === 0) { + ByteString.prototype.internalArray = function () { + if (this.data === undefined || this.data === null || this.data.length === 0) { Log.showError('Invalid toAsciiLowercase input'); return; } return this.data; }; - ByteString.prototype.hashCode = function() { + ByteString.prototype.hashCode = function () { var commonHashCode$result; commonHashCode$break: do { var result = this.hashCode8b; @@ -315,8 +323,8 @@ var byteStringFunction = function(_, Util) { return commonHashCode$result; }; - ByteString.prototype.compareToOther = function(other) { - if(other === undefined || other === null || other.length === 0) { + ByteString.prototype.compareToOther = function (other) { + if (other === undefined || other === null || other.length === 0) { Log.showError('Invalid compareToOther input'); return; } @@ -351,15 +359,15 @@ var byteStringFunction = function(_, Util) { this.EMPTY = new ByteString(new Int8Array([])); } - ByteString.prototype.of = function(data) { - if(data === undefined || data === null || data.length === 0) { + ByteString.prototype.of = function (data) { + if (data === undefined || data === null || data.length === 0) { Log.showError('Invalid of input'); return; } return new ByteString(data.slice()); }; - ByteString.prototype.encodeUtf8 = function($receiver) { - if($receiver === undefined || $receiver === null || $receiver.length === 0) { + ByteString.prototype.encodeUtf8 = function ($receiver) { + if ($receiver === undefined || $receiver === null || $receiver.length === 0) { Log.showError('Invalid encodeUtf8 input'); return; } @@ -367,42 +375,42 @@ var byteStringFunction = function(_, Util) { byteString.utf8 = $receiver; return byteString; }; - ByteString.prototype.decodeBase64 = function($receiver) { - if($receiver === undefined || $receiver === null || $receiver.length === 0) { + ByteString.prototype.decodeBase64 = function ($receiver) { + if ($receiver === undefined || $receiver === null || $receiver.length === 0) { Log.showError('Invalid decodeBase64 input'); return; } var decoded = decodeBase64ToArray($receiver); return decoded != null ? new ByteString(decoded) : null; }; - ByteString.prototype.Base64 = function() { - if(this.data === undefined || this.data === null || this.data.length === 0) { + ByteString.prototype.Base64 = function () { + if (this.data === undefined || this.data === null || this.data.length === 0) { Log.showError('Invalid encodeBase64 input'); return; } return encodeBase64(this.data); }; - ByteString.prototype.Hex = function() { - if(this.data === undefined || this.data === null || this.data.length === 0) { + ByteString.prototype.Hex = function () { + if (this.data === undefined || this.data === null || this.data.length === 0) { Log.showError('Invalid encode Hex input'); return; } let encoded = hex(this.data); return encoded; }; - ByteString.prototype.md5 = function() { - if(this.data === undefined || this.data === null || this.data.length === 0) { + ByteString.prototype.md5 = function () { + if (this.data === undefined || this.data === null || this.data.length === 0) { Log.showError('Invalid encode Hex input'); return; } let data = this.data var md = new Md5(); md.update(data, 0, data.length); - let encoded = md.digest(); + let encoded = md.digest(); return new ByteString(encoded); }; - ByteString.prototype.decodeHex = function($receiver) { - if($receiver === undefined || $receiver === null || $receiver.length === 0 || $receiver.length % 2 != 0) { + ByteString.prototype.decodeHex = function ($receiver) { + if ($receiver === undefined || $receiver === null || $receiver.length === 0 || $receiver.length % 2 != 0) { Log.showError('Invalid decodeHex input'); return; } @@ -434,6 +442,7 @@ var byteStringFunction = function(_, Util) { } return byteStringCompanion; } + ByteString.$metadata$ = { kind: kindClass, simpleName: 'ByteString', diff --git a/okio/src/main/ets/filehandler/Sink.ts b/okio/src/main/ets/filehandler/Sink.ts index 7332ab3..01716dc 100644 --- a/okio/src/main/ets/filehandler/Sink.ts +++ b/okio/src/main/ets/filehandler/Sink.ts @@ -22,7 +22,7 @@ var isFileAdded = false; let fileDescriptor = null; export default class Sink { - filePath: string = '' + filePath: string = '' constructor(filePath) { this.filePath = filePath; diff --git a/okio/src/main/ets/filehandler/Source.ts b/okio/src/main/ets/filehandler/Source.ts index f09e888..a3235e8 100644 --- a/okio/src/main/ets/filehandler/Source.ts +++ b/okio/src/main/ets/filehandler/Source.ts @@ -21,7 +21,8 @@ var fileDescriptor = null; var buffer = null; export default class Source { - filePath: string = '' + filePath: string = '' + constructor(filePath) { this.filePath = filePath; fileDescriptor = fileio.openSync(this.filePath, 0o102, 0o666); diff --git a/okio/src/main/ets/log.js b/okio/src/main/ets/log.js index 72b6d08..ee79625 100644 --- a/okio/src/main/ets/log.js +++ b/okio/src/main/ets/log.js @@ -26,7 +26,7 @@ export default class Log { * @param {string} log - Log needs to be printed */ static showInfo(log, ...ms) { - console.info(log,ms); + console.info(log, ms); } /** @@ -35,7 +35,7 @@ export default class Log { * @param {string} log - Log needs to be printed */ static showDebug(log, ...ms) { - console.debug(log,ms); + console.debug(log, ms); } /** @@ -44,6 +44,6 @@ export default class Log { * @param {string} log - Log needs to be printed */ static showError(log, ...ms) { - console.error(log,ms); + console.error(log, ms); } } diff --git a/okio/src/main/ets/utils/BufferUtil.js b/okio/src/main/ets/utils/BufferUtil.js index fcb690c..2bca762 100644 --- a/okio/src/main/ets/utils/BufferUtil.js +++ b/okio/src/main/ets/utils/BufferUtil.js @@ -13,7 +13,7 @@ * limitations under the License. */ -import {util} from "./Utilities.js"; +import { util } from './Utilities.js'; var BufferUtilInstance = null; diff --git a/okio/src/main/ets/utils/Hex.js b/okio/src/main/ets/utils/Hex.js index 1aa51d2..f437504 100644 --- a/okio/src/main/ets/utils/Hex.js +++ b/okio/src/main/ets/utils/Hex.js @@ -51,7 +51,7 @@ function toChar(a) { function unboxChar(a) { if (a == null) - return a; + return a; return toChar(a); } @@ -60,7 +60,7 @@ function charArray(size, init) { var result = new Uint16Array(size); result.$type$ = 'CharArray'; if (init == null || equals(init, true) || equals(init, false)) - tmp = result; + tmp = result; else { var tmp0; tmp0 = result.length - 1 | 0; diff --git a/okio/src/main/ets/utils/MD5.js b/okio/src/main/ets/utils/MD5.js index 6ca84ce..9f0c508 100644 --- a/okio/src/main/ets/utils/MD5.js +++ b/okio/src/main/ets/utils/MD5.js @@ -13,7 +13,7 @@ * limitations under the License. */ -import { util } from "./Utilities.js"; +import { util } from './Utilities.js'; import Log from '../log.js'; export function Md5() { @@ -176,19 +176,19 @@ Md5.prototype.digest = function () { function Md5$Companion() { md5CompanionInstance = this; this.s0 = new Int32Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, - 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, - 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, - 15, 21, 6, 10, 15, 21]); + 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, + 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, + 15, 21, 6, 10, 15, 21]); this.k0 = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, - -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, - 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, - 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, - -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, - -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, - -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, - 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, - -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, - -145523070, -1120210379, 718787259, -343485551]); + -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, + 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, + 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, + -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, + -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, + -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, + 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, + -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, + -145523070, -1120210379, 718787259, -343485551]); } var md5CompanionInstance = null; @@ -225,9 +225,9 @@ Md5.prototype.arrayCopy = function (source, destination, destinationOffset, star } Md5.prototype.fill = function ($receiver, element, fromIndex, toIndex) { if (fromIndex === void 0) - fromIndex = 0; + fromIndex = 0; if (toIndex === void 0) - toIndex = $receiver.length; + toIndex = $receiver.length; $receiver.fill(element, fromIndex, toIndex); } Md5.prototype.toByte = function (a) { diff --git a/okio/src/main/ets/utils/Segment.js b/okio/src/main/ets/utils/Segment.js index 09cb404..a14afdd 100644 --- a/okio/src/main/ets/utils/Segment.js +++ b/okio/src/main/ets/utils/Segment.js @@ -72,13 +72,13 @@ Segment.prototype.compact = function () { throw util.illegalStateExceptionInit(message.toString()); } if (!util.ensureNotNull(this.prev).owner) - return; + return; var byteCount = this.limit - this.pos | 0; var availableByteCount = 8192 - util.ensureNotNull(this.prev).limit + (util.ensureNotNull(this.prev).shared ? 0 : util.ensureNotNull(this.prev).pos) | 0; if (byteCount > availableByteCount) - return; + return; this.writeTo(util.ensureNotNull(this.prev), byteCount); this.pop(); SegmentPool.segmentPoolGetInstance().recycle(this); @@ -91,9 +91,9 @@ Segment.prototype.writeTo = function (sink, byteCount) { } if ((sink.limit + byteCount | 0) > 8192) { if (sink.shared) - throw util.illegalArgumentExceptionInit0(); + throw util.illegalArgumentExceptionInit0(); if ((sink.limit + byteCount - sink.pos | 0) > 8192) - throw util.illegalArgumentExceptionInit0(); + throw util.illegalArgumentExceptionInit0(); arrayCopy(sink.data, sink.data, 0, sink.pos, sink.limit); sink.limit = sink.limit - sink.pos | 0; sink.pos = 0; -- Gitee From 33976c11c4d1ffe0ef616d212dcab7ebf0ad0225 Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Thu, 2 Mar 2023 09:26:22 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=B7=BB=E5=8A=A0eslint=E5=BF=BD?= =?UTF-8?q?=E7=95=A5=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhaodongyang --- .eslintignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..f2a5b44 --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +okio/src/main/ets/utils/Utilities.js \ No newline at end of file -- Gitee From 65570be0e3a5f54353bc453e7bf6af2667beaafe Mon Sep 17 00:00:00 2001 From: zhaodongyang Date: Thu, 2 Mar 2023 09:49:35 +0800 Subject: [PATCH 10/11] add unit test Signed-off-by: zhaodongyang --- entry/src/ohosTest/ets/test/Ability.test.ets | 50 ++++++++++++++ entry/src/ohosTest/ets/test/List.test.ets | 20 ++++++ .../ohosTest/ets/testability/TestAbility.ets | 63 ++++++++++++++++++ .../ohosTest/ets/testability/pages/Index.ets | 52 +++++++++++++++ .../ets/testrunner/OpenHarmonyTestRunner.ts | 63 ++++++++++++++++++ entry/src/ohosTest/module.json5 | 37 ++++++++++ .../resources/base/element/color.json | 8 +++ .../resources/base/element/string.json | 16 +++++ .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 ++ 10 files changed, 314 insertions(+) create mode 100644 entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 entry/src/ohosTest/ets/test/List.test.ets create mode 100644 entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts create mode 100644 entry/src/ohosTest/module.json5 create mode 100644 entry/src/ohosTest/resources/base/element/color.json create mode 100644 entry/src/ohosTest/resources/base/element/string.json create mode 100644 entry/src/ohosTest/resources/base/media/icon.png create mode 100644 entry/src/ohosTest/resources/base/profile/test_pages.json diff --git a/entry/src/ohosTest/ets/test/Ability.test.ets b/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..7af7fc7 --- /dev/null +++ b/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2022 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 hilog from '@ohos.hilog'; +import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from '@ohos/hypium' + +export default function abilityTest() { + describe('ActsAbilityTest', function () { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(function () { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(function () { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(function () { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(function () { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, function () { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc' + let b = 'b' + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b) + expect(a).assertEqual(a) + }) + }) +} \ No newline at end of file diff --git a/entry/src/ohosTest/ets/test/List.test.ets b/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..7637ba6 --- /dev/null +++ b/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2022 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 abilityTest from './Ability.test' + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/entry/src/ohosTest/ets/testability/TestAbility.ets b/entry/src/ohosTest/ets/testability/TestAbility.ets new file mode 100644 index 0000000..6700954 --- /dev/null +++ b/entry/src/ohosTest/ets/testability/TestAbility.ets @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2022 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 UIAbility from '@ohos.app.ability.UIAbility'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import hilog from '@ohos.hilog'; +import { Hypium } from '@ohos/hypium'; +import testsuite from '../test/List.test'; +import window from '@ohos.window'; + +export default class TestAbility extends UIAbility { + onCreate(want, launchParam) { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onCreate'); + hilog.info(0x0000, 'testTag', '%{public}s', 'want param:' + JSON.stringify(want) ?? ''); + hilog.info(0x0000, 'testTag', '%{public}s', 'launchParam:' + JSON.stringify(launchParam) ?? ''); + var abilityDelegator: any + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var abilityDelegatorArguments: any + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + hilog.info(0x0000, 'testTag', '%{public}s', 'start run testcase!!!'); + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite) + } + + onDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageCreate'); + windowStage.loadContent('testability/pages/Index', (err, data) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', + JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageDestroy'); + } + + onForeground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onForeground'); + } + + onBackground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onBackground'); + } +} \ No newline at end of file diff --git a/entry/src/ohosTest/ets/testability/pages/Index.ets b/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100644 index 0000000..61252fd --- /dev/null +++ b/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2022 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 hilog from '@ohos.hilog'; + +@Entry +@Component +struct Index { + @State message: string = 'Hello World' + + aboutToAppear() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility index aboutToAppear'); + } + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(20) + .fontWeight(FontWeight.Bold) + } + .type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .width('35%') + .height('5%') + .onClick(() => { + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts b/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts new file mode 100644 index 0000000..47876af --- /dev/null +++ b/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2022 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 hilog from '@ohos.hilog'; +import TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; + +var abilityDelegator = undefined +var abilityDelegatorArguments = undefined + +async function onAbilityCreateCallback() { + hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err: any) { + hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); + } + + async onRun() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility' + let lMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) + var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName + var debug = abilityDelegatorArguments.parameters['-D'] + if (debug == 'true') { + cmd += ' -D' + } + hilog.info(0x0000, 'testTag', 'cmd : %{public}s', cmd); + abilityDelegator.executeShellCommand(cmd, + (err: any, d: any) => { + hilog.info(0x0000, 'testTag', 'executeShellCommand : err : %{public}s', JSON.stringify(err) ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.stdResult ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.exitCode ?? ''); + }) + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/entry/src/ohosTest/module.json5 b/entry/src/ohosTest/module.json5 new file mode 100644 index 0000000..476d153 --- /dev/null +++ b/entry/src/ohosTest/module.json5 @@ -0,0 +1,37 @@ +{ + "module": { + "name": "entry_test", + "type": "feature", + "description": "$string:module_test_desc", + "mainElement": "TestAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:test_pages", + "abilities": [ + { + "name": "TestAbility", + "srcEntrance": "./ets/testability/TestAbility.ets", + "description": "$string:TestAbility_desc", + "icon": "$media:icon", + "label": "$string:TestAbility_label", + "visible": true, + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + } + ] + } +} diff --git a/entry/src/ohosTest/resources/base/element/color.json b/entry/src/ohosTest/resources/base/element/color.json new file mode 100644 index 0000000..3c71296 --- /dev/null +++ b/entry/src/ohosTest/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/entry/src/ohosTest/resources/base/element/string.json b/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 0000000..65d8fa5 --- /dev/null +++ b/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + } + ] +} \ No newline at end of file diff --git a/entry/src/ohosTest/resources/base/media/icon.png b/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 Date: Thu, 2 Mar 2023 09:50:49 +0800 Subject: [PATCH 11/11] add copyright and license header Signed-off-by: zhaodongyang --- entry/src/main/ets/pages/buffer.ets | 15 +++++++++++++++ entry/src/main/ets/pages/bytestring.ets | 15 +++++++++++++++ entry/src/main/ets/pages/filehandler.ets | 15 +++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/entry/src/main/ets/pages/buffer.ets b/entry/src/main/ets/pages/buffer.ets index b2ab5d6..d077c30 100644 --- a/entry/src/main/ets/pages/buffer.ets +++ b/entry/src/main/ets/pages/buffer.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 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 { Okio } from '@ohos/okio'; import promptAction from '@ohos.promptAction' diff --git a/entry/src/main/ets/pages/bytestring.ets b/entry/src/main/ets/pages/bytestring.ets index 19b94cc..05d3866 100644 --- a/entry/src/main/ets/pages/bytestring.ets +++ b/entry/src/main/ets/pages/bytestring.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 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 { ByteString } from '@ohos/okio'; import promptAction from '@ohos.promptAction' diff --git a/entry/src/main/ets/pages/filehandler.ets b/entry/src/main/ets/pages/filehandler.ets index c9a1cf1..9a9410b 100644 --- a/entry/src/main/ets/pages/filehandler.ets +++ b/entry/src/main/ets/pages/filehandler.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 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 { Okio } from '@ohos/okio'; import promptAction from '@ohos.promptAction' -- Gitee