From 9820bc3d5934cbbc03c3460a599da16080044307 Mon Sep 17 00:00:00 2001 From: duanweiling Date: Wed, 31 Aug 2022 15:38:59 +0800 Subject: [PATCH] =?UTF-8?q?TDD=20=E6=B5=8B=E8=AF=95demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duanweiling --- datashare/XTS/Client0602Beta/.gitignore | 4 + .../.hvigor/outputs/logs/details/details.json | 12 + .../XTS/Client0602Beta/AppScope/app.json5 | 11 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes datashare/XTS/Client0602Beta/MakePackage.bat | 3 + datashare/XTS/Client0602Beta/NpmInstall.bat | 3 + ...-profile - \345\211\257\346\234\254.json5" | 38 + .../XTS/Client0602Beta/build-profile.json5 | 40 + datashare/XTS/Client0602Beta/entry/.gitignore | 3 + .../Client0602Beta/entry/build-profile.json5 | 13 + .../XTS/Client0602Beta/entry/hvigorfile.js | 2 + .../Client0602Beta/entry/package-lock.json | 5 + .../XTS/Client0602Beta/entry/package.json | 14 + .../src/main/ets/Application/AbilityStage.ts | 7 + .../src/main/ets/MainAbility/MainAbility.ts | 730 ++++++++ .../entry/src/main/ets/pages/index.ets | 1558 +++++++++++++++++ .../entry/src/main/ets/pages/index/index.ets | 326 ++++ .../entry/src/main/ets/pages/second.ets | 0 .../src/main/ets/pages/second/second.ets | 29 + .../entry/src/main/ets/test/Ability.test.ets | 17 + .../entry/src/main/ets/test/List.test.ets | 22 + .../entry/src/main/module.json5 | 49 + .../resources/base/element/datashare.json | 8 + .../main/resources/base/element/string.json | 40 + .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/form_config.json | 24 + .../resources/base/profile/main_pages.json | 5 + datashare/XTS/Client0602Beta/hvigorfile.js | 2 + .../offline-dependency/ohos-hvigor-1.0.0.tgz | Bin 0 -> 2928 bytes .../ohos-hvigor-cli-1.0.0.tgz | Bin 0 -> 5309 bytes .../ohos-hvigor-ohos-plugin-1.0.0.tgz | Bin 0 -> 48841 bytes .../ohos-sdk-common-1.0.0.tgz | Bin 0 -> 6056 bytes .../XTS/Client0602Beta/package-lock.json | 1217 +++++++++++++ datashare/XTS/Client0602Beta/package.json | 19 + datashare/XTS/hap/kvdb/KVDBServer0624_new.hap | Bin 0 -> 276369 bytes .../XTS/hap/kvdb/entry-default-signed.hap | Bin 0 -> 918412 bytes datashare/XTS/hap/rdb/RDB_Server0624_new.hap | Bin 0 -> 263980 bytes .../XTS/hap/rdb/entry-default-signed.hap | Bin 0 -> 1232493 bytes datashare/XTS/kvdbServerDevice/.gitignore | 4 + .../.hvigor/outputs/logs/details/details.json | 12 + .../XTS/kvdbServerDevice/AppScope/app.json5 | 11 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes .../XTS/kvdbServerDevice/build-profile.json5 | 40 + .../XTS/kvdbServerDevice/entry/.gitignore | 3 + .../entry/build-profile.json5 | 10 + .../XTS/kvdbServerDevice/entry/hvigorfile.js | 2 + .../kvdbServerDevice/entry/package-lock.json | 5 + .../XTS/kvdbServerDevice/entry/package.json | 17 + .../src/main/ets/Application/AbilityStage.ts | 7 + .../DataShareExtAbility.ts | 358 ++++ .../src/main/ets/MainAbility/MainAbility.ts | 448 +++++ .../entry/src/main/ets/pages/index.ets | 400 +++++ .../entry/src/main/module.json5 | 55 + .../resources/base/element/datashare.json | 8 + .../main/resources/base/element/string.json | 40 + .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/form_config.json | 24 + .../resources/base/profile/main_pages.json | 5 + datashare/XTS/kvdbServerDevice/hvigorfile.js | 2 + .../XTS/kvdbServerDevice/package-lock.json | 1217 +++++++++++++ datashare/XTS/kvdbServerDevice/package.json | 19 + datashare/XTS/rdbServerDevice/.gitignore | 4 + .../.hvigor/outputs/logs/details/details.json | 12 + .../XTS/rdbServerDevice/AppScope/app.json5 | 11 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes .../XTS/rdbServerDevice/build-profile.json5 | 40 + .../XTS/rdbServerDevice/entry/.gitignore | 3 + .../rdbServerDevice/entry/build-profile.json5 | 9 + .../XTS/rdbServerDevice/entry/hvigorfile.js | 2 + .../rdbServerDevice/entry/package-lock.json | 5 + .../XTS/rdbServerDevice/entry/package.json | 17 + .../src/main/ets/Application/AbilityStage.ts | 7 + .../DataShareExtAbility.ts | 287 +++ .../src/main/ets/MainAbility/MainAbility.ts | 448 +++++ .../entry/src/main/ets/pages/index.ets | 401 +++++ .../entry/src/main/module.json5 | 67 + .../resources/base/element/datashare.json | 8 + .../main/resources/base/element/string.json | 40 + .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/form_config.json | 24 + .../resources/base/profile/main_pages.json | 5 + datashare/XTS/rdbServerDevice/hvigorfile.js | 2 + .../XTS/rdbServerDevice/package-lock.json | 1217 +++++++++++++ datashare/XTS/rdbServerDevice/package.json | 19 + .../rdbServerDevice/(1).gitignore | 4 + .../rdbServerDevice/.gitignore | 4 + .../rdbServerDevice/AppScope/app(1).json5 | 11 + .../rdbServerDevice/AppScope/app.json5 | 11 + .../resources/base/element/string(1).json | 8 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon(1).png | Bin 0 -> 6790 bytes .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes .../rdbServerDevice/build-profile(1).json5 | 40 + .../rdbServerDevice/build-profile.json5 | 40 + .../rdbServerDevice/entry/(1).gitignore | 3 + .../rdbServerDevice/entry/.gitignore | 3 + .../entry/build-profile(1).json5 | 9 + .../rdbServerDevice/entry/build-profile.json5 | 9 + .../rdbServerDevice/entry/hvigorfile(1).js | 2 + .../rdbServerDevice/entry/hvigorfile.js | 2 + .../rdbServerDevice/entry/package(1).json | 17 + .../entry/package-lock(1).json | 5 + .../rdbServerDevice/entry/package-lock.json | 5 + .../rdbServerDevice/entry/package.json | 17 + .../main/ets/Application/AbilityStage(1).ts | 7 + .../src/main/ets/Application/AbilityStage.ts | 7 + .../DataShareExtAbility(1).ts | 287 +++ .../DataShareExtAbility.ts | 287 +++ .../main/ets/MainAbility/MainAbility(1).ts | 448 +++++ .../src/main/ets/MainAbility/MainAbility.ts | 448 +++++ .../entry/src/main/ets/pages/index(1).ets | 401 +++++ .../entry/src/main/ets/pages/index.ets | 401 +++++ .../entry/src/main/module(1).json5 | 67 + .../entry/src/main/module.json5 | 67 + .../resources/base/element/datashare(1).json | 8 + .../resources/base/element/datashare.json | 8 + .../resources/base/element/string(1).json | 40 + .../main/resources/base/element/string.json | 40 + .../src/main/resources/base/media/icon(1).png | Bin 0 -> 6790 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../base/profile/form_config(1).json | 24 + .../resources/base/profile/form_config.json | 24 + .../resources/base/profile/main_pages(1).json | 5 + .../resources/base/profile/main_pages.json | 5 + .../rdbServerDevice/hvigorfile(1).js | 2 + .../rdbServerDevice/hvigorfile.js | 2 + .../rdbServerDevice/local(1).properties | 10 + .../rdbServerDevice/package(1).json | 19 + .../rdbServerDevice/package-lock(1).json | 1214 +++++++++++++ .../rdbServerDevice/package-lock.json | 1214 +++++++++++++ .../rdbServerDevice/package.json | 19 + 134 files changed, 14792 insertions(+) create mode 100644 datashare/XTS/Client0602Beta/.gitignore create mode 100644 datashare/XTS/Client0602Beta/.hvigor/outputs/logs/details/details.json create mode 100644 datashare/XTS/Client0602Beta/AppScope/app.json5 create mode 100644 datashare/XTS/Client0602Beta/AppScope/resources/base/element/string.json create mode 100644 datashare/XTS/Client0602Beta/AppScope/resources/base/media/app_icon.png create mode 100644 datashare/XTS/Client0602Beta/MakePackage.bat create mode 100644 datashare/XTS/Client0602Beta/NpmInstall.bat create mode 100644 "datashare/XTS/Client0602Beta/build-profile - \345\211\257\346\234\254.json5" create mode 100644 datashare/XTS/Client0602Beta/build-profile.json5 create mode 100644 datashare/XTS/Client0602Beta/entry/.gitignore create mode 100644 datashare/XTS/Client0602Beta/entry/build-profile.json5 create mode 100644 datashare/XTS/Client0602Beta/entry/hvigorfile.js create mode 100644 datashare/XTS/Client0602Beta/entry/package-lock.json create mode 100644 datashare/XTS/Client0602Beta/entry/package.json create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/Application/AbilityStage.ts create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/MainAbility/MainAbility.ts create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index.ets create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index/index.ets create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/pages/second.ets create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/pages/second/second.ets create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/test/Ability.test.ets create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/ets/test/List.test.ets create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/module.json5 create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/datashare.json create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/string.json create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/resources/base/media/icon.png create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/resources/base/profile/form_config.json create mode 100644 datashare/XTS/Client0602Beta/entry/src/main/resources/base/profile/main_pages.json create mode 100644 datashare/XTS/Client0602Beta/hvigorfile.js create mode 100644 datashare/XTS/Client0602Beta/offline-dependency/ohos-hvigor-1.0.0.tgz create mode 100644 datashare/XTS/Client0602Beta/offline-dependency/ohos-hvigor-cli-1.0.0.tgz create mode 100644 datashare/XTS/Client0602Beta/offline-dependency/ohos-hvigor-ohos-plugin-1.0.0.tgz create mode 100644 datashare/XTS/Client0602Beta/offline-dependency/ohos-sdk-common-1.0.0.tgz create mode 100644 datashare/XTS/Client0602Beta/package-lock.json create mode 100644 datashare/XTS/Client0602Beta/package.json create mode 100644 datashare/XTS/hap/kvdb/KVDBServer0624_new.hap create mode 100644 datashare/XTS/hap/kvdb/entry-default-signed.hap create mode 100644 datashare/XTS/hap/rdb/RDB_Server0624_new.hap create mode 100644 datashare/XTS/hap/rdb/entry-default-signed.hap create mode 100644 datashare/XTS/kvdbServerDevice/.gitignore create mode 100644 datashare/XTS/kvdbServerDevice/.hvigor/outputs/logs/details/details.json create mode 100644 datashare/XTS/kvdbServerDevice/AppScope/app.json5 create mode 100644 datashare/XTS/kvdbServerDevice/AppScope/resources/base/element/string.json create mode 100644 datashare/XTS/kvdbServerDevice/AppScope/resources/base/media/app_icon.png create mode 100644 datashare/XTS/kvdbServerDevice/build-profile.json5 create mode 100644 datashare/XTS/kvdbServerDevice/entry/.gitignore create mode 100644 datashare/XTS/kvdbServerDevice/entry/build-profile.json5 create mode 100644 datashare/XTS/kvdbServerDevice/entry/hvigorfile.js create mode 100644 datashare/XTS/kvdbServerDevice/entry/package-lock.json create mode 100644 datashare/XTS/kvdbServerDevice/entry/package.json create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/ets/Application/AbilityStage.ts create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/ets/pages/index.ets create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/module.json5 create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/datashare.json create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/string.json create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/media/icon.png create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/profile/form_config.json create mode 100644 datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/profile/main_pages.json create mode 100644 datashare/XTS/kvdbServerDevice/hvigorfile.js create mode 100644 datashare/XTS/kvdbServerDevice/package-lock.json create mode 100644 datashare/XTS/kvdbServerDevice/package.json create mode 100644 datashare/XTS/rdbServerDevice/.gitignore create mode 100644 datashare/XTS/rdbServerDevice/.hvigor/outputs/logs/details/details.json create mode 100644 datashare/XTS/rdbServerDevice/AppScope/app.json5 create mode 100644 datashare/XTS/rdbServerDevice/AppScope/resources/base/element/string.json create mode 100644 datashare/XTS/rdbServerDevice/AppScope/resources/base/media/app_icon.png create mode 100644 datashare/XTS/rdbServerDevice/build-profile.json5 create mode 100644 datashare/XTS/rdbServerDevice/entry/.gitignore create mode 100644 datashare/XTS/rdbServerDevice/entry/build-profile.json5 create mode 100644 datashare/XTS/rdbServerDevice/entry/hvigorfile.js create mode 100644 datashare/XTS/rdbServerDevice/entry/package-lock.json create mode 100644 datashare/XTS/rdbServerDevice/entry/package.json create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/ets/Application/AbilityStage.ts create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/ets/pages/index.ets create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/module.json5 create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/datashare.json create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/string.json create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/resources/base/media/icon.png create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/resources/base/profile/form_config.json create mode 100644 datashare/XTS/rdbServerDevice/entry/src/main/resources/base/profile/main_pages.json create mode 100644 datashare/XTS/rdbServerDevice/hvigorfile.js create mode 100644 datashare/XTS/rdbServerDevice/package-lock.json create mode 100644 datashare/XTS/rdbServerDevice/package.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/(1).gitignore create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/.gitignore create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app(1).json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app.json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/media/app_icon(1).png create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/media/app_icon.png create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/build-profile(1).json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/build-profile.json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/(1).gitignore create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/.gitignore create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/build-profile(1).json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/build-profile.json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/hvigorfile(1).js create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/hvigorfile.js create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/package(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/package-lock(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/package-lock.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/package.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/Application/AbilityStage(1).ts create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/Application/AbilityStage.ts create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility(1).ts create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility(1).ts create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index(1).ets create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index.ets create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module(1).json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module.json5 create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/media/icon(1).png create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/media/icon.png create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/profile/form_config(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/profile/form_config.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/profile/main_pages(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/profile/main_pages.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/hvigorfile(1).js create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/hvigorfile.js create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/local(1).properties create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/package(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/package-lock(1).json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/package-lock.json create mode 100644 datashare/XTS/rdbServerDevice/rdbServerDevice/package.json diff --git a/datashare/XTS/Client0602Beta/.gitignore b/datashare/XTS/Client0602Beta/.gitignore new file mode 100644 index 0000000..2981358 --- /dev/null +++ b/datashare/XTS/Client0602Beta/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/local.properties +/.idea +**/build \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/.hvigor/outputs/logs/details/details.json b/datashare/XTS/Client0602Beta/.hvigor/outputs/logs/details/details.json new file mode 100644 index 0000000..08cb187 --- /dev/null +++ b/datashare/XTS/Client0602Beta/.hvigor/outputs/logs/details/details.json @@ -0,0 +1,12 @@ +{ + "totalTime": 15059337300, + "moduleNum": 1, + "taskTime": { + "sdkDirInit": 5127000, + "compileETS": 10743988000, + "compileJS": 464300, + "compileResource": 168300500, + "packageHap": 282274900, + "signHap": 3160379400 + } +} \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/AppScope/app.json5 b/datashare/XTS/Client0602Beta/AppScope/app.json5 new file mode 100644 index 0000000..a0adb9f --- /dev/null +++ b/datashare/XTS/Client0602Beta/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.samples.myapplication", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/datashare/XTS/Client0602Beta/AppScope/resources/base/element/string.json b/datashare/XTS/Client0602Beta/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..01daddf --- /dev/null +++ b/datashare/XTS/Client0602Beta/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "datashareclienttest" + } + ] +} diff --git a/datashare/XTS/Client0602Beta/AppScope/resources/base/media/app_icon.png b/datashare/XTS/Client0602Beta/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 seConnect onConnect called."); + console.log("[ttt] [DataShareTest] <> seConnect onConnect elementName = " + elementName); + console.log("[ttt] [DataShareTest] <> seConnect onConnect proxy = " + proxy); + let data = rpc.MessageParcel.create(); + let reply = rpc.MessageParcel.create(); + let option = new rpc.MessageOption(); + data.writeInterfaceToken("connect-test"); + data.writeInt(111); + + console.log("[ttt] [DataShareTest] <> seConnect onConnect sendRequest."); + proxy.sendRequest(1, data, reply, option) + .then(function (result) { + if (result.errCode === 0) { + // let msg = reply.readString(); + let msg = result.reply.readInt(); + console.log("[ttt] [DataShareTest] <> seConnect reply msg: " + msg); + } else { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest failed, errCode: " + result.errCode); + } + // callback没有返回值,默认返回undefined + }).catch(function (e) { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest got exception: " + e); + }).finally (async () => { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest ends, reclaim parcel"); + data.reclaim(); + reply.reclaim(); + }) + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareTest] <> seConnect onDisconnect"); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareTest] <> seConnect onFailed"); + } +}; +let dseProxy = 0; +let dseUri = ("datashare:///com.samples.datasharetest.DataShare"); + +var dseConnect = { + onConnect:function (elementName, proxy) { + console.log("[ttt] [DataShareClientTest] <> dseConnect onConnect called."); + dseProxy = proxy; + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareClientTest] <> dseConnect onDisconnect, elementName:" + elementName); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareClientTest] <> dseConnect onFailed, code:" + code); + } +}; + +let seConnectionId = -1; +let dseConnectionId = -1; + +let seWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "ServiceExtAbility", +} + +let dseWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "DataShareExtAbility", +} + +export function onCallback() { + console.info("[ttt] [DataShareClientTest] <> **** Observer on callback ****"); +} + +export function offCallback() { + console.info("[ttt] [DataShareClientTest] <> **** Observer off callback ****"); +} + +export default class MainAbility extends Ability { + onCreate(want, launchParam) { + // Ability is creating, initialize resources for this ability + console.log("[ttt] [DataShareClientTest] <> MainAbility onCreate") + globalThis.abilityWant = want; + } + + onDestroy() { + // Ability is destroying, release resources for this ability + console.log("[ttt] [DataShareClientTest] <> MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log("[ttt] [DataShareClientTest] <> MainAbility onWindowStageCreate") + globalThis.abilityContext = this.context; + + let context = this.context; + dseConnectionId = context.connectAbility(dseWant, dseConnect); + + let deviceIds = []; + deviceManager.createDeviceManager(BUNDLE_NAME, (err, value) => { + if (err) { + console.info("[ttt] [DataShareClientTest] <> [createDeviceManager] err = " + err); + } + devManager = value; + console.info('[ttt] [DataShareClientTest] <> [createDeviceManager] enter'); + // get deviceIds + if (devManager != null) { + var devices = devManager.getTrustedDeviceListSync(); + for (var i = 0; i < devices.length; i++) { + deviceIds[i] = devices[i].deviceId; + } + } + console.log("[ttt] [DataShareTest] <> deviceIds :" + deviceIds); + }); + + globalThis.connectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility begin"); + await dataShare.createDataShareHelper(globalThis.abilityContext, dseUri, (err,data)=>{ + globalThis.dsHelper = data; + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + }); + dseConnectionId = await context.connectAbility(dseWant, dseConnect); + }) + + globalThis.disconnectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareClientTest] <> disconnectDataShareExtAbility begin"); + await context.disconnectAbility(dseConnectionId).then((data) => { + console.info("[ttt] [DataShareClientTest] <> disconnectDataShareExtAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareClientTest] <> disconnectDataShareExtAbility failed:" + JSON.stringify(error)); + }); + globalThis.dsHelper = null; + console.log("[ttt] [DataShareClientTest] <> disconnectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.on = (async () => { + console.log("[ttt] [DataShareClientTest] <> on begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> on end, DSHelper is null"); + return; + } + await globalThis.dsHelper.on("dataChange", dseUri, onCallback); + console.log("[ttt] [DataShareClientTest] <> on end"); + }) + + globalThis.off = (async () => { + console.log("[ttt] [DataShareClientTest] <> off begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> off end, DSHelper is null"); + return; + } + await globalThis.dsHelper.off("dataChange", dseUri); + await globalThis.dsHelper.off("dataChange", dseUri, offCallback); + console.log("[ttt] [DataShareClientTest] <> off end"); + }) + + globalThis.query = (async () => { + console.log("[ttt] [DataShareClientTest] <> query begin"); + let count = 0; + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> query end, DSHelper is null"); + return; + } + let getDa = await globalThis.getDa(); + let da = getDa.da; +// da.inDevices(deviceIds); +// da.notEqualTo("$.name","wsx") +// da.limit(2,2); +// da.equalTo("$.name","rpf") + let columnArray = getDa.columnArray; + let uri; +// deviceIds[0] = "f4das56f4asdf546"; + if(deviceIds[0] != undefined) { + uri = ("datashare:///com.samples.datasharetest.DataShare" + "?devicesId=" + deviceIds[0]); + } else { + uri = ("datashare:///com.samples.datasharetest.DataShare"); + } + + console.info("[ttt] [DataShareClientTest] <> query uri, uri:" + uri); + let result = await globalThis.dsHelper.query(uri, da, columnArray, globalThis.getResultSet); + if (result != undefined) { + count = result.rowCount; + } + console.log("[ttt] [DataShareClientTest] <> query end, count:" + count); + return count; + }) + + globalThis.insert = (async () => { + console.log("[ttt] [DataShareClientTest] <> insert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> insert end, DSHelper is null"); + return; + } + let name: string = AppStorage.Get('insertName'); + let age: string = AppStorage.Get('insertAge'); + + let booleanS: boolean = AppStorage.Get('trueFalseString'); + let vb = {"name":name, "age":Number(age), "isStudent": booleanS, "Binary": new Uint8Array([1,2,3])}; + console.log("[ttt] [DataShareClientTest] <> insert vb = " + JSON.stringify(vb)); + // let vb = {"name":"rpf"}; + let ret = await globalThis.dsHelper.insert(dseUri, vb, globalThis.getInsertCallback); + AppStorage.Delete('insertName'); + AppStorage.Delete('insertAge'); + AppStorage.Delete('trueFalseString'); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareClientTest] <> insert end, ret:" + ret); + return ret; + }) + + globalThis.update = (async () => { + console.log("[ttt] [DataShareClientTest] <> update begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> update end, DSHelper is null"); + return; + } + let getDa = await globalThis.getDa(); + let da = getDa.da; + let updateOption = getDa.updateOption; + let ret = await globalThis.dsHelper.update(dseUri, da, updateOption, globalThis.getUpdateCallback); + globalThis.notifyChange(); + console.log("[ttt] [DataShareClientTest] <> update end, result:" + ret); + }) + + globalThis.getUpdateCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getUpdateCallback enter"); + if(data == -1) { + AppStorage.SetOrCreate('result', 'update操作失败'); + }else { + AppStorage.SetOrCreate('result', 'update操作成功'); + } + console.log("[ttt] [DataShareClientTest] <> getUpdateCallback = " + data); + }) + + globalThis.delete = (async () => { + console.log("[ttt] [DataShareClientTest] <> delete begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> delete end, DSHelper is null"); + return; + } + let getDa = await globalThis.getDa(); + let da = getDa.da; + let ret = globalThis.dsHelper.delete(dseUri, da, globalThis.getDeleteCallback); + console.log("[ttt] [DataShareClientTest] <> delete getDa Over"); + globalThis.notifyChange(); + console.log("[ttt] [DataShareClientTest] <> delete end, result:" + ret); + return ret; + }) + + globalThis.batchInsert = (async () => { + console.log("[ttt] [DataShareClientTest] <> batchInsert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> batchInsert end, DSHelper is null"); + return; + } + let people = new Array( + {"name": "LiSi", "age": 41, "isStudent": true, "Binary": new Uint8Array([1,2,3])}, + {"name": "WangWu", "age": 51, "isStudent": true, "Binary": new Uint8Array([1,2,3])}, + {"name": "ZhaoLiu", "age": 61, "isStudent": true, "Binary": new Uint8Array([1,2,3])}); + let ret = await globalThis.dsHelper.batchInsert(dseUri, people, globalThis.getBatchInsertCallback); + globalThis.notifyChange(); + console.log("[ttt] [DataShareClientTest] <> batchInsert end, result:" + ret); + return ret; + }) + + globalThis.getBatchInsertCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getBatchInsertCallback = " + data); + }) + + globalThis.batchInsertError = (async () => { + console.log("[ttt] [DataShareClientTest] <> batchInsertError begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> batchInsertError end, DSHelper is null"); + return; + } + let people = new Array( + {"name": "LiSi", "age": 41, "isStudent": true, "Binary": new Uint8Array([1,2,3])}, + {"name": "WangWu", "age": '51aaa', "isStudent": true, "Binary": new Uint8Array([1,2,3])}, + {"name": "ZhaoLiu", "age": 61, "isStudent": true, "Binary": new Uint8Array([1,2,3])}); + let ret = await globalThis.dsHelper.batchInsert(dseUri, people, globalThis.getBatchInsertCallback); + globalThis.notifyChange(); + console.log("[ttt] [DataShareClientTest] <> batchInsertError end, result:" + ret); + return ret; + }) + globalThis.insertMaxLength = (async () => { + console.log("[ttt] [DataShareClientTest] <> insertMaxLength begin"); +// let data = { +// "key": dataMaxLength.key, +// "value":dataMaxLength.value +// } +// console.info(`[ttt] [DataShareClientTest] <> dataMaxLength.keyLength = ${data.key.length}`); +// console.info(`[ttt] [DataShareClientTest] <> dataMaxLength.valueLength = ${data.value.length}`); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> insertMaxLength end, DSHelper is null"); + return; + } +// let ret = await globalThis.dsHelper.insert(dseUri, data, globalThis.getInsertCallback); + }) + + globalThis.insertKeyBeyondLimit = (async () => { + console.log("[ttt] [DataShareClientTest] <> insertKeyBeyondLimit begin"); +// let data = { +// "key": dataKeyBeyond.key, +// "value":dataKeyBeyond.value +// } +// console.info(`[ttt] [DataShareClientTest] <> insertKeyBeyondLimit.keyLength = ${data.key.length}`); +// console.info(`[ttt] [DataShareClientTest] <> insertKeyBeyondLimit.valueLength = ${data.value.length}`); + if (globalThis.dsHelper == null) { +// let ret = await globalThis.dsHelper.insert(dseUri, data, globalThis.getInsertCallback); + console.log("[ttt] [DataShareClientTest] <> insertKeyBeyondLimit end, DSHelper is null"); + return; + } + }) + + globalThis.insertValueBeyondLimit = (async () => { + console.log("[ttt] [DataShareClientTest] <> insertValueBeyondLimit begin"); +// let data = { +// "key": dataValueBeyond.key, +// "value":dataValueBeyond.value +// } +// console.info(`[ttt] [DataShareClientTest] <> insertValueBeyondLimit.keyLength = ${data.key.length}`); +// console.info(`[ttt] [DataShareClientTest] <> insertValueBeyondLimit.valueLength = ${data.value.length}`); + if (globalThis.dsHelper == null) { +// let ret = await globalThis.dsHelper.insert(dseUri, data, globalThis.getInsertCallback); + console.log("[ttt] [DataShareClientTest] <> insertValueBeyondLimit end, DSHelper is null"); + return; + } + }) + + globalThis.getResultSet = (async (err, resultSet) => { + console.log("[ttt] [DataShareClientTest] <> getResultSet begin"); + globalThis.resultSet = resultSet; + AppStorage.SetOrCreate('reaultSet', resultSet); + }) + + globalThis.getInsertCallback = (async (err, data) => { + if(data == -1) { + AppStorage.SetOrCreate('result', 'insert操作失败'); + }else { + AppStorage.SetOrCreate('result', 'insert操作成功'); + } + console.log("[ttt] [DataShareClientTest] <> getInsertCallback = " + data); + }) + + globalThis.getDeleteCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getDeleteCallback enter "); + if(data == -1) { + AppStorage.SetOrCreate('result', 'delete操作失败'); + }else { + AppStorage.SetOrCreate('result', 'delete操作成功'); + } + console.log("[ttt] [DataShareClientTest] <> getDeleteCallback = " + data); + }) + + globalThis.notifyChange = (async () => { + console.log("[ttt] [DataShareClientTest] <> notifyChange begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> notifyChange end, DSHelper is null"); + return; + } + await globalThis.dsHelper.notifyChange(dseUri, globalThis.getNotifyChangeCallback); + console.log("[ttt] [DataShareClientTest] <> notifyChange end"); + }) + + globalThis.getNotifyChangeCallback = (async (err, data) => { +// if(data == 1) { +// AppStorage.SetOrCreate('result', '操作成功'); +// }else { +// AppStorage.SetOrCreate('result', '操作失败'); +// } + console.log("[ttt] [DataShareClientTest] <> getNotifyChangeCallback = " + data); + }) + + + globalThis.openFile = (async () => { + console.log("[ttt] [DataShareClientTest] <> openFile begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> openFile end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.openFile(dseUri,"rwt", globalThis.openFileCallback); + console.log("[ttt] [DataShareClientTest] <> openFile end, result:" + result); + return result; + }) + + globalThis.openFileCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getTypeCallback = " + data); + console.log("[ttt] [DataShareClientTest] <> getTypeCallback json= " + JSON.stringify(data)); + AppStorage.SetOrCreate('result', JSON.stringify(data)); + // if(err != -1) { + // }else { + // AppStorage.SetOrCreate('result', '操作失败'); + // } + }) + + globalThis.getType = (async () => { + console.log("[ttt] [DataShareClientTest] <> getType begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> getType end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.getType(dseUri, globalThis.getTypeCallback); + console.log("[ttt] [DataShareClientTest] <> getType end, result:" + result); + return result; + }) + + globalThis.getTypeCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getTypeCallback = " + data); + console.log("[ttt] [DataShareClientTest] <> getTypeCallback json= " + JSON.stringify(data)); + AppStorage.SetOrCreate('result', data); +// if(err != -1) { +// }else { +// AppStorage.SetOrCreate('result', '操作失败'); +// } + }) + + globalThis.getFileTypes = (async () => { + console.log("[ttt] [DataShareClientTest] <> getFileTypes begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> getFileTypes end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.getFileTypes(dseUri, "image/*", globalThis.getFlieTypesCallback); + console.log("[ttt] [DataShareClientTest] <> getFileTypes end, result:" + result); + return result; + }) + + globalThis.getFlieTypesCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getFlieTypesCallback = " + data); + console.log("[ttt] [DataShareClientTest] <> getFlieTypesCallback json= " + JSON.stringify(data)); + AppStorage.SetOrCreate('result', JSON.stringify(data)); + /*if(err != -1) { + }else { + AppStorage.SetOrCreate('result', '操作失败'); + }*/ + }) + + globalThis.normalizeUri = (async () => { + console.log("[ttt] [DataShareClientTest] <> normalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> normalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.normalizeUri(dseUri, globalThis.getNormalizaUriCallback); + console.log("[ttt] [DataShareClientTest] <> normalizeUri end, result:" + result); + return result; + }) + + globalThis.getNormalizaUriCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getNormalizaUriCallback = " + data); + console.log("[ttt] [DataShareClientTest] <> getNormalizaUriCallback json= " + JSON.stringify(data)); + AppStorage.SetOrCreate('result', data); + /*if(err != -1) { + }else { + AppStorage.SetOrCreate('result', '操作失败'); + }*/ + }) + + globalThis.denormalizeUri = (async () => { + console.log("[ttt] [DataShareClientTest] <> denormalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareClientTest] <> denormalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.denormalizeUri(dseUri, globalThis.getDenormalizaUriCallback); + console.log("[ttt] [DataShareClientTest] <> denormalizeUri end, result:" + result); + return result; + }) + + globalThis.getDenormalizaUriCallback = (async (err, data) => { + console.log("[ttt] [DataShareClientTest] <> getDenormalizaUriCallback = " + data); + console.log("[ttt] [DataShareClientTest] <> getDenormalizaUriCallback json= " + JSON.stringify(data)); + AppStorage.SetOrCreate('result', data); + /*if(err != -1) { + }else { + AppStorage.SetOrCreate('result', '操作失败'); + }*/ + }) + + globalThis.goToFirstRow = ( () => { + let ret = globalThis.resultSet.goToFirstRow(); + return ret; + console.info('[ttt] [DataShareClientTest] <> goToFirstRow') + }) + + globalThis.goToLastRow = ( () => { + let ret = globalThis.resultSet.goToLastRow(); + return ret; + console.info('[ttt] [DataShareClientTest] <> goToLastRow') + }) + + globalThis.goToNextRow = ( () => { + let ret = globalThis.resultSet.goToNextRow(); + return ret; + console.info('[ttt] [DataShareClientTest] <> goToNextRow') + }) + + globalThis.goToPreviousRow = ( () => { + let ret = globalThis.resultSet.goToPreviousRow(); + return ret; + console.info('[ttt] [DataShareClientTest] <> goToPreviousRow') + }) + + globalThis.goTo = ( (data) => { + let ret = globalThis.resultSet.goTo(Number(data)); + return ret; + console.info('[ttt] [DataShareClientTest] <> goTo') + }) + + globalThis.goToRow = ( (data) => { + let ret = globalThis.resultSet.goToRow(Number(data)); + return ret; + console.info('[ttt] [DataShareClientTest] <> goToRow') + }) + + globalThis.getBlob = ( (data) => { + let ret = globalThis.resultSet.getBlob(Number(data)); + return ret; + console.info('[ttt] [DataShareClientTest] <> getBlob') + }) + + globalThis.getString = ( (data) => { + let ret = globalThis.resultSet.getString(Number(data)); + console.info('[ttt] [DataShareClientTest] <> getString' + ret); + return ret; + console.info('[ttt] [DataShareClientTest] <> getString' + ret); + }) + + globalThis.getLong = ( (data) => { + let ret = globalThis.resultSet.getLong(Number(data)); + return ret; + console.info('[ttt] [DataShareClientTest] <> getLong') + }) + + globalThis.getDouble = ( (data) => { + let ret = globalThis.resultSet.getDouble(Number(data)); + return ret; + console.info('[ttt] [DataShareClientTest] <> getDouble') + }) + + globalThis.isColumnOrKeyNull = ( (data) => { + let ret = globalThis.resultSet.isColumnOrKeyNull(data); + return ret; + console.info('[ttt] [DataShareClientTest] <> isColumnOrKeyNull') + }) + + globalThis.getColumnIndex = ( (data) => { + let ret = globalThis.resultSet.getColumnOrKeyIndex(data); + return ret; + console.info('[ttt] [DataShareClientTest] <> getColumnOrKeyIndex') + }) + + globalThis.getColumnName = ( (data) => { + let ret = globalThis.resultSet.getColumnOrKeyName(Number(data)); + return ret; + console.info('[ttt] [DataShareClientTest] <> getColumnOrKeyName') + }) + + globalThis.getInt = ( (data) => { + let ret = globalThis.resultSet.getInt(Number(data)); + return ret; + console.info('[ttt] [DataShareClientTest] <> getInt') + }) + + globalThis.getDataType = ( (data) => { + let ret = globalThis.resultSet.getDataType(data); + return ret; + console.info('[ttt] [DataShareClientTest] <> getDataType') + }) + + globalThis.close = ( () => { + globalThis.resultSet.close(); + console.info('[ttt] [DataShareClientTest] <> close') + }) + + globalThis.getDa = (async () => { + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareClientTest] <> da is null or undefined"); + return; + } + let optionLength = AppStorage.Get('optionLength'); + console.info("[ttt] [DataShareClientTest] <> optionLength = " + optionLength) + let updateOptionName = ''; + let updateOptionAge = ''; + let updateOptionBoolean = ''; +// let updateOption = {name: '', age: '', boolean: ''}; + let columnArray = []; + for(let i = 0; i < optionLength; i++) { + let predicate: { + "functionCheck": string, + "keyCheck": string, + "value": string + }; + predicate = JSON.parse(AppStorage.Get('Predicates' + i)); + if(predicate.functionCheck == ''){ + if (predicate.keyCheck != '' && predicate.value != '') { + if (predicate.keyCheck == 'name') { + updateOptionName = predicate.value; + } else if (predicate.keyCheck == 'age') { + updateOptionAge = predicate.value; + } else if (predicate.keyCheck == 'boolean') { + updateOptionBoolean = predicate.value; + } + } else { + columnArray.push(predicate.keyCheck); + } + } + else if(predicate.functionCheck == 'equalTo') { + da.equalTo(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'notEqualTo') { + da.notEqualTo(predicate.keyCheck, predicate.value); + }else if (predicate.functionCheck == 'greaterThan') { + da.greaterThan(predicate.keyCheck, predicate.value); + }else if (predicate.functionCheck == 'lessThan') { + da.lessThan(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'greaterThanOrEqualTo') { + da.greaterThanOrEqualTo(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'lessThanOrEqualTo') { + console.log("[ttt] [DataShareClientTest] <> lessThanOrEqualTo on"); + da.lessThanOrEqualTo(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'isNull') { + da.isNull(predicate.keyCheck); + }else if(predicate.functionCheck == 'isNotNull') { + da.isNotNull(predicate.keyCheck); + }else if(predicate.functionCheck == 'in') { + da.in(predicate.keyCheck, predicate.value.split(',')); + }else if(predicate.functionCheck == 'notIn') { + da.notIn(predicate.keyCheck, predicate.value.split(',')); + }else if(predicate.functionCheck == 'like') { + da.like(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'unlike') { + da.unlike(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'and') { + da.and(); + }else if(predicate.functionCheck == 'or') { + da.or(); + }else if(predicate.functionCheck == 'orderByAsc') { + da.orderByAsc(predicate.keyCheck); + }else if(predicate.functionCheck == 'orderByDesc') { + da.orderByDesc(predicate.keyCheck); + }else if(predicate.functionCheck == 'limit') { + console.info("ttt Number(predicate.value.split(',')[0]) = " + Number(predicate.value.split(',')[0])); + console.info("ttt Number(predicate.value.split(',')[1]) = " + Number(predicate.value.split(',')[1])); + da.limit(Number(predicate.value.split(',')[0]),Number(predicate.value.split(',')[1])); + }else if(predicate.functionCheck == 'isNotNull') { + da.isNotNull(predicate.keyCheck); + }else if(predicate.functionCheck == 'beginWrap') { + da.beginWrap(); + }else if(predicate.functionCheck == 'endWrap') { + da.endWrap(); + }else if(predicate.functionCheck == 'prefixKey') { + da.prefixKey(predicate.value); + }else if(predicate.functionCheck == 'contains') { + da.contains(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'beginsWith') { + da.beginsWith(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'endsWith') { + da.endsWith(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'glob') { + da.glob(predicate.keyCheck, predicate.value); + }else if(predicate.functionCheck == 'between') { + da.between(predicate.keyCheck, predicate.value.split(',')[0], predicate.value.split(',')[1]); + }else if(predicate.functionCheck == 'notBetween') { + da.notBetween(predicate.keyCheck, predicate.value.split(',')[0], predicate.value.split(',')[1]); + }else if(predicate.functionCheck == 'distinct') { + da.distinct(); + }else if(predicate.functionCheck == 'groupBy') { + da.groupBy(predicate.value.split(',')); + }else if(predicate.functionCheck == 'indexedBy') { + da.indexedBy(predicate.keyCheck); + }else if(predicate.functionCheck == 'inKeys') { +// let Array = + da.inKeys(predicate.value.split(',')); + } + } + let updateOption; + if(updateOptionName != '') { + updateOption = {"name": updateOptionName}; + }else if(updateOptionAge != '') { + updateOption = { "age": Number(updateOptionAge)}; + }else if(updateOptionBoolean != '') { + if(updateOptionBoolean == "true") { + updateOption = {"isStudent": true}; + }else { + updateOption = {"isStudent": false}; + } + } + let returnData = {updateOption : updateOption, da: da,columnArray: columnArray} + returnData.updateOption = updateOption; + returnData.da = da; + if(columnArray.length == 0) { + columnArray.push('*'); + } + returnData.columnArray = columnArray; + return returnData; + }) + + windowStage.setUIContent(this.context, "pages/index", null) + } + + + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + console.log("[ttt] [DataShareClientTest] <> MainAbility onWindowStageDestroy") + } + + onForeground() { + // Ability has brought to foreground + console.log("[ttt] [DataShareClientTest] <> MainAbility onForeground") + } + + onBackground() { + // Ability has back to background + console.log("[ttt] [DataShareClientTest] <> MainAbility onBackground") + } +}; diff --git a/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index.ets b/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index.ets new file mode 100644 index 0000000..e4a6a25 --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index.ets @@ -0,0 +1,1558 @@ +@Entry +@Component +struct Index { + + @State message: string = "Main thread message filed"; + @State operationSelection: string = '请选择'; + @State ifInsert: boolean = false; + @State ifQuery: boolean = false; + @State ifResult: boolean = false; + @State ifResultList: boolean = false; + @StorageLink('result') resultText: string = ''; + @State dataText: string = 'notification结果'; + + + @Builder MenuBuilder() { + Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + + Button('insert', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.operationSelection = 'insert'; + this.ifQuery = false; + this.ifResult = false; + this.ifInsert = true; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + console.info('[ttt] <> insert'); + }) + Divider().height(10) + Button('delete', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = true; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'delete'; + console.info('[ttt] <> delete'); + }) + Divider().height(10) + Button('update', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = true; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'update'; + console.info('[ttt] <> update'); + }) + Divider().height(10) + Button('query', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = true; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'query'; + console.info('[ttt] <> query'); + }) + Divider().height(10) + Button('batchInsert', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'batchInsert'; + console.info('[ttt] <> batchInsert'); + }) + Divider().height(10) + Button('notifyChange', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'notifyChange'; + console.info('[ttt] <> notifyChange'); + }) + Divider().height(10) + Button('openFile', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'openFile'; + console.info('[ttt] <> openFile'); + }) + Divider().height(10) + Button('getFileTypes', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'getFileTypes'; + console.info('[ttt] <> getFileTypes'); + }) + Divider().height(10) + Button('getType', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'getType'; + console.info('[ttt] <> getType'); + }) + Divider().height(10) + Button('normalizeUri', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'normalizeUri'; + console.info('[ttt] <> normalizeUri'); + }) + Divider().height(10) + Button('denormalizeUri', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'denormalizeUri'; + console.info('[ttt] <> denormalizeUri'); + }) + Divider().height(10) + Button('on', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'on'; + console.info('[ttt] <> on'); + }) + Divider().height(10) + Button('off', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.ifInsert = false; + this.ifResult = false; + this.ifQuery = false; + this.ifResultList = false; + AppStorage.SetOrCreate('optionLength', 1); + this.operationSelection = 'off'; + console.info('[ttt] <> off'); + }) + Divider().height(10) +// Button('batchInsertError', {type: ButtonType.Normal}) +// .fontSize(20) +// .height(50) +// .backgroundColor(Color.White) +// .fontColor(Color.Black) +// .fontWeight(FontWeight.Bold) +// .onClick(() => { +// this.ifInsert = false; +// this.ifResult = false; +// this.ifQuery = false; +// this.ifResultList = false; +// AppStorage.SetOrCreate('optionLength', 1); +// this.operationSelection = 'batchInsertError'; +// console.info('[ttt] <> batchInsertError'); +// }) +// Divider().height(10) +// Button('insertMaxLength', {type: ButtonType.Normal}) +// .fontSize(20) +// .height(50) +// .backgroundColor(Color.White) +// .fontColor(Color.Black) +// .fontWeight(FontWeight.Bold) +// .onClick(() => { +// this.ifInsert = false; +// this.ifResult = false; +// this.ifQuery = false; +// this.ifResultList = false; +// AppStorage.SetOrCreate('optionLength', 1); +// this.operationSelection = 'insertMaxLength'; +// console.info('[ttt] <> insertMaxLength'); +// }) +// Divider().height(10) +// Button('insertKeyBeyondLimit', {type: ButtonType.Normal}) +// .fontSize(20) +// .height(50) +// .backgroundColor(Color.White) +// .fontColor(Color.Black) +// .fontWeight(FontWeight.Bold) +// .onClick(() => { +// this.ifInsert = false; +// this.ifResult = false; +// this.ifQuery = false; +// this.ifResultList = false; +// AppStorage.SetOrCreate('optionLength', 1); +// this.operationSelection = 'insertKeyBeyondLimit'; +// console.info('[ttt] <> insertKeyBeyondLimit'); +// }) +// Divider().height(10) +// Button('insertValueBeyondLimit', {type: ButtonType.Normal}) +// .fontSize(20) +// .height(50) +// .backgroundColor(Color.White) +// .fontColor(Color.Black) +// .fontWeight(FontWeight.Bold) +// .onClick(() => { +// this.ifInsert = false; +// this.ifResult = false; +// this.ifQuery = false; +// this.ifResultList = false; +// AppStorage.SetOrCreate('optionLength', 1); +// this.operationSelection = 'insertValueBeyondLimit'; +// console.info('[ttt] <> insertValueBeyondLimit'); +// }) + } + .width(200) + .borderStyle(BorderStyle.Solid) + .borderWidth(1) + .borderColor(Color.Grey) + .borderRadius(10) + } + + build() { + Column() { + Row() { + Button('Connect') + .width(300) + .height(50) + .fontSize(35) + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Connect onclick enter') + await globalThis.connectDataShareExtAbility() + console.info('[ttt] [DataShareClientTest] <> Connect onclick leave') + }) + } + Row() { + Text('操作类型') + .fontSize(25) + .width(200) + Row() { + Text(this.operationSelection) + .fontSize(25) + .width(170) + .padding({left: 10}) + Polyline() + .width(20) + .height(20) + .points([[0, 0], [20, 0], [10, 20]]) + } + .width(200) + .height(50) + .borderRadius(20) + .backgroundColor(0xEFEFEF) + .bindMenu(this.MenuBuilder) + } + .height(60) + if(this.ifResultList) { + resultListDom() + } + if (this.ifInsert) { + insertDom() + } + if (this.ifQuery) { + queryDom() + } + if (this.ifResult) { + resultDom({ resultText: this.resultText, dataText: this.dataText }) + } + + Button('确定') + .width(300) + .height(50) + .fontSize(35) + .position({x: 70, y: '90%'}) + .onClick( async () => { + + this.ifInsert = false; + this.ifQuery = false; + + if(this.operationSelection == 'query') { + this.ifResultList = true; + let ret = await globalThis.query(); + this.operationSelection = ""; + AppStorage.SetOrCreate('Result', true); + } else if(this.operationSelection != 'query' && this.operationSelection != '') { + if(this.operationSelection == 'insert') { + console.info('[ttt] [DataShareClientTest] <> Insert onclick enter') +// AppStorage.SetOrCreate('insertName',this.insertName); +// AppStorage.SetOrCreate('insertAge',this.insertAge); + let ret = await globalThis.insert(); + console.info('[ttt] [DataShareClientTest] <> Insert onclick leave'); + } + if(this.operationSelection == 'delete') { + let ret = await globalThis.delete(); + console.info('[ttt] [DataShareClientTest] <> Delete onclick enter'); + } + if(this.operationSelection == 'update') { + let ret = await globalThis.update(); + console.info('[ttt] [DataShareClientTest] <> Update onclick enter'); + } + if(this.operationSelection == 'batchInsert') { + let ret = await globalThis.batchInsert(); + console.info('[ttt] [DataShareClientTest] <> batchInsert onclick enter'); + } + if(this.operationSelection == 'openFile') { + let ret = await globalThis.openFile(); + console.info('[ttt] [DataShareClientTest] <> openFile onclick enter'); + } + if(this.operationSelection == 'getFileTypes') { + let ret = await globalThis.getFileTypes(); + console.info('[ttt] [DataShareClientTest] <> getFileTypes onclick enter'); + } + if(this.operationSelection == 'getType') { + let ret = await globalThis.getType(); + console.info('[ttt] [DataShareClientTest] <> getType onclick enter'); + } + if(this.operationSelection == 'normalizeUri') { + let ret = await globalThis.normalizeUri(); + console.info('[ttt] [DataShareClientTest] <> normalizeUri onclick enter'); + } + if(this.operationSelection == 'denormalizeUri') { + let ret = await globalThis.denormalizeUri(); + console.info('[ttt] [DataShareClientTest] <> denormalizeUri onclick enter'); + } + if(this.operationSelection == 'on') { + let ret = await globalThis.on(); + console.info('[ttt] [DataShareClientTest] <> on onclick enter'); + } + if(this.operationSelection == 'off') { + let ret = await globalThis.off(); + console.info('[ttt] [DataShareClientTest] <> off onclick enter'); + } + if(this.operationSelection == 'batchInsertError') { + let ret = await globalThis.batchInsertError(); + console.info('[ttt] [DataShareClientTest] <> batchInsertError onclick enter'); + } + if(this.operationSelection == 'insertMaxLength') { + let ret = await globalThis.insertMaxLength(); + console.info('[ttt] [DataShareClientTest] <> insertMaxLength onclick enter'); + } + if(this.operationSelection == 'insertKeyBeyondLimit') { + let ret = await globalThis.insertKeyBeyondLimit(); + console.info('[ttt] [DataShareClientTest] <> insertKeyBeyondLimit onclick enter'); + } + if(this.operationSelection == 'insertValueBeyondLimit') { + let ret = await globalThis.insertValueBeyondLimit(); + console.info('[ttt] [DataShareClientTest] <> insertValueBeyondLimit onclick enter'); + } + if(this.operationSelection == 'notifyChange') { + let ret = await globalThis.notifyChange(); + console.info('[ttt] [DataShareClientTest] <> notifyChange onclick enter'); + } + this.ifResult = true; + this.operationSelection = "请选择"; + }else if(this.operationSelection == '') { + let resultCheck = AppStorage.Get('Result'); + if(resultCheck) { + let resultOption = AppStorage.Get('resultOption'); + if(resultOption == 'goToFirstRow') { + let ret = globalThis.goToFirstRow(); + if(ret) { + AppStorage.SetOrCreate('resultSetRet','成功'); + } + console.info('[ttt] [DataShareClientTest] <> goToFirstRow onclick enter'); + }else if(resultOption == 'goToLastRow') { + let ret = globalThis.goToLastRow(); + if(ret) { + AppStorage.SetOrCreate('resultSetRet','成功'); + } + console.info('[ttt] [DataShareClientTest] <> goToLastRow onclick enter'); + }else if(resultOption == 'goToNextRow') { + let ret = globalThis.goToNextRow(); + if(ret) { + AppStorage.SetOrCreate('resultSetRet','成功'); + } + console.info('[ttt] [DataShareClientTest] <> goToNextRow onclick enter'); + }else if(resultOption == 'goToPreviousRow') { + let ret = globalThis.goToPreviousRow(); + if(ret) { + AppStorage.SetOrCreate('resultSetRet','成功'); + } + console.info('[ttt] [DataShareClientTest] <> goToPreviousRow onclick enter'); + }else if(resultOption == 'goTo') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.goTo(resultValue); + if(ret) { + AppStorage.SetOrCreate('resultSetRet','成功'); + } + console.info('[ttt] [DataShareClientTest] <> goTo onclick enter'); + }else if(resultOption == 'goToRow') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.goToRow(resultValue); + if(ret) { + AppStorage.SetOrCreate('resultSetRet','成功'); + } + console.info('[ttt] [DataShareClientTest] <> goToRow onclick enter'); + }else if(resultOption == 'getBlob') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.getBlob(resultValue); + AppStorage.SetOrCreate('resultSetRet',ret); + console.info('[ttt] [DataShareClientTest] <> getBlob onclick enter'); + }else if(resultOption == 'getString') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.getString(resultValue); + AppStorage.SetOrCreate('resultSetRet',ret); + console.info('[ttt] [DataShareClientTest] <> getString onclick enter'); + }else if(resultOption == 'getLong') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.getLong(resultValue); + AppStorage.SetOrCreate('resultSetRet',ret); + console.info('[ttt] [DataShareClientTest] <> getLong onclick enter'); + }else if(resultOption == 'getDouble') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.getDouble(resultValue); + AppStorage.SetOrCreate('resultSetRet',ret); + console.info('[ttt] [DataShareClientTest] <> getDouble onclick enter'); + }else if(resultOption == 'getColumnIndex') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.getColumnIndex(resultValue); + AppStorage.SetOrCreate('resultSetRet',ret); + console.info('[ttt] [DataShareClientTest] <> getColumnIndex onclick enter'); + }else if(resultOption == 'getColumnName') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.getColumnName(resultValue); + AppStorage.SetOrCreate('resultSetRet',ret); + console.info('[ttt] [DataShareClientTest] <> getColumnName onclick enter'); + }else if(resultOption == 'getDataType') { + let resultValue = AppStorage.Get('resultValue'); + let ret = globalThis.getDataType(resultValue); + AppStorage.SetOrCreate('resultSetRet',ret); + console.info('[ttt] [DataShareClientTest] <> getDataType onclick enter'); + }else if(resultOption == 'close') { + let ret = globalThis.close(); + console.info('[ttt] [DataShareClientTest] <> close onclick enter'); + } + } + } + }) + } + .width('100%') + .height('100%') + .padding({left: 20,right: 20, top: 50, bottom: 50}) + } +} + +@Component +struct insertDom { + @State trueFalseString: string = ''; + @State insertName: string = ''; + @State insertAge: string = ''; + @Builder MenuBooleanBuilder() { + Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + Button('true', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.trueFalseString = 'true'; + AppStorage.SetOrCreate('trueFalseString',true); + console.info('[ttt] <> true'); + }) + Divider().height(10) + Button('false', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.trueFalseString = 'false'; + AppStorage.SetOrCreate('trueFalseString',false); + console.info('[ttt] <> false'); + }) + } + .width(200) + .borderStyle(BorderStyle.Solid) + .borderWidth(1) + .borderColor(Color.Grey) + .borderRadius(10) + } + + build() { + Column() { + Row() { + Text('name') + .fontSize(25) + .width(200) + TextInput() + .height(50) + .fontSize(20) + .width(200) + .padding({left: 10}) + .onChange((value: string) => { + this.insertName = value; + AppStorage.SetOrCreate('insertName',this.insertName); + console.info('[ttt] insertName = ' + this.insertName); + }) + } + .height(60) + Row() { + Text('age') + .fontSize(25) + .width(200) + TextInput() + .height(50) + .fontSize(20) + .width(200) + .padding({left: 10}) + .type(InputType.Number) + .onChange((value: string) => { + this.insertAge = value; + AppStorage.SetOrCreate('insertAge',this.insertAge); + console.info('[ttt] insertAge = ' + this.insertAge); + }) + } + .height(60) + Row() { + Text('boolean') + .fontSize(25) + .width(200) + Row() { + Text(this.trueFalseString) + .width(170) + .padding({left: 10}) + .height(50) + .fontSize(20) + Polyline() + .width(20) + .height(20) + .points([[0, 0], [20, 0], [10, 20]]) + } + .width(200) + .borderRadius(20) + .backgroundColor(0xEFEFEF) + .bindMenu(this.MenuBooleanBuilder) + } + .height(60) + } + } +} + +@Component +struct queryDom { + scroller: Scroller = new Scroller(); + @State functionCheck: string = '请选择'; + @State keyCheck: string = '请选择'; + @StorageLink('optionLength') @Watch('changeOptions') optionLength: number = 1; + private options: [{ + functionCheck: string, + keyCheck: string, + value: string + }]= [{ functionCheck: '', keyCheck: '', value: '' }]; + + private changeOptions() { +// AppStorage.SetOrCreate('options', this.options); + console.info('[ttt] <> options = ' + JSON.stringify(this.options)); + this.options.push({ functionCheck: '', keyCheck: '', value: '' }); + } + + build() { + Scroll(this.scroller) { + Column() { + Row() { + Text('条件') + .fontSize(25) + .width(120) + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Start, + justifyContent: FlexAlign.Start, + wrap: FlexWrap.Wrap + }) { + ForEach(this.options, (item, index) => { + if (index < this.optionLength) { + optionDom({ functionCheck: item.functionCheck, keyCheck: item.keyCheck, optionIndex: 'id' + index }) + } + }) + } + } + + Button('+', { type: ButtonType.Circle, stateEffect: true }) + .width(50) + .height(50) + .margin({ left: 350 }) + .onClick(() => { + let opt: number = AppStorage.Get('optionLength'); + opt = opt + 1; + AppStorage.Set('optionLength', opt); + }) + } + } + .scrollBarWidth(0) + .height(500) + } +} + +@Component +struct optionDom { + @Prop functionCheck: string; + @Prop keyCheck: string; + @Prop optionIndex: string; + @State predicateIndex: string = ''; + + public aboutToAppear() { + this.predicateIndex = this.optionIndex.slice(2); + let preIndex: { + functionCheck: string, + keyCheck: string, + value: string + } = { + functionCheck: '', + keyCheck: '', + value: '' + }; + AppStorage.SetOrCreate('Predicates' + this.predicateIndex, JSON.stringify(preIndex)); + } + @Builder MenuFunctionBuilder() { + Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + Button('equalTo', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'equalTo'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'equalTo'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> equalTo'); + }) + Divider().height(10) + Button('notEqualTo', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'notEqualTo'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'notEqualTo'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> notEqualTo'); + }) + Divider().height(10) + Button('greaterThan', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'greaterThan'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'greaterThan'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> greaterThan'); + }) + Divider().height(10) + Button('lessThan', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'lessThan'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'lessThan'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> lessThan'); + }) + Divider().height(10) + Button('greaterThanOrEqualTo', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'greaterThanOrEqualTo'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'greaterThanOrEqualTo'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> greaterThanOrEqualTo'); + }) + Divider().height(10) + Button('lessThanOrEqualTo', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'lessThanOrEqualTo'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'lessThanOrEqualTo'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> lessThanOrEqualTo'); + }) + Divider().height(10) + Button('isNull', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'isNull'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'isNull'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> isNull'); + }) + Divider().height(10) + Button('in', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'in'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'in'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> in'); + }) + Divider().height(10) + Button('notIn', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'notIn'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'notIn'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> notIn'); + }) + Divider().height(10) + Button('like', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'like'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'like'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> like'); + }) + Divider().height(10) + Button('unlike', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'unlike'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'unlike'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> unlike'); + }) + Divider().height(10) + Button('and', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'and'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'and'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> and'); + }) + Divider().height(10) + Button('or', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'or'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'or'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> or'); + }) + Divider().height(10) + Button('orderByAsc', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'orderByAsc'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'orderByAsc'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> orderByAsc'); + }) + Divider().height(10) + Button('orderByDesc', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'orderByDesc'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'orderByDesc'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> orderByDesc'); + }) + Divider().height(10) + Button('limit', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'limit'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'limit'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> limit'); + }) + Divider().height(10) + Button('isNotNull', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'isNotNull'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'isNotNull'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> isNotNull'); + }) + Divider().height(10) + Button('beginWrap', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'beginWrap'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'beginWrap'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> beginWrap'); + }) + Divider().height(10) + Button('endWrap', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'endWrap'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'endWrap'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> endWrap'); + }) + Divider().height(10) + Button('prefixKey', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'prefixKey'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'prefixKey'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> prefixKey'); + }) + Divider().height(10) + Button('contains', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'contains'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'contains'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> contains'); + }) + Divider().height(10) + Button('beginsWith', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'beginsWith'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'beginsWith'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> beginsWith'); + }) + Divider().height(10) + Button('endsWith', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'endsWith'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'endsWith'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> endsWith'); + }) + Divider().height(10) + Button('glob', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'glob'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'glob'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> glob'); + }) + Divider().height(10) + Button('between', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'between'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'between'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> between'); + }) + Divider().height(10) + Button('notBetween', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'notBetween'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'notBetween'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> notBetween'); + }) + Divider().height(10) + Button('distinct', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'distinct'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'distinct'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> distinct'); + }) + Divider().height(10) + Button('groupBy', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'groupBy'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'groupBy'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> groupBy'); + }) + Divider().height(10) + Button('indexedBy', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'indexedBy'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'indexedBy'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> indexedBy'); + }) + Divider().height(10) + Button('inKeys', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.functionCheck = 'inKeys'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.functionCheck = 'inKeys'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> inKeys'); + }) + } + .width(200) + .borderStyle(BorderStyle.Solid) + .borderWidth(1) + .borderColor(Color.Grey) + .borderRadius(10) + } + @Builder MenuKeyCheckBuilder() { + Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + Button('name', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.keyCheck = 'name'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.keyCheck = 'name'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> name'); + }) + Divider().height(10) + Button('age', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.keyCheck = 'age'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.keyCheck = 'age'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> age'); + }) + Divider().height(10) + Button('boolean', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.keyCheck = 'boolean'; + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.keyCheck = 'boolean'; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> boolean'); + }) + } + .width(200) + .borderStyle(BorderStyle.Solid) + .borderWidth(1) + .borderColor(Color.Grey) + .borderRadius(10) + } + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start, wrap: FlexWrap.Wrap }) { + Row() { + Row() { + Text(this.functionCheck) + .width(120) + .padding({left: 10}) + .height(50) + .fontSize(20) + Polyline() + .width(20) + .height(20) + .points([[0, 0], [20, 0], [10, 20]]) + } + .width(150) + .borderRadius(20) + .backgroundColor(0xEFEFEF) + .bindMenu(this.MenuFunctionBuilder) + .margin({right: 10}) + Row() { + Text(this.keyCheck) + .width(120) + .padding({left: 10}) + .height(50) + .fontSize(20) + Polyline() + .width(20) + .height(20) + .points([[0, 0], [20, 0], [10, 20]]) + } + .width(150) + .borderRadius(20) + .backgroundColor(0xEFEFEF) + .bindMenu(this.MenuKeyCheckBuilder) + .margin({right: 10}) + } + .height(60) + Row() { + TextInput() + .height(50) + .fontSize(20) + .width(150) + .padding({left: 10}) + .onChange((value: string) => { + let predicate : {functionCheck: string, + keyCheck: string, + value: string} = JSON.parse(AppStorage.Get('Predicates' + this.predicateIndex)); + predicate.value = value; + AppStorage.Set('Predicates' + this.predicateIndex, JSON.stringify(predicate)); + console.info('[ttt] <> optionValue = ' + value); + }) + } + .height(60) + } + .height(120) + } +} + +@Component +struct resultDom { + @Prop resultText: string; + @Prop dataText: string; + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start}) { + Text(this.resultText) + .fontSize(20) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + Text(this.dataText) + .fontSize(20) + .fontColor(Color.Black) + } + } +} + +@Component +struct resultListDom { + @State resultOption: string = ''; + @StorageLink('allResults') allResults: string = 'aaa'; + @StorageLink('resultSetRet') resultSetRet: string = ''; + + @Builder MenuResultListBuilder() { + Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + + Button('goToFirstRow', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'goToFirstRow'; + AppStorage.SetOrCreate('resultOption', 'goToFirstRow'); + console.info('[ttt] <> goToFirstRow'); + }) + Divider().height(10) + Button('goToLastRow', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'goToLastRow'; + AppStorage.SetOrCreate('resultOption', 'goToLastRow'); + console.info('[ttt] <> goToLastRow'); + }) + Divider().height(10) + Button('goToNextRow', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'goToNextRow'; + AppStorage.SetOrCreate('resultOption', 'goToNextRow'); + console.info('[ttt] <> goToNextRow'); + }) + Divider().height(10) + Button('goToPreviousRow', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'goToPreviousRow'; + AppStorage.SetOrCreate('resultOption', 'goToPreviousRow'); + console.info('[ttt] <> goToPreviousRow'); + }) + Divider().height(10) + Button('goTo', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'goTo'; + AppStorage.SetOrCreate('resultOption', 'goTo'); + console.info('[ttt] <> goTo'); + }) + Divider().height(10) + Button('goToRow', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'goToRow'; + AppStorage.SetOrCreate('resultOption', 'goToRow'); + console.info('[ttt] <> goToRow'); + }) + Divider().height(10) + Button('getBlob', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getBlob'; + AppStorage.SetOrCreate('resultOption', 'getBlob'); + console.info('[ttt] <> getBlob'); + }) + Divider().height(10) + Button('getString', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getString'; + AppStorage.SetOrCreate('resultOption', 'getString'); + console.info('[ttt] <> getString'); + }) + Divider().height(10) + Button('getLong', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getLong'; + AppStorage.SetOrCreate('resultOption', 'getLong'); + console.info('[ttt] <> getLong'); + }) + Divider().height(10) + Button('getDouble', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getDouble'; + AppStorage.SetOrCreate('resultOption', 'getDouble'); + console.info('[ttt] <> getDouble'); + }) + Divider().height(10) + Button('isColumnOrKeyNull', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'isColumnOrKeyNull'; + AppStorage.SetOrCreate('resultOption', 'isColumnOrKeyNull'); + console.info('[ttt] <> isColumnOrKeyNull'); + }) + Divider().height(10) + Button('getColumnOrKeyIndex', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getColumnOrKeyIndex'; + AppStorage.SetOrCreate('resultOption', 'getColumnOrKeyIndex'); + console.info('[ttt] <> getColumnOrKeyIndex'); + }) + Divider().height(10) + Button('getColumnOrKeyName', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getColumnOrKeyName'; + AppStorage.SetOrCreate('resultOption', 'getColumnOrKeyName'); + console.info('[ttt] <> getColumnOrKeyName'); + }) + Divider().height(10) + Button('getInt', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getInt'; + AppStorage.SetOrCreate('resultOption', 'getInt'); + console.info('[ttt] <> getInt'); + }) + Divider().height(10) + Button('getDataType', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'getDataType'; + AppStorage.SetOrCreate('resultOption', 'getDataType'); + console.info('[ttt] <> getDataType'); + }) + Divider().height(10) + Button('close', {type: ButtonType.Normal}) + .fontSize(20) + .height(50) + .backgroundColor(Color.White) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .onClick(() => { + this.resultOption = 'close'; + AppStorage.SetOrCreate('resultOption', 'close'); + console.info('[ttt] <> close'); + }) + } + .width(200) + .borderStyle(BorderStyle.Solid) + .borderWidth(1) + .borderColor(Color.Grey) + .borderRadius(10) + } + + scroller: Scroller = new Scroller(); + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start}) { + Row() { + Text('结果集操作') + .fontSize(20) + .width(120) + Row() { + Text(this.resultOption) + .fontSize(20) + .width(120) + .padding({ left: 10 }) + Polyline() + .width(20) + .height(20) + .points([[0, 0], [20, 0], [10, 20]]) + } + .width(150) + .height(50) + .borderRadius(20) + .backgroundColor(0xEFEFEF) + .margin({right: 10}) + .bindMenu(this.MenuResultListBuilder) + TextInput() + .height(50) + .fontSize(20) + .width(150) + .padding({left: 10}) + .onChange((value: string) => { + AppStorage.SetOrCreate('resultValue', value); + console.info('[ttt] <> resultValue = ' + value); + }) + Text(this.resultSetRet) + } + .height(60) + } + } +} \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index/index.ets b/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index/index.ets new file mode 100644 index 0000000..ce736d3 --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/index/index.ets @@ -0,0 +1,326 @@ +import file from '@system.file'; +import dataShare from '@ohos.data.dataShare' + +import dataAbility from '@ohos.data.dataAbility'; +import rdb from '@ohos.data.rdb'; + +import {Core, ExpectExtend, InstrumentLog, ReportExtend} from "deccjsunit/index.ets" +import testsuite from "../../test/List.test.ets" + +import router from '@system.router'; + +async function routePage() { + let options = { + uri: 'pages/second/second' + } + try { + await router.push(options) + } catch (err) { + console.error(`fail callback, code: ${err.code}, msg: ${err.msg}`) + } +} + +@Entry +@Component +struct Index { + @State message: string = "Main thread message filed" + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text('DataShare Client Test') + .fontSize(40) + .fontWeight(FontWeight.Bold) + + Text(`${this.message}`) + .fontSize(30) + .height('15%') + .width('100%') + .textAlign(TextAlign.Center) + + Row() { + Button() { + Text('Connect') + .fontSize(35) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Connect onclick enter') + this.message = 'Connect onclick' + await globalThis.connectDataShareExtAbility() + console.info('[ttt] [DataShareClientTest] <> Connect onclick leave') + }) + + Button() { + Text('Disconnect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Disconnect onclick enter') + this.message = 'Disconnect onclick' + await globalThis.disconnectDataShareExtAbility() + console.info('[ttt] [DataShareClientTest] <> Disconnect onclick leave') + }) + } + + Row() { + Button() { + Text('On') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> On onclick enter') + this.message = '~ On onclick' + try { + await globalThis.on(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer on catch(err)====>:' + err); + } + console.info('[ttt] [DataShareClientTest] <> On onclick leave') + }) + + Button() { + Text('Off') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Off onclick enter') + this.message = '~ Off onclick' + try { + await globalThis.off(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer Off catch(err)====>:' + err); + } + console.info('[ttt] [DataShareClientTest] <> Off onclick leave') + }) + } + + Row() { + Button() { + Text('Query') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Query onclick enter') + this.message = 'Query onclick' + let ret = await globalThis.query() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> Query onclick leave') + }) + + Button() { + Text('Insert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Insert onclick enter') + this.message = 'Insert onclick' + let ret = await globalThis.insert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> Insert onclick leave') + }) + } + + Row() { + Button() { + Text('Update') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Update onclick enter') + this.message = 'Update onclick' + let ret = await globalThis.update() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> Update onclick leave') + }) + + Button() { + Text('Delete') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> Delete onclick enter') + this.message = 'Delete onclick' + let ret = await globalThis.delete() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> Delete onclick leave') + }) + } + + Row() { + Button() { + Text('BatchInsert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> BatchInsert onclick enter') + this.message = 'BatchInsert onclick' + let ret = await globalThis.batchInsert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> BatchInsert onclick leave') + }) + + Button() { + Text('NotifyChange') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> NotifyChange onclick enter') + this.message = 'NotifyChange onclick' + await globalThis.notifyChange() + console.info('[ttt] [DataShareClientTest] <> NotifyChange onclick leave') + }) + } + + Row() { + Button() { + Text('GetType') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> GetType onclick enter') + this.message = 'GetType onclick' + let ret = await globalThis.getType() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> GetType onclick leave') + }) + + Button() { + Text('GetFileTypes') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> GetFileTypes onclick enter') + this.message = 'GetFileTypes onclick' + let ret = await globalThis.getFileTypes() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> GetFileTypes onclick leave') + }) + } + + Row() { + Button() { + Text('NormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> NormalizeUri onclick enter') + this.message = 'NormalizeUri onclick' + let ret = await globalThis.normalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> NormalizeUri onclick leave') + }) + + Button() { + Text('DenormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareClientTest] <> DenormalizeUri onclick enter') + this.message = 'DenormalizeUri onclick' + let ret = await globalThis.denormalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareClientTest] <> DenormalizeUri onclick leave') + }) + } + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/second.ets b/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/second.ets new file mode 100644 index 0000000..e69de29 diff --git a/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/second/second.ets b/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/second/second.ets new file mode 100644 index 0000000..afc9518 --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/ets/pages/second/second.ets @@ -0,0 +1,29 @@ +import router from '@system.router'; + +@Entry +@Component +struct Second { + private content: string = "Second Page" + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text(`${this.content}`) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('back to index') + .fontSize(20) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .onClick(() => { + router.back() + }) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/entry/src/main/ets/test/Ability.test.ets b/datashare/XTS/Client0602Beta/entry/src/main/ets/test/Ability.test.ets new file mode 100644 index 0000000..9038dba --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/ets/test/Ability.test.ets @@ -0,0 +1,17 @@ +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index" + + +export default function abilityTest(abilityContext) { + describe('ActsAbilityTest', function () { + /** + * @tc.number: SUB_AA_OpenHarmony_Context_0900 + * @tc.name: Check that context paths of different Ability in the same hap are the same. + * @tc.desc: Check the ability context paths of the same hap are the same. + */ + it('SUB_AA_OpenHarmony_Context_0900', 0, async function (done) { + console.log("SUB_AA_OpenHarmony_Context_0900 --- start") + var labelString = abilityContext.resourceManager.getString(16777218); + expect('DataShareClientTest').assertEqual(labelString); + }) + }) +} \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/entry/src/main/ets/test/List.test.ets b/datashare/XTS/Client0602Beta/entry/src/main/ets/test/List.test.ets new file mode 100644 index 0000000..3759912 --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * 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 abilityTest from './Ability.test.ets' + + +export default function testsuite(context) { + + abilityTest(context) + +} \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/entry/src/main/module.json5 b/datashare/XTS/Client0602Beta/entry/src/main/module.json5 new file mode 100644 index 0000000..fcfc9a5 --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/module.json5 @@ -0,0 +1,49 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "srcEntrance": "./ets/Application/AbilityStage.ts", + "description": "$string:phone_entry_dsc", + "mainElement": "MainAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "uiSyntax": "ets", + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ts", + "description": "$string:phone_entry_main", + "icon": "$media:icon", + "label": "$string:entry_label", + "visible": true, + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ], + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:color_1" + } + ] +// "requestPermissions": [ +// { +// "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" +// }, +// { +// "name": "ohos.permission.GET_BUNDLE_INFO" +// }, +// { +// "name": "ohos.permission.INSTALL_BUNDLE" +// } +// ] + } +} diff --git a/datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/datashare.json b/datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/datashare.json new file mode 100644 index 0000000..c946d63 --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/datashare.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "color_1", + "value": "#ff0000" + } + ] +} \ No newline at end of file diff --git a/datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/string.json b/datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..f20b49d --- /dev/null +++ b/datashare/XTS/Client0602Beta/entry/src/main/resources/base/element/string.json @@ -0,0 +1,40 @@ +{ + "string": [ + { + "name": "phone_entry_dsc", + "value": "i am an entry for phone" + }, + { + "name": "phone_entry_main", + "value": "the phone entry ability" + }, + { + "name": "entry_label", + "value": "DataShareClientTest" + }, + { + "name": "form_description", + "value": "my form" + }, + { + "name": "serviceability_description", + "value": "my whether" + }, + { + "name": "description_application", + "value": "DataShareClientTest" + }, + { + "name": "app_name", + "value": "DataShareClientTest" + }, + { + "name": "description_datashareextability", + "value": "description_datashareextability" + }, + { + "name": "description_serviceability", + "value": "description_serviceability" + } + ] +} diff --git a/datashare/XTS/Client0602Beta/entry/src/main/resources/base/media/icon.png b/datashare/XTS/Client0602Beta/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 aEetr-t+b>iEou3GF8>8j;zyAHQUCznBdmr1 literal 0 HcmV?d00001 diff --git a/datashare/XTS/Client0602Beta/offline-dependency/ohos-hvigor-cli-1.0.0.tgz b/datashare/XTS/Client0602Beta/offline-dependency/ohos-hvigor-cli-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..617a59f4c6178269df618d5d43391f74d59bd6af GIT binary patch literal 5309 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 PpZWQJcx?y=0BisN;e&NJ literal 0 HcmV?d00001 diff --git a/datashare/XTS/Client0602Beta/offline-dependency/ohos-hvigor-ohos-plugin-1.0.0.tgz b/datashare/XTS/Client0602Beta/offline-dependency/ohos-hvigor-ohos-plugin-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..1e5ffcb6c608af3297573c3013feadc8aaf051b6 GIT binary patch literal 48841 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 CtadE` literal 0 HcmV?d00001 diff --git a/datashare/XTS/Client0602Beta/offline-dependency/ohos-sdk-common-1.0.0.tgz b/datashare/XTS/Client0602Beta/offline-dependency/ohos-sdk-common-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cf402b30a64dd58bbd7d58615c28214cdb47ccf7 GIT binary patch literal 6056 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 literal 0 HcmV?d00001 diff --git a/datashare/XTS/Client0602Beta/package-lock.json b/datashare/XTS/Client0602Beta/package-lock.json new file mode 100644 index 0000000..f3f7b4d --- /dev/null +++ b/datashare/XTS/Client0602Beta/package-lock.json @@ -0,0 +1,1217 @@ +{ + "name": "datashareclienttest", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ohos/hos-sdkmanager-common": { + "version": "1.0.4", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hos-sdkmanager-common/-/@ohos/hos-sdkmanager-common-1.0.4.tgz", + "integrity": "sha512-LWrfF8Js+u54BcEAdyjzsA81iGBA4LPvQdQ1ig/pX6mvTieUPSvtjtAzdI8nnGVmJRLrHwAMHEO/syd9d8UAFw==", + "requires": { + "@ohos/sdkmanager-common": "^1.1.8" + } + }, + "@ohos/hvigor": { + "version": "1.1.6", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hvigor/-/@ohos/hvigor-1.1.6.tgz", + "integrity": "sha512-/n7cSH3Tc1p5CEgELeJof2MLBYbu96Enmkga8PA1BFoBZnPF+SirHwJyynhtUtOJQOyFkBFQOXmwzq5o2Pdvug==", + "requires": { + "@ohos/hvigor-base": "1.1.6", + "fs-extra": "10.0.0", + "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.2" + } + }, + "@ohos/hvigor-base": { + "version": "1.1.6", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hvigor-base/-/@ohos/hvigor-base-1.1.6.tgz", + "integrity": "sha512-VU1jdgb+86RZ6fsea1kKP3Dx77DAQmSwGQoFEpjRVPP6aLXpRfM8aLS8DNlpMVEw1dFVQhOOsZ22thcbxinSOA==", + "requires": { + "json5": "2.2.0", + "log4js": "6.4.1", + "once": "1.4.0", + "pretty-hrtime": "1.0.0" + } + }, + "@ohos/hvigor-ohos-plugin": { + "version": "1.1.6", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hvigor-ohos-plugin/-/@ohos/hvigor-ohos-plugin-1.1.6.tgz", + "integrity": "sha512-Bnm1932VypATJf/Cp+sTzsX/oHFojAW7dAbEgfQpwQsyXmQbwXEf0zGnbrjVD0WKtxVVpO+znhpZvrDhOiUXlg==", + "requires": { + "@ohos/hos-sdkmanager-common": "1.0.4", + "@ohos/hvigor-base": "1.1.6", + "@ohos/sdkmanager-common": "1.1.8", + "adm-zip": "0.5.9", + "ajv": "8.10.0", + "execa": "5.1.1", + "fast-xml-parser": "4.0.3", + "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": { + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==" + } + } + }, + "@ohos/hypium": { + "version": "1.0.1", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hypium/-/@ohos/hypium-1.0.1.tgz", + "integrity": "sha512-HaztFbgwYZCdVlayXirBlmJaNTXUO65qRgYnUmrhWGEzG7wFU2fyFbeXgQeYMVWFXgeezFOoHAPoS96TEE7TIQ==" + }, + "@ohos/sdkmanager-common": { + "version": "1.1.8", + "resolved": "https://repo.harmonyos.com/npm/@ohos/sdkmanager-common/-/@ohos/sdkmanager-common-1.1.8.tgz", + "integrity": "sha512-mxq69+6Zg/ybeQGnOtkBzOTbNBkEdiYehRKWsAD/je53v1W+ahauLqe90pNZEiBuVYugzb6z2EaJtAXYZtE8gQ==" + }, + "adm-zip": { + "version": "0.5.9", + "resolved": "https://repo.huaweicloud.com/repository/npm/adm-zip/-/adm-zip-0.5.9.tgz", + "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==" + }, + "ajv": { + "version": "8.10.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==" + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "date-format": { + "version": "4.0.11", + "resolved": "https://repo.huaweicloud.com/repository/npm/date-format/-/date-format-4.0.11.tgz", + "integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-xml-parser": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/fast-xml-parser/-/fast-xml-parser-4.0.3.tgz", + "integrity": "sha512-xhQbg3a/EYNHwK0cxIG1nZmVkHX/0tWihamn5pU4Mhd9KEVE2ga8ZJiqEUgB2sApElvAATOdMTLjgqIpvYDUkQ==", + "requires": { + "strnum": "^1.0.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "5.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" + }, + "flatted": { + "version": "3.2.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "requires": { + "for-in": "^1.0.1" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "glob": { + "version": "7.2.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "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": "https://repo.huaweicloud.com/repository/npm/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "hypium": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/hypium/-/hypium-1.0.0.tgz", + "integrity": "sha512-nl+RQVv2AU/5FvFRhsXyWO5wh+2huhdqRZ3bszBWZzW+kpNI3AT4ydvVRYIfaQbYwV4UlX/rSc7BtFjLAezhow==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "liftoff": { + "version": "4.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "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": "https://repo.huaweicloud.com/repository/npm/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "log4js": { + "version": "6.4.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stdout": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/mute-stdout/-/mute-stdout-1.0.0.tgz", + "integrity": "sha512-MaSQenn0f9oxIjtCufclpV00MuYTiHaXPbdcfPIM+quMqoa8cXywjHHx4LhhIAZlXqPWMdcUpYviajfmHtHRJw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://repo.huaweicloud.com/repository/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" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "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": "https://repo.huaweicloud.com/repository/npm/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-hrtime": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", + "integrity": "sha512-CU2l5CYUAptUYq/671ajexQfXuxJFwwg0n243Kdkx8bTjeenedsWgu8TGHPm03vLfNtk3aTXgySKPp3Usykudw==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "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": "https://repo.huaweicloud.com/repository/npm/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-package-path": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "streamroller": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/streamroller/-/streamroller-3.1.1.tgz", + "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", + "requires": { + "date-format": "^4.0.10", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "7.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "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.1" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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" + } + } + } +} diff --git a/datashare/XTS/Client0602Beta/package.json b/datashare/XTS/Client0602Beta/package.json new file mode 100644 index 0000000..c701ec7 --- /dev/null +++ b/datashare/XTS/Client0602Beta/package.json @@ -0,0 +1,19 @@ +{ + "license":"ISC", + "devDependencies":{}, + "name":"datashareclienttest", + "ohos":{ + "org":"huawei", + "directoryLevel":"project", + "buildTool":"hvigor" + }, + "description":"example description", + "repository":{}, + "version":"1.0.0", + "dependencies":{ + "@ohos/hypium":"1.0.1", + "@ohos/hvigor-ohos-plugin":"1.1.6", + "hypium":"^1.0.0", + "@ohos/hvigor":"1.1.6" + } +} \ No newline at end of file diff --git a/datashare/XTS/hap/kvdb/KVDBServer0624_new.hap b/datashare/XTS/hap/kvdb/KVDBServer0624_new.hap new file mode 100644 index 0000000000000000000000000000000000000000..7f9b705e510c890a56aa6740f9b00cbf86a188b0 GIT binary patch literal 276369 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 z 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�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 z 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

JZ2Q+_PP#5R0qg&cK@`1>q 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

o2SifA=|_f9J-s0iAS%N`;h(~1 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 -`$#{O8MU$~-=!s) zz>|80>#TEo+@TJ;&l{53LnNu`h{)*%Ec#7;sv8P~r3izIL&C%vZa;`3Df5^lJO{ek}{$Q0k~UIJ0?;E zPs;`K1JD||%+1d)F#Lao6l@Op z`~`D6Y<|DT4GGimoqlnFxloO^M|OpBCl5S$V5>6#W!){vAr*o> zfI0F)@b#$WYN0Np6dG<*Wl zsI?Y_70c++df++yuexrP_2XPe}sEPWKTOlx(%We4TLLe~~Csgovz+7Ej(Bg!RGH8fRp^(3< zprEa-E#FDN=KBJT1s*Y!V8NU!yJKFBV=MqHS6J-zNWq{*W`}x9U5CXf1hx*q^f=or zzJSHq7?1!FAs+(V7I23^Ian=0Uqh(P8GvBHXiGiFZ@^s_4r%ZukHZ37qb>j#b9ybg zwi-)SO|GTfR#R1D#YUD^Et*-qc#&nPZQ(-OyhT-x8cX#;i@kbYMb)CJ>UnTiX|c^) zZkb&*uL77FumyokV1odT0Kf!(^|&QLy&4J8t6-*P6qCo(#9zpWBTihYiT|pHesOSTmi4+tFL1E>ID$UXWlTJ%+KIyky zqf$b}&Ta)AYj=7)bs(`yC7mAD6pGiFtgt(6OD<#B6n|Ka-9|T~eQ(%=-Pcm*_7dKV z+t3w&MlenvVidCdiQr~s5vU-Y(gBqh(RGSK%LChC0sRfrFPd9Mw*>jRK$!Fxu1>lk zQ%341=GbI1bbV+MnrC)oaxXCl#+-qULyGj$G?EcgX?ln`7!`|lVKmxSGBO-(7d)Pb zUtmGMDj0T$Bwq3>VEI60l_!60sd{XnojNZiGlxMT#y2Vhg954%s7rJrTM#gk-Bu-% zXi!=auh@kdHX?HDf+`rJOU81i70hSMd-j6~3l>nY6)8WB9PG?H(CFZ%(}y-3MpoQt z)00lxleQSR(nYadX(%o`OsV_Q&_>stX=o&2Z`y)O=c6$^Ye~kZmaC=3tA_5?UNgp# zg%6vQTMezG&##8Y(&AV{JMlbg`lu?FdpAAU5e!K!`81bepU3HU7pPz5*XKht0VjaM z1C!UJ$d5Gk8=E@(u=AkMr>PigFNFN$X?L(d-B|uAH6R%7Sc%3VIVVX>COBA<3WSM8 zV1(Q1al*u^3iz%ardc7$TOYJ6aZ7EHBq2g-AnXeH0(mZ&#=^ulV1xNnBP@0-_PSw5 z3wx8>Q(skYwfJG4=!Hca_}AGIR3ZZ?UcoTTyArFf4pmYNLTt~p6lQ`;aLzxUTF;X^ z0kUKJ^2%bTMI$4U%R1|P;m{&qxl}=?{M57Ggbmh&>w+$r>`H;TPA{0>Kt6m$k~a!m z2Ry)#f+YEFs1t!!+bD#?BxgX|A|le~k@DT%247xoFyw>}90Or5Ic_dzP#Ok*niM6$ z&Msd-0$z@+wA$e|zflUo?kpjUCn%l~0xfF5WEmnU4x%O0^a3p-wH>Ngd27{yeT!wJ zyMAPuWu)MNk^D}RY=qF{JL~IfqyPp}@}M|&2BCL#uMwmmOa%o3s(^%XCJj^zRgdye z%2oS;U^QJ=q6O$m-IS^dRd9P@n@@fJ&`>Z!Pe&{8Xx_+>GuYf&Q#elrz#H6+@=yVj z)B)gL4wfl65amXyd&My;#2!h!3TzVyj)lLeBcm7CRXI8G66jK=HKsb{eI6eIo`0szy|*Ey|e|odC+EcF6^?B83{Vh=7g& z8>f|xN{`eoFAhU!uO4ES^u2GH1z%J|ZedS5Pq@WvwZJDfjovD-4Z$)C{$s=Yd^-?U z3Ro?x!a>YUgmHm33yC(=CA1rVP}gnl`cPBe$fCl+lQd+cmrW9e6Aj)j0$GVbJrdTG zJwD4)U%*qZX@Uwh04z1|Sy0}DLN%8t@0N-#DxsLT%rEzOG;7IJ)bH~v*hDm!heIKs zR|WwUB&lMfA|d>6SQN)}k9@n+AH=wmj_AuS|KBL#~C#lk)mW)SND{4!bl_Q`RwLdc!hP%ylLmIEVy_@ufEG zc%#)epUNQ9F*c4+q&7-kgGzY3x-L^0Iro}04phEN|K ziFlSr-GwXBsc5*Mz_JKdEntBRR5ENk1qQmCC?ZdiBG9g! zSTx>MQZ#9NeMyOHyyUEx#urU&C~PR1R8lBSlE#(5>h!cUHFR18{uO0-*oa4sqyg>* zSR9NR1dJ41OIpQ@ehJ_6g}cP7_Ru~s3;JpMH!=ARE^+? zVULDd-NLXb>clfGod!fkqN<>bK|O+~;ZTYmEJ30LlZTWC3uP8RxRY=|s@n@Igt*8? zBOIk}3OQA-fr~iCEX#vK=2cf80Lb+EuiyxJ&?%PJGpKhpu#|p`z$f!>by!>scYVawXS?trI*R%p?GmMHtj7GeP8Ee$GuP zOM$GFwfYa)X`v8jWLKFbB8%#xLp5*70;7dQJt*~rVz#sCsbE^9@u!k7uzKqePmWpR`sgpnaLyERHem%Szs2dFKYQQ)19Nf?%z?jQW&MW@ znDEuL`{dw%N9OF4g9*86$VHu;oVB@-B!`)Cxn<+5xfqboErZ-PZP8q7E_8sMLJDv0 zn0ca>o=D%+JGYqiZ*jSbA_R`{7Rwt4(kbp@A;0d2~k%^q@8sNO@f zT_#!gHJ}Vjxv<&W(=?!#N<>qLm}(|o7Nrw!R>@|Qu+;{u%Vu-oRlT(l7)o$)Q@QrW zX|p-8OdbB{@om(WQ8}Y$aoES8H=|Z!KFe_PG5gKh3#;1>3dnA41_iWSD4Pgn3o5LQ z@Uqcvb;HZ0+Lse6tj+MU*=}utmrm`=RgQ#SqJE05*#gbB*sUe-PmO3+bc85bRcZCX zbD!Nh3I36lBfs`mT05_uHMDl#k<|?&m#kGbTa_aC%7xADpXDW~)yqlejhb(x6id%Q zNwL~~DP)EVn|(s%IN73iQBide!>kc(V?}Li?ND5biG7%xX2e1+;kTe7JvMJOQOSY) zMD853|U83!CmX0Zhq5UW#v;VraYaENZ(>xjT?i?q+nz ztV5o%v7BWVlH}z~2Rq*;#mQW)^Q$-<-&B!tj%WB}SR`~ObbmH`pu9BGvPW^XBz+Ko zKH3Z#J|yLq%9~ELB4aQ1RqRf+OK{cHU_HEH;eJJY|`--|Zj>5O>nZ(I|EpxB`kSwwk(V;mXj zc&##|F|JA~NjN7`G_sS{^x*05#XyZ@Hb%#t^p#W%LqKA+5SgV#d>nt2G{&k4-J~>& zN&q}-2WW>5f<#^kNVPMBQTFDriB)m*dJ;tmA}iT>Xn0Ag07AWJrJf>YldqOY??z=J zL0Amg_z0%~m2Vt*+X!zd7%)M_RFRh$Ja8e_3dACln)|cRrGl#nJQzoy&_a`HBnY1^ z%2w;ai+8W|C7R2|tpP|?QGq8|XPX~2*mOguhlJZ#y-{8Ad+n9A5L8qlsrVv?wFYAC zP|3b1ia1IwYavjykjAH3NJ^wH!{!sHh#;vMS-DLF;Fy(-Uc}TqiK(#8=L#_!CrDId zq4B{(2Pj#Z_bkAb+2}u;y=i7^9NlX)%Iq`E}F;{lu?_6$O2MiMN*E_>Zw4a(EaFIGL#isn3_ZiI(o6*2wZD180TVGMuQ-5 z3(>Sxr9`YjcpNNOabc@U`5U#TdKM4fbidc33vVOv^BP^ddUS0ty0&s_GyEfxC5jA3 zXQh}3w0Ej%blTn&ZmEkRi+-5eiZNT{7l|Y*blwTKVAN{z&$x!Tf?qX{>tDwlvA&-E z9xJM{M)a@s_c8m4^&$bOGeRBotF{XX6p3OAZ40^vW8Ug?kX7d2Fz|1fWEZ?Iqn6>J zOrJ;w#829p(|+MP3uu*)KvsTk%ojI$QqcS>0B1|?Gr>sokS5t zUnt(acB}%lNSc&LC9)QRW-Sz{4b7x=Cg>-jk)d+pO1m)uV~@iC4gw}>fH4cke4$4{ z%!0~`IEI$XX<36E6l*j19nB&@eDorLnUZY{D6oJue?u$X?XECpgcvbhz zItkp`NyHs$yUR@`j8aangUT_qvC*5@xHT#*0MozG-xE~~A2PiXEn_Is+GY|cLU4CZ zJRN1IhVI9x2>afY#ME3tyd--}Dz~aYFZ{Z;6K7!U;PuVu-oon`%%Cesw}zz+A9C&3 zuMOWAK8)Qt_oH0J=2$MGO!-)Tte9@lMxv&60s$U_pg`=0N*`2_^2AC=X+x?*323hp z(pwW%+AB6?4H-8!g0x)=z>S`z+5*(8jtVP8Pyb*%_KE)T3e6jb&51*HR9eH3S2l*2 zy#Q`1ZMN}*o(Xnq8yLu9BEYx`s}C}Z8>vc@!^$2^YdNh}iOf4nKE~8QkSZ{y*p34- z|9s%@h&YvBE{zVlr~(vlkc(oaE3Cy=P~YBU7aibqPE^4>I8nt8F_dyq9MvgT6ju(I z0f;NK^!jq}c9mS2+NS=gZMuTj0r@pfM@4OVjmD6Mr}{Af-teuA6->~fwp9&rJ!hmUhp%z!k@`i)C_e+ z^|&o6V?-bxUd%r6#bn?Dnw2{$#CUYfWz;m)gSr8k3`A0foqJ})Myf!lpkbCuZ&VcJ7JuNqHWp%I*eU)$T6oOup*%juvu)eDC#wp zj=UZxzm_l)mpUZ!$*&!NJ$!==HHdDwAmK4~J2ZsI>yTa479kGNkp>QrTwpcm)Yavp z09IDe3Hp*M2&HRKpgvjQvLM$5c%wi2*OLfoZ^Ws~Yi|fTzmTG1T+QGQn^aLh(Y` z3P)NmmFce?ysArR$zx0pIoXRw%bhSI;U^Pr*=Yj6*UV703gE+{IQ`AFRaYVz9Ed@O zC?k`aFv7SY7)jOPK#@Se-gJp*tQ4F|g>;OJuj^F=Qn;D*JZX4wtB_CBh};V8JQ+zU zcPl&y?u#%F@i2RxisVdCIV+CJb0s1KR`OTiG;Xdy0N0}7)1c{!D$-kRk;&KuXc!(o zUr|N;nGC82_+m1C^){Dk%;`Qzbu7c9qbqVni2eqs0yV-i#dr|w2P!T@oPcyw35Ayk z2@5A9Ps~)66)Z%Y!R$d$5Ij0)88W)!a#WZ>;#(?*Kg2;39EKxMvxv44ss+jCIye|t zbVazLo@7f%Pw|JwJ3&Yzk2*5tkZr9nT3SdO3;`AC6rwx>%C4}MXw)H%pwyvaa$O-B z8g;G!3~E(7f=Xe|lBW>+vPsiwT%{ojOj;#NE7oExz6Gv+zI)$%QT z2xp`tWXnQrY8xT`1SPD4joN3PVJI^!Vd(a^*^`&BiQOt;ge@kC?p8}7fYgXWrd)L* zS57cm;P^!5lnOVJdOy_=pDjQH_?T43@tvz`G=}ZTF%kr=NS+vYfOR1{c4{jd$M2KB z+E>~T4q3F{*Q)XRdalt%JOZpN26RQ^;b#gFX|$wU5E;628acv2sV8omJ!|fRL$935sRq7H;l~(FoOjY*7&~P|OEsj%Fm}s~Z zc_7Rw5DHI+ag53;%?>yBrIj}$c~99L;PE9c?}!?R9qB9b1Mblm$(bm~CLT>|BO= z$^@ScI6=;)5EUyd$C3P#gz|W}4iH}NZjk80swMLT%O_WqOi!b?dm4$0I*#$%ZUwrU%4lnrqtuT2|j0kM!qUIbcv z_#5VYBa)BHjOB`+ZwMa%oij~%vl-&<&8nqymHe`<=Z5);od-pt$-{t6N0kR%6LB++ z342*)yDc;EFWx?x2O_gXIv#PV4H<{?{wbNDf+9z-d zxfs}SR60!Jeg(&BNV2sosS1oMens+eOoT9fDM#{0;^dezw5+?>V^vfYNfyA(lBFv| z+EBqbsk-F4w7$fi*i|p-du~@3sPf4{%{V6zRiv=IiqzGgB zTa+*&X8siR1|@oJDv~+X`bA zk}z@X(bf$WyJ{4vtS}nSbC^|i+(0PBZvDxzOf>8;`+oLroTlghSl(>c{C{)nX<7oyT)oJ z)pmTV0UyB<01Ee|S6yYnN@Pr3$)|uMW#Ld=1=Osd(`g3IXU|briCR)FNBW5wm~V-l z@P}+-@?Sn69@CdZDYl7CE*%!xYFu)Z>?_j<_M>8Hd!lOOGeTlGNT!gse`3oFr}*_|2i&x1u!L^J)y(t6+FGtsIY^2{gIO&5R$Sb8 zhJ$UATV-0b$bzcQElLpUDNk{jzHB&T~ zwN5^(Y0*S-jSzO?M`lW`H)~on5$Q_eyIy4A=y?t@UKc}3J=~%>)EgY6C8U(7pT^~w zjXUM)?w+Id7*Cj$C96^+pP_q~dKk8JSu`nwpE_;3Ot?0?I}<2Oqamw6wY)}j&ZR=2CH(wivtdLk#~Rxm{L2_g%k`a z0TK{dJK*vq2?xg~`HIRYq7%{5_K8td_^6B+Rp3wqT`x2tfM;?*14Wfi9#C)6&nk;y z;wz)B-#)UbvxVjM1{BOjat z!V`DCif%5#W`y;a&;iddS@?>FO(60M4a9H;1d)$Q$Ls=MYCz-e2J6@!VME}8eD=@rUPP@jtI?DAQD5@8N}@}^$Ghi#UwF< ztQ8KVAbhS$V5Ed-9j9npSFBycgGqu(;wungbG6JUlQtzp5tC^7P#Hi(XOhIkqyShb z!X$fLbgPw8JZMaUG$2I1eEgT%3DB@Aa1;R)w*Vtn!5g*@HiYUkK9up1?5a;PqERVk z6<>o6qvAYh#kaxNU}otxt2jmF;OhwN%vS2g9g)TfL)5n#G)Kfu);y&1vD(VzgWu_x zK+XA6a4ZcT`Hn1sD@kBCs7toI*comi1*dNjN~m)MV=4tmO~@a0D5DYvkzN5o%=4#! z$cW~s^QWx1O^$r(CE^}2UN3k>A*aUeWDL`L#4zJpwNOv8K{QjOL zlOU0}M+8ZB;3(xOYR{BJu|Wbz9WWy#Kx&l17}42IJ`urMnmvJJ-Kts()JE>#him?+?WP~QgqN!%4tl|{p zi0_ip78CC=>;6dzxPlF#vURtt!I2IysbH(jbjplaV~3G|27!T~5y{fFfSUzb$5BK= z1~EsG%7!9tK!-cYz3S0qg_8TOI~sPUK}=kA%u%-gGIhah!S=#Neza+}WPeucl^JIs z^}5*>TYPpu>56Z)pQ5L&nlqZSEfH-`OOTMF zF@$Q?o6OLi@;B^Ll|BC6%V%3mCL&2{v#l5>ZS+L5Wd;dZNp@`&K!?frvn@DBJ9}bn z&bG|i)?BgNM~aO@er%46+<1AuLxzj%BxtxiGqT9xd%59K6RHcQtH{{b=!vF_8JEV( z(*}N#%=*?|94L$mYQ#5QS@lUx<7FDJRE(FL4xZYqYof6x%uG~aFE?IlLUqA-wHlMG zCmJu^Y@w^h3la_pZ~VhagN#rT1pJ}+PlKUz*6YHB>Tf=1sPTsi*q2`Z!*`>Lj9xU?&8r0U_r8iJF;nMTti zmvRb&R(p!t>a0SxR5UieHENdUU(~%8FBEQrlmqQk)fZ>dwzFMZ=VF_lpjbm-)ihhC z*^1sErY9xCD;}omeB1>2JH~3iIom?~k*-Of*ku_`saPoENC%)M-*S17zU=p&9sv&xhKO~#EV+QPzEOwnm&cls`JKZrO(G)dpDyQl+ zhh#WCM!2viy79U>r4gD~&GMBljTn(bE?MMY14TJdDu#+#h4#@cF!0<-@o~HDJ0Vl# z(v`ex#7jn5p;S&`m=r}W#=>$>6gie6(kVu0;v#$%OXMIypF^7@h&uaVikvNp6UPyG zy>=H~BVIBRIW5DaD001MjfEGd(;{-PZlJ}WY2|EHLd}>vh{o7KlqQ~J<#a9=aT2j5 z{V-!GzED=Ty+Hl97jJycWFl%9#A}4;cS^7r$=N;888PD_>57NwFd1L0V`PM9W_1py zHRgE@fCO{nYf@djts0vnBTtdzAzY5_RHs@nWNrvBgO!VZGhDQ@=?mjCnTRB*nXO(F zw$dqEqj?X{ocYRV4vmD^i+8d~TC8JC`%JSHTh`5(V!C3AiJC2TVBn9=x!Un8TBlfb+P`*_N1K)CIF;o<+|3 zdas#n>GCIxteDnpnP-ukxxRRk-@?f~_{&OOG)a24Wv*>y&ulT7x?r|qOpndkR$rcN zB`wx5=H!_PqL?Weou1LK*JTnKEn*v`WbAE=COYTS2u&RJ<}0JMeiS(~d3SHmf+9B} z(S;@*8^xdcG#N+ie9)^;Hn!SED0zHB1*Z?tgQ)K^jriV3J?w3>d{aGW9b^iZnjejp z+ic^@trV3Yd8aE1*pMKh2*&+rG-Em<#-S>m=m@l2MHQ+~-r3Nxm&;c;WKts&?dj4h z)FI>3V0}4(%=j2P5~Vf`BSI<=5#Oir%pp^+?3H?@%4VOX5*d&qaXZ;&YadfyVI6O` zwT&saPuBj~>=T>q6`E%bo6`Z69F^8E@MxnQuI){BYj~#3)>45t-U@5D60{V(nP9gT zgGe=E6+5^P9dI)Vi#bXwtf+_Z`KdzwSuGja|J9)RR+mqPali-h#Kh!oFgp`j>6T;% z+rTJYk$hYiX-oEcNY1ICXjr9E`4#m*h44q#tK1{|J7b{rF;QL+>oP7$V2~PvPy6AJ z9@cGiMSUx!vB!z!LjNdGk^Y;X#KyD?2DPC;K%=h3aEM66(X) zU5T$gG%`XU(D?8tgX&`jOgo#Q59EtAGn$e#Cu*@}(-PSho>0gtg0M`t#A(PH37MAY zP7>sk2pl>-N!`r!O+7Kb(p{nGiK0qyDZ~NBs3}&J3ss>$(%48@sED7sieP=jDk3Sr zVw|yIkS&r{tW~omMbuTU9SD6<5{AKeau#3cVNXw1k=YXZ633VdvX<_0pz$~dY>$Em z`XasS1X}ofUoElG27sHIstsUWzyv1YF4!p#NgPOB zhS}9*nqspFs_aP5NG?^xU^NhXb@Id>mjtm_Lzk;N@gB9p$zDIK3TB_!W9;r3R+Ipu z??k(QW>VB98mBJCMl>dZG0CIFI3V|DQr3>>j}=C6+wDx)f^t82@F2!M5@Wa_{U)9m zi7~d^nmS=!%1)U~$+(1#^rs_i7`QW>yvR;WLS)0xWjFn<$#XP?$HitW}m zK&DF*^P4=`W-pjsw08soiIwPw8G>&$4qhY@$*<`u^=TSU=jlqzmU1-Eh>fvZoRKz_ z^F%;gaqxmbW9^6o!4{2oq%=+qV!5Dps72)m8|y5P2;kK-be&m}wwW9m49(O;1_=VT z;zqiLgMyK08_|)`*2USpGGLXLN6)Am4Sz%c;Ma7OI)CsWw7l7OXkR=-9r~M*Z0L^= zL^NPFhy>kIU;~yO794#S%+v81A_9tzAySY3vce$Ah*lU7|H}%~q!K#>h0$5)FmZ)Z zQmKjsj;l;I7O0NYFxy08a4E2j&TbPwMt717<3xbbF^;K8V$Vk!)xp71TyN}o!9gOY zj;4I8u_bAb5N1U!q!L{Owa{5`F>$rfqKOu+>b7WM5>!rm$S^BZP9@w3REFbKb(&Ja z6go5sdW%7I_|V_;!iUP3;=2cFk0EA-`l-Ypf%=_=9}}m3hbErb+P(3_WJqlsk4QaS z-1kXcQmzUxj_ck4V-l23dz3LNluji=2}0djfHHBRZq!5^>$@l5$a^vJ+)q2}j<3*T z&_4C3V^(ONO2iUq581zIFz2x%kh*}RxCJXRD|T2Cs5Pb%R}l*;t&QrGL?2L8Nl7dO zpvO~6BFxUiuw)UYC5u*d;tX*B$$T>|U8!@#AdFT3NeJqt4&o9DQZeUHB!L`yYDT$2 z@WAOaszS)5g4)Vh1=ggf3N3eYFPu6|Z#BJu6wyQ2tNUzg}1De&ts2t;T%Oo_Wm|Q_n&=2Ajv9c;2S1?K=RYLK&f>9Hx0#K%vE0iIq zq8rLH92Ojx#%#u%%Y)%(5f}jz%#<_)W)gmZrA4Poe}cCBLb*cvz={x317SKf8V3X; zu7tFRkUAEFjmBl+p@vu&YthOh$4U^vj6!fyjWcGb8}%6M?Q-LCk`tpv2RTH<)Ok=0 zxlSxJjRS%RP`(D#M3puqDc@1n#uO*vJ5(8CS3~W5| znghA&#vPyqu_Bgi5bdbxLTHI}R3O74ha3r~ngU>OsBOX{y;d-a?YBpbgAk{n!pelz zU1@rmSRs1h0Wo3}n6N)EW&{pn-KFq?rr??=3~D-zkcSbhfQ;Rg%EM9{Ku!G!{p7Sw z>Y7H*?5mVlsTM8gX{8@l2x(}{gGy-x35ZIssTb-`4Y9*3r%fO_aKQ|$l|m>Xn*>iA zSoAj4${)2XbRk^YYy=Wq!8aQ~3n*C(6^bcu9*#sobSw~1m%wF-u!tCd0dqpMQ(&S# zah(sWDgi=pGe~@eqoizfz$s&oMo6!KcOkyR<<)u>$3%5u?SjTfD5I|Emfiyp%T%Za zXyxx&7T9J8Wmh9!6Yx}-I)-|HRYE$$RS4rQls$n+>!mWUX$Pk#O1cEYPXa(MebjfpiH?aRMQJL5F~!)qtCKMSc&%y|USS>@0&u>gQl4!r zuvObo5^RV7hZvzOZA1!!ldcFYq`(j@h!KylYlQcdvB6lQt`w9DP;?YVp@Ipx5leQ0 z4XhPSVQo+J5n`wuP4HaNwT>Z}V2a7pk&f^HR-8-H6^j?$GH;W#B5cM93e8ZwImrwv zYz=nsaw&tL-l$*tp)o0RC4fPFDet>R$)xxiAx)mIWlHk+-~l9U@d(7hvNRwA`ht7Q z426Ygz^X$|@nepez}nzv6OSpxqJqXJ(4?|1j5-GvhIt(E=@k88IKZ0hE?uT%BWb%^ zvSlZPXwF%V}r&%=Z~ARZOXQoAk$=^_xa;&OHnT; zAlWHzs>wakiw<=~?1&QQcFX(W~Q-eYi0U&ZuQdbO{T zw6OM`RRL3@@!VIHqovFzjaNfVjb>`JUaiskaLlx88coh6ARjGhB*9iXsVxSl5{|@G zJ4h#?*)#v7y1r{_G*hGXYK_*XW5r$5Y4Q>W>9iEk6f(8i43(Ota3bLnwJuS{jHQ{e zw9LfPICf1YUK_hMTL0=jQSz?oG#6$plN2V8A~TX^>NC>an8vi%XW@xY@bvlh(fPG7 z*Fg2tHL>06B59nS%X*3u&q;SF8J&?2ofN-9#G**)^G|&BALBq#eU<4AE_x?IHRb06|KC>1FJxc z4ZwyfvZ9S_3PbN%l^Us69*5Ce5O_IWpt#N)kl-sKO1r6nO$`hxiTTYyxQJ8we9(YJ zi6k(-Megk@O-2r$(F}m}i89?xF)j;7hqBgU+-AnjRpu<@%fhB9Mnh$m=PTv`e#YvQ zpAm;BKO`TkOigNP(jKcx&7CGP8GhwSE-MftO`1(7AJkT6rhUSLOm%H3l?foOQYYbl zVDacR3ye2(F-B-?tk^2Va-GbrWvayLIyw=w9JZHz9-?>(nVi*|0uRXoW~W|0JAjL+6RlM*g^6HTwboWFRi*8tV6ks~@|n<0ds8NK z;>5wo9Gnco^FyL`8X|M4WUOPiNoK4^J0Q;FH+?pxI%3okXB?yzY?VuTN#U84x1plw z1vyb{@~LU9E>ZC*7AEC2uIrQa)JHAGpK9bi6&XQ+O;SdBcP4V;#L1X0OJ#+GrXL$5eWyta;fdOhEIJ(xo3( zYkW&uP(ew`YhbK9(<~%C-l0Tm9POx}%yn^Px2HN;i*3~oJpZdwb^ccnqQ1cdqQ3IX z+L)_(#Wp5aC&SBd0|YXxY5B^?XcZU->Q_Vc z)v>vHoSLh-6YiZY3c*1?M(oZtxD}-a$pIWDN3RqN5{gv1uxoN)EWQku!R&&-3M4-D z%$OXca)vxA5jaHNrOZuq10?p+;yT(Ir4Rzlo*XFbBlt#lOGCpSqN2a++|R5+JsB}M zz7XAIR;Qc1Y=c=B6FgJAEPGOll*H2MZ~!W*E@PbzT0uECGNw-FvFOwzt3-vDL8{rm z;NoFuBOF_k!vWGRMHevhQpbGD&EX5;WjMH)fuN^p^-r>J_GrfRatolNB?{%ND0C`U zL0)?|=w+D=wY)4JHjMO@nODc52r@5Hi!+j`2^tz*xil#Q)J(gv2OV{^HZoGH`jAXo zx}`oDb>v}ipY#@gs3$nY+(;JS>r-2Y>a12gY;}!2$mW%k*h4};EL{4tt zaS-4-O$A^TmE)W!i9_1td2%!%VRa%7AsHAQQezQvjWHpk(2InGuYHY}CuX17BV;O5 zARJK=E8VFO(s1sJ5(!7O#~~yWpBR&+BNicH{%j;CsY#@+Pc0!=Wl$n}C?Vx(DiejS zqO(;YM4+N8={j77s1crwI{w9i1e!$N3Y7(k5Kcs3)T51yk)+lJrP`vb6jmksUaD4C z+E!KHmeLFQVFjo(F(I=qLMqcA#77d-pNzQ(skk>}7BlQ3RNJa6(D0Db7JI{6(~`a6 zQrrP%Vxx>K9j6)Hk{IES@I#H=USsA^SQA`xfJipRx=wU%FTK?kp^m{rp{I&`ljo7P zz(guRE@amvau+hj-90MQTxGM*;z{9T&~M@vuKbPm3ah)q=4-UuCnxY{vj;r(3Qa+W z&FO%a9F^8EaKo5NY`>t=+E@wuiQ4f7l%NlEbR(8R*P#u#zPJLbKoCuc7QSf}#$7DX zvrccWfXJUZ3kd3gBMFp)$s^YD%k{`}qk3#*6wYK8({`s2jti3!vWz1M&%d> ze3m#@L}LXUG(tm6uHX@q76sf#LI5$jf>9Hx0#H&f>Ea57u(9|9KBDfNKbU7CFajo+ zDQO7IB>W;#Zk1bgOtjN985!`@XdDoX=#jOE=_#?cJ+ebI^~H|57OgyTtOR){Q3y_| zaV9f$qYM)phq)ZJB_~)jT6B=Zv_hSO&5-NFLen@Ph#D7Mtjbiu*yHYnUbVy>30Dz$a1R;09$k8&M8uKg-26%UXIS{;$Rhr7h{*$bU6nODh@*3EfUQ4(;Hw}~!q<>9*JH1vn?f@-_6|tWN(T<^3?6=bZt6kgC2 zgeZ~@gPIN_ZX3B{l~iZ;6N* zwg`#=(Xl{?u4;mea}J;j(N2Mh`ozcwSXBaq;AW8c3P(xqH{g`9M0Z)~wW2gsMC8RT4as-k3q2{1e zsmyEI!K=E2GO()?519c}Yh&(&`Xmg1gKKjO9}H&P7o?s6k%Q} zM?VY!-%<@4IiT2{{GJzB3zote4#Ee4pmc|W0NGOj!TYFW(nQBZlA<)F;__HyNyy%vB zn|K!0M1!G>r4p~f)*ySqrNkMiHwK89oCF4+Mbww_o*ra}uMyJZ`5J41tn&EafwH7Y z!-z>7teTPYA&m34$*d4WIuhVB!n3(wQSaTaNXU4qlATJd3fVV_-MP@Hfn!1psBoMq z*R7QbwlL zR;_1Zw$x0RY@1e_B##&*WiO89jm)1`-i#zWMiz%D*)W4M{c&@qZN|{FIz%MLq}Lzs zn#z;i8FE-SJe#2UD>eRJKfd~NDdD%oU0s~8!_mje#6(<~5eBA}*6U1pMwtq6P}!TY zLzuQ@ZCk{og*EwgA0%q@x{s;RV0&*x3z0@oG2m`$G$$i6fqAs4(G;_(TQZ@E3#or( zO!5fQ@_}ep*E#!e%(QDhnw(2O^i3K`O*0H5_ok1gNQxOxGUG{^Ii8|V$BMhA)8u&{ z>9iEk6f(71oR8{Ft!8Sq%xJYf93}6XPJ_US{QYP0C^92yramK&)QqITQf6AdZsiCW zi=$Dl4wpj$BoK$_?U6KIm+BlbvR|ge6~qTCge3mah69ZjNkhiE%{X^Vk%1Vy`Vz4e zh$#BzkGHF@gdf`|5Yt)AP{#-hoRi8|j3a*LLQPLCaw|#)^nxsjSFO|NeX7e9S@`f6 zqmic5*hQx?mGm}5e3FT)X$kI`N*2{Ui?>cTS+cb%jwD;15NYf*a&_*($olj~C95b@ zp-aJ%YPRnnYX-ZfpSUML|I zqFW}TXWBs+IjpVS?Xb!=LD7PwX5mX*R**~>c1rom=&eg}S#|Rr?gbqYzv;5d-zUcB z6I0D*dp$a5nqpiw#_8{wiOVW;7V>3b)0Fi1vh4FJZY+miSDC)7>C1v@ zVJ0zfQ%DfIBmA1x+)CY?FTN)2?Q2{-U^XH~v6O5&`JlDs&244>nROOxLoI1&fh+EZ z6=Eq$7r!Q6CmVr3)KG(ADrhS12Znx<5E?8Vy=H;&hAytR7#pkj0&i|D(|fm;F?O9y zfj0#nY<(;X-{%Ehaj=Ck(3%mWD0j-yOE#$8x+svSz^gaCC4(CuHLHx{QknT?0&Syd z;Q~XmSWk^-}N*!>YBmBEXuqjayPVR}Nk5Bn}9~xK!`Xgif3|gc|wu z4L0p*h|Hz3_>A2qaa0x-k9I(uHv2-{uRV!lI!&qWx>R>9Do4=^;y*U|397ttU7xHc zE-uJ&p0w$*RAdANHc1&Vby*iz8B$pxAx=r|paD~tiSVt?e?X4Uu7_f*%hmt%zU%30q|jWfN-1XAM?H;bkh z2}@6=7uh4cNK(4=!)lFhNeki+>C2SYz*u*tSxCfOI@MH;EI5=X>d}r0dOLm8$y#iy zcHn%nQg!}U5Td?8`Pf+EEn+L88rfRpJUjsnj@F|~L{HSN2Q7Oi5(uTB$4QNrVQ&>7?8RHP6& zB*|%Av=pWg`jGLgP*I#@8O_PC#c6C#ZU%8^md{d($;;FQ` zt7CIDoZ{_LxSBiR-gQw10>+5lxdyjFh4F{v01lI*R|*ExD+k8n%U~JIE(okZ;#1Fz z$$=Y?XJ-bn1~+qQc7{)$Ctz@i4Rz zj#3f|OTq!tE=7|w^HRrr%grejLz(5}ESx=>F}>UZNNR~fIV%byn}UkAy&Lqh%!XQC zmJb_7s>{r)<4|G`u0z(IZfR(A<U4e5Tl}G( z;ACziS?BrkIb2@c&Fdy=O+$p={zBrF&4sSEQ5z=^!N%i|!xb(#vmDk@KMjZK~> zGg0sg2??tcaR|x4=#UzVkZX(y8HHYA>K;qTRHi^Uq9j(jQz4|`+!qN6N43WxBom() zlWvK)u?PwCXCpaDO(J!DY9(@21|_nG5>lR~GEwL%dg=!u0u^0J*WofmjqqgD@h{fG zph@JdP+52h;Y0*RJ=(Y!Nos9Ssx8V&VO8=~OV#R1+p6l@QhGr@tN@iJCS=w{NM-ti z_()>X^;HD(TlHNiCph-71| z>qO`F(pzm2>KHr}daB4bc^+vC(4`XOLUv6e$dxhf?osRcRW|!9o)k_7{U&bV%HL?O zur^lMe2sSdWc?qU&E&CHXr4N3P6t$TR9Z#CA2tR%ofZQN6ypo~IES?ZZaU~@jl=4O z8#mnmSz6$xg>K+usls_MEu$L}gL11#bc7rGs&cEC{o_rO-6|4o@dk9JuRIkfGTSx_p3`5IZ2<@(hWgQ8UKY=t!9p-|CCx+9 zOXd^YUiru=l6?S(RwMv*RFJ%4Do9m8Y;4PkqtGh@`m-8XV6!clTw}90h}X2LL2m(L zYCjmuiKqd!jc*Y$7)c3Sm*9;9w!rLw8yG0Ofe8(_qx6SwmRXCTR56trCy$I)J{VwZ zUgi}c2-H13#RkCrF!BNABwAf7Y~@*vv%chKk;Wm-f*%?cq^_wGa*QJNAP0<>ZxZYj z2LpL5m{?Im$Q9^eyis37T;Ss-nQK9kDzKm&W(L&Q1!bsLC@r{4Adc7pTM(n7w+tP> zbt&$d(OU-u^II#SQ%`wAgskrJnZ)AU54>MhUKe@a4DYFZ#1LK4`%}exf|?NKusN2) zo61r#S%Bt1#VPcTprxWd(yl|Dn#`m^q+v6l5eR?PHb)`NNTFQ<1F*bw7L-^fFT2@o zRkI>(0)X5SA|1-jg2@kfPg|`cf zlm=_&s5qE-iJAc!swZ?p=_RuK5Taxucevn1rVup~lo^e;THvWc#!fZRekmw0;6IIN zN#thn>{X7LlNa0Uw#o48u!&2$$DfFvhwE|Wx_61(8nqeK5yH6?q7$~sOA!u(A2JWH zEP+_Y_Y>@*l&Cr1xQ@_tRxu~R@~bLUZ7Ws9g-zdvHCzD}sUl(zp?bT6s-tnYH40sV z4<-tGzSuEOkGx!KZqOGFxTIii*=f0LQk~!FYA!1%D6p5+)-Dc8fnaUz!ugf8wG~pZ zIpp)#*3Rv)`TZWZ%NcU}yv4P(USGYmvc*>)_DE2+sl)FMx760Uz4cOi{;D9fpT0(e z0atCU-RBL4oZe7I8h7~uQbrn75}Lr%9hizBRbx;HhX*X9TWeAz_lVlX5PZm*PCZR7HJ8{Cax<(wgBMZn#fVXldE zSLybE^3Ev7M7k3H)<}U?cZN+xK=S+0R8%)Dq^pb!53Etw1_I_d&{11UE=3Ed`r2A4 z1pdn+DF~n=8`Ly81Crg>Qs?%PtFy4aE+2}d=+GqA-TZ)5kDiqj%t~+JI`HEf!d@4; zax3jlkEag2zs!$P+wc5owRB3`s5d4Q`KQ(1$!PE2#7N zLcvhL>DQ{Z$m>AZ8*;Zu1ukEU-x;zrN+AnaWG4{EBDJHY@4T9@-WGqr=Z6VI2i6CZ zr&FW)zM7oD>NYRPjHnZAf^M3e-ulkFYH>D87O%5K3c@5-viRy&!BoY#N}bdIGrh4e zkqm^wF$Ui0OJ@U&LaD#PnoIq{92zdggnA*MHMcA`cm4d?`}QB0lXGAW{0%F+@gKGm z?(3hEgZ~`_PsDr&Y^2Y-HrMI*=UU3}U-v@EBRPZ8q7J_Vk1V<6Qpi~ZgQ*L9>pjvu z7$rRhs^m-U&K5tAxTOQ?M`q?wv|g$UH)5$!AS}Tx=!k&3E*z5T=lMeJ26+na@H*=} zQazV*gR4Mok7xmFWEHSG|1z&AyO^rt*m za8s0Dm|vK?9y+Ax1e68L*10|IkQ>4sma@~<0*ZpJfZLDuk2)D44`D8N1U4$#u@cJ= zHkG290ZkHU5!D68VqmMd*a%zdt^_WP&;}?Xlp-srY5-ipX1B*9564NCoNjW(b-t_v zntVVH;7#yDl;Mk;4sDV3$iM-Y1KcC0*Cm)NzX0@pfvQ{ewb0HaEK9*i_}a?BhiDA= zfKLTZTt1I4P)5Hik%JA3s!>{8q$yOT<3}00s%Ef+rU5{7t2^ihzD5v`{c%|Jk_SEe zj-~EU6U|3G#J93^#NY&S+~V*+aUnL2{wRv8K)vT22RE%CY1I@YXb-Ha;|AkjM_sPk@{|19@3rKQo zF`v8#FzF$m&toahFD#sd+Azz12v$GnbGBo7&DC<>RTVWgq?zH>Tks6t_uChKuxJJR zyD$8^8vX@s-S21c?|$&_JAWX_B$j;6C;J^s6vsLIa8p> z;c_>5IfU^71xp2WpzsSwg%m`TZoc2!C^vw7pEFAC2jLr(qf%cvLvmEiLkycULN1Jh z*guDqOU_}MV&Yi@cpRj*(SrnxqPgRsxkKPT#KD0%!y6hSTf5V{lxOl#3 z{=69n4?G5Jb=GMz?oL?tdPBEZ5?$pOU+D!ra2Se!JAQ7Lx@ zcT;kkLLond{M*{v^4rGc`vQ#xMWv;s1%<^0#l>Tx#MmI|gR$P=aBM=f0qX$~%W1(j zopru&Xi9Ew0d`U#_X5K!P{s#03WmU}Pst6y_{Z8S9>~f0(U(;fwngnXesWWXzxIin zo}Bjg|6G6cWg|}9JoeaU4*0{?AKiQKx!e04c8GoEz^9fR_Q(-4_bWN-<5#`X#2GDz z{q%_qe|i76BObnH;|NE|&+pr3(Z}aLw|P+8S1w{G4=H*ReI@{8jp?f+WN!pBdm{?|V@ozwBi zj&o-QH{QH-#HIb;EZcm;>|5qnOh3!A&$^-O58N~V^L;J|w!XZn!TZ_H?e~1}=7zuL zm7Vqd%R+`FZ6EadDJKm1v+JqHhQ0I0yt|LNJm<{S zhb|iQ=03Hr+%s+K$vaQjd4cP}jpN@xYS9f3ezi}*FTdV;^^lQ=Ui`cH-{rIq+4ycn z;ket*vJ9$TaO*>tob~XAYpO1~HpSc@8s_s`qxY5G`|;q;verEe(O;`_PzYg z_1nH4vURYxv|K8_sod5D4@4S4-CYz;U-qD+$pa1Nliw_<+wd7RapS{*Yz8l`Z z|B#{Ie|^Da>u$4a{r@?C`dNSb`GlNlhn+k6(Levba>k*f_TMt+?n@p#Zpw&>?_YfG z`~MwXd-8#n3;R2-o<4QIlSW-Q^!-zcmj1f`qlcaPf%NFir{)d)>Wx7q=WO}r(G7dt zr|noV=(~$yq>98F)oqN#rKO6Ajf2~&+-#>M{R6caaX(jJ1wA^0z(6KKqpH~>V{Pa^x{&ac& z{Z{^a#d*Ko()45R;^6bE2LJZdSucM5&wlpNj}Lt1h1zZ5bG$#=wtVABUw%I6jl7ek zLw4Qv{#hUW?26+rC_eq@f%ojZ>u-+M6P{am;Gk=c-S*3mPB?n@rvF`7dfm`_*DSfR z<)+ege|>GnfzO=!mx?P-Z@aGf*=sfpz4Ha@XK&s5)`ugPuHJb4;yXrO@$s~OeID#s zc5M0V@51-De*BMZx6FQR$c5nxhgHwL<>wC#cl`WU`)$9o@T_%9uH2M+$X9Rt`TweO zcQ*_?3Nc8Mx7|2Z#vDMZ(J~X!{F-8r`OE<$>8C?KX}YFU*zt5 z=jp4P2D-LA(e&mM=P#=LN%5z-b9Pm1*k)T@`r-3Gd1g_|cYi(aow}iS_dj*ReIrl1 zdDNvxH}1Rfu&388+Sqi(s2g|8|GnjB1q-YzWJ0a&UukCy4WAEgZ z9R2d1H-@zg_`dD1J0BeT%2~tT+;QK&t0&Fc=kA$7gTxU&3$YreetmWKz;ZhU;d#%(vA^85F0dGS2gNgsZhd-IeJcmHYX zz2(0+|I*vGZd_4x(xG{iPW{96R~>Ze@ae(gcTRtL>y;NT@A$>$V{WZId&$~=|KIsX zUUkP87uT%)+Z$K@>dq&N|M&H`_x}2oJIDTKleBbr{rSh;^X&1J{x_cX|L;8ir|XuL z9`(izqZd4M%&;Ac&%Lf}=g+>s*LlDx500C<^IzZI)imbHwwHI;4!1qNc=nptfB*1+ zS!bR5zv}Y_|2W6D>YQsf77m}dWy=$XT95ebyM9~mX>HijIQf*n-F=Vr;Rt7V`MBMG zIB&`+yJuZ>tAF~@uUbEOcmC7w-@g8``;Ys4Y{?~7q zoV&zx|DpYMZhdDz|C=Z6zIj}D?6INMM_5l^a!CGZcTM}@-u=(`>mhBP4R^L4Tsvgc zPd@lH z=iljlQTpYa%@BG+kop0SVq~D|8dbh0l=1&h@?|XRBbypsC{{@2%KWJ&)3Fj8I zR!kr8kB9g7K6c9S7aw%w!*6Z=^DF1yb^G)ackleem|f>D{^+T|xBqY^DR{Z?ri*~*`d&E&UZCJ8%X5LoEn3vYxGWzRR?|eCE*n?Z0uvkP)u(dkz?L?c?7r zz4N)-R)6&L?oY=ZJ@waRFF%<-<-w_&A31ZvjrX1Ve{F#qX1;R8J|9{if9RSwo?B7? zkGDVe^V}_)<_#YDVe!f{PoDpyFJ4|fe6ju7^6TI1e^kNDtNz)3rTvd3<%|q{PUH!Aa-}BA*KY#j@f9!MDijOUh@`*1^dhz-V&DRax zbjj3l#RG@0UwX?erH2>YIqa5=Tkk2I`iEakso(kffL)Jt?Dxjy4~DMsynFSAnH_VU zdDUeJpYoSmpE>cz4{W-_?cDCVIB@-%x4p|kYmWZ$r~d0-T=u7#Zy(YB-p%*Ve89J< z?ds3_Km6plyxN>c5Bq%2PjB8le%{eJPyhbe_kL9Tiy=d2UE5l>@70!-Z~x`>!Kcj{ z=s57|$D!`mYc~IK=z$x*I_8Yi-~4s!6Ssb`d9&r*k0z84o_6xScRzRfa>sXXj<{v# zzSq2U=ea*wKV{T&zg|;)|He&Yr;Ivo?zU6Qwr|{badXSB$FII^=D)nxEjsw4Q+HPu zgkBB&?E9Z>KWOLlf>F(7|9o?zbo#%~X#ZyZ4c3t*t;d~x-IwRg`R4l@e>?10Py6kM zpYZKte4jnY^vI%eb+`Ild_`~AY#w>raq5^>8d376n}5~xk6GVr`}%>hojm<^o}RL{nPJGc>BzSn>_iG ziXNE$=FaI`w^qD;#Fpvz_^!Nv=$H?#TXn}}ua~a<{Iz?B4}Ef7)t?t`DIao7-nJnZ zKRW-g${p`jESq&j@Rs+s&z*M8u`euL_vK5Wp?gk$xbEM-ySVm@TRywc^ZK6OPHp|? z=1}_&;Y;3mvU;><#*1&wJoDhgrvLhup|k$mTL0E(PapWif|Ydxo|?Sixoc+h|HYCg z&wBrcw&NQA^7yYl`DUy0yQzn6JMH;%Us$>Sbp=JEu08q>kM;BYFy!ND2R^yqnl(F0 zjyhxg;WrjFzBB2>HxB;AnLj$=Z|A@I+>Wo_>3`dxM*^0bf3JVD<=8)7Icn=ABwjA?|_{%UfBM_$2s>5KK@@TmM=SF_eUSyG3e!~SLY7h^YnAgE8qL` z2dBR~t}uA=T`Tr!KI)oLW3H=Qdiv!HzukV|m&c#?+E1?i+vXXYzMAfBAHL*@3;uY) z&YPy4{mi@#m*4pAu4Dhybit70@*m&eZMyfAlKT(3+1qyi+3#-t{JNII3abvEY#(vq z?H_)8-od9ipFHF8PYyUP@94YN9kK1Z^LE_u!PoDHCe`QcH~5DkWe@%3?_v|~|JFeP3$yMskJ#?S?Bi|oC@Quc^ zt~-6~Lq|Wjr)=V!!qQEHYp(a-xNJgk|BL-ws$UEaI)0Du_20KvpHutOm-22}@>S(M z+y1@HbIpfa+@IVq_0@R`*Id8OzJJq6m8%;YkGN~adkdGGU3p#qn~r~d^8ugqJ9_TZ z()4Z8GrNX=P`~@&o3Gt^)A3K=(OPuHZLXq^Zn*KdJ+rno4|wa8M}n{H*frz7%a=`i z_D|afzrOaYE7#t={@$h^f3e$TU4CBvnGZKyziY;|yDm5}JpKEFmp@%?-G18h*H60O zEZ2a$%N+h6F5CT+6SqIQebB!TT~;{w)5lgna!5bho8y~)e#d<`etY~rZ@&1#EwlfA z+48rapSSqc|F*pL_d-L~?GL;iN+VeY`(@Q-dk_t*UoF8%t2w%f0(AL#!gu;sm>?eASaaPy{n zr6*3i_Mp3eeDewa`Q*Co|6RWO%C)!7e|h`Q|FV6=@50WDf9rqh#m~KueKF#`t2cm) z{>pv1Hx-}0<&B!>mrT0$os9>r{cNAz?*+{qM5}PrU2wh9^Jx@_<=euHCVzY~XF@HcUkITCwBmi<%bn8~M-5s-xRKK7H(& zOD@gH_l(*7Wd3!-9dAy0Y29aoF2C0E)VOa0?Zei+KWj^aWBnU9=3H>ym!%i}Y|ojm z{LJ&ky`Sy8;fO;n|Kx#hUOH!IL%#vbC%^MnspHbmS8N#E_`;aLvsZom>9a3?dH*q= z)F1QbV{fV`pM1vLAHR3&KNg*|aOXAs8^>NS`CnIzs@-sCdBKz=N1u597YBc_#kFzg z(t95N-@_XQJ=MPNQSaX5x^?A$HeCG0)CE_*U-iX~x8J^Z=RwyE{@a%$rC(p1vv}Lf z_YHT?Uh)24u711y=3!Sg*9^Yk<&-46i*A-9B z+Wr6STz6DcN&8Nt_acIoCa4JBga82qO-KkW!9eH;hLA!JH3R`M2rMcpU;!zD4MA+E zAgimOuB<3_5fv0fQ4w)f6zspb;7W1b@BGepzWs}P&Jgb0xo_S(^WJx6@|@=>z488H z`wM!*uZf#;kEZlhPODLFxLzn=mAGGV)jugh;xAzqKIZtknFYIo)mYjMZpDR|pzeV? zheB5+T&>6k(?AAftz>#6q^7t{5K&NM__o%}!%nh1;HY`71zQZ=$?dttzmWTZTlFj< zVN-x85jRp*ovvon(UrBDJ@52%`!ijrbZ5iv2L{Nd=3TZnxpO&XGh}TfIGVTT$B0X7 zc4&Hf&N?vrU3{#6bHl0r56zIn7KewvGVYSiGH#NdSB%yt<1^DAzO^m-y~Xx2{>t8Z z;nI_>hKW68IlD={hZDLG>a;CQ&*XHA6FrnxTH$?EU*HcuxOiPo{Y?yKON&R}^Jqd? zz_mr!XHe>*a*wD#F<#JlYolN0tMgaP7DsQacC&iaIIxZD#p{cFUZA=Ev-w zGB5N#ePE^PV(Wql=uMkCC>F%?E;ftLmJnYYvK{TleE%L@Cf0OrnJxABQjLf+;-F1Ha+74lf-CnJbTN`3T= zxX#9HbF4VaKduUI@z&2q?@aZ#$?x(F9f;j`AeVG))09txikB>QmLfhql4x06?6O!? zo*FZx(|$yOzusL^mv!K@_kH3#wAp1^itUbT8H@W4Y)94gtqNr3g=C(&-c;LHxnaR# z5wf&{b~pBp_R{EG++K3~VF@ehORt>i+waLUW}kIEbN55r6Z49NR32k%y~*eK6#dGk zbM@#IgJ&N+*lLjdaP8@wM0@~+O%Cq5wz%O#*7Z%4t?@5YdpA#4bs*2&VzhCIM!!hc zMj|rhR`+GYMa$H}<}FMeY=5QQ{x-;}rh28r*3E=VdhycB^qwE-+l~(ITL0i2?K0+J zk?Wb3(@cDQ=m3I6`D*>VC$M49VtU`F>ofi0w4N7NK6Yf3 ziqx7vbkks{=|rdCaHum$&By<#Q6n#P*~3_+s%W0q%>El3-#}5y&9JGn5EP=WW`&iS zO7FD%RVQYpzv*8+d(qCi_s(KB#Mh6wlke$6z34QF8>TW|<; zd$mnwe~rmmk+2t+TmB^kEw-Ibah*BOEWAu5AO&qZWIFWD{m)aIllGmy6`OS>eu2bY z=huBbmlBMYck*-*kNkcHBFL{T&1r3`^%OV>*a4^m$#(JX~^G^J}Ms-cec8?NpFS3 ziUi&OZrZKxb6v+hJi>Ah-Gb(C?fj)Ac86mAXT6B>Kklw6R?}K2nVT!?ckcGO*8EG) z_lvf7C|ZI^h4h*-f1a|)@XWqTsn$#K@4xRq+|1p% z`PQf1Uu;FGAbZL~uoo$2r*M4ZbU)bf)2yq&+^8FU|JVMp> zhe1Mjionrt;guPoWw-OWnFF0iTU8ZmAKtkgbKalSFvsxi>!*z;-dBq6j89EQmWa1E4Xtj&nHBC#=R{E++jV}%T zw#{3oB7UHkU6-MV+U>(o9s_6X!P> zS&Qaokq$C8rWvVjyZ9zUB)zR->hIELF^}Drl6&{(sP*GIsX^KvdZ_R*ccvE3n9_ayx$}obXJ;<6JEZSWN$@rIzj{hH z*`(~=k%4^v@k_k(*KXK29>-kGlOy!_tlpC;ud_Y-mrc+Uw@&XhT7?^T28d@AC~rHW zLkWyIdNJru^2^rUXHE<{=m?7y!oNHldLDSFW)u3=lzy)Hi)55c>@+*DuN!z*SRt>@ zdw^4D4KKTdd)a^Gf$x{ zp3vC5wX_uXyzg+Eb;suq2L^*r^Ybm) zVe`VZDzpk}=c;&(y9`oLOI$FDNmpB}~ZCDgu+MxLcoE({{L}fZx&e;NQ_3 zdtL>1xt!b9Q=}4Z--U>f_ElLxjFA=BOZOm-C<8zMEy5@+FF&;R0iIrq*S|2ms9tH;Uh;1oqT|_T>NtoYbHP= z{}#mhj;A3IlNi<{hBb*{O=4J+7}g|)HHl$OVpx+H)+B~CiD6A*Sd$pmB!)GKVNGIK zlNi<{hBb*{O=4J+7}g|)HHl$OVpx+H)+C1Yzs9ie&4CLw0m20r1Hi1CfMNZN+J#sF z6Hx)#&~JqIxNw+6sJko$aNo3f3M2M_No@wytZ1 zHM7JM%*}9SfP4(s53|uhwK>5OZ($0mQ~n}~8;3-4qu|>CKa~>>^XZL;U3VSTWdPqZ z&KWk~>5s6(K_BQE!v~2%b);+CQQVl0_KtQ$CS|zRKa%F?XlEa4XGipn;1Pw6BqGm| z;z6|VAd`tS5|013h^_(0|*(wGc0 zFSs_zQAkUo3BT8clALL79zu$6*hlbSi2`4$Cl{2sAgm>y?LbWQk0djRE+fws%Ou%* z#lOb|)vZq=^JF{utJPI?~D+nJQ=VR}UW5gIy++#u=1wm0*N1=bD2bmZQ zd+fl#Q|x&Rk5EE*EG{C3?ViZ=HjANHT9S<%oFe#%5nfS3GCXE(&{879VIheKMwrJT zf}SK1;AaYU6f%5hBo@)09#4%EIeK9k@qBj+Zm^SgycvPvX&DuQb)XT2R6Dz9syhvD zNg~q7BnFY}AIV}6g}yw;L?WG)K(hC74US`yy>Vgmh5R@Xna&p)ak&&n7Z+b|s)w(g zookefN42g*5ah*LVaYA6lIh>A*w{Z3ZVU%bp@Qk%L4|a_A z@{M=mGHKK}-vrLmILLJ=Qz%;K#-~HBPT?Yoel;mq{zS$go9TqGAbs575*&`a5=2F_!#(20~#oSBW(RZkRV{)0u~z( z`(e?7@bD-hC)jx8+)o$eK)?m(!~oeGSO{Ub4M?g$eSr)6A2thDHBV+fW)XpkQjNo42?pfP#BAfh*OZfq%_E)mu)a;v;+cTW91+jNwfz> zQVnHC$EriB@QJLN+?X7K)qoG}6@XW!C9x+>$GIuIrey zqW+ac$_`^HqzE@qLL$FnFldxi8Z;9=SHx&w)GxB0{Z^4gzj-F)u=2x_1iTFe9 z4Id13Esa_r*h1P}T{ci3_>s9sUa^Dy%Z4_p%FYah`^R_h_!v0lqrvR8F&*0TW-?-Z z98)c%sDJJxK}#SdI8fB!z>$E^;A4CwAtlE|(o`$u@_ky#j}flb*9r`43Vel%E#pTI z%|k%JC`jllG{m+H3isM>Eot>Wy5WG~9@(5L^2e>}XJw?#H%s#0T|UFO^ycqT7`+f5 z!?+?8q`yx;D{5J_o|K#VuAG6gb&%6y5&3;Q<*{H_LP_xev^Cl_SJYZD^`_CD%T&!w z2@ppt5J!){#nCKIgUxtP{>9N7lZ>!trns?j1fTvp8Sy6}q*L18RB~{t+5R=ny8@p) zBhE3zbWhv<=0;q)-GRN5@AkhmoOZD_U*Xr|7Q0df-q}s5(*-pNdulJaL0(7iZk=ns z^jO`&Gey&icfZNbR(^A>Kqq@>Yyq?u9@QKUeHRHEi z-!;LCkwg$=HegEth5akT_-#fVyZa~$fi%DGK4j2XaP6->3lf^~{X|9rs{|%R9Ap6$ z9tc=-oTV?caP%q$tBcWIIdrgUuh|U(0EZFXYAQ}>FqP_siED+iT=>~ZIJBu znH+_oLKKvC((L9no{HJev@WTgkAAd$>n~44J#Dg^AK(?`vXfgrr-2UXgjPbY4(>_(d*%gix& zuyI2G%@o93_!Hj6flrihmqGerlhfE8E27UvF(NlSRN;zNNh4D?STrYOUQ7a;vy~t> zXn<&G!O42#Yfwm4)WUmyu_te@2`x+Bjj01KbS3R>e>1bezbVP% zP(X?9=W5POma@P2t%o-$+ zer*5ESz|cI{r9tmB}Djf*6?^oKeR))>{pINw^>olthMQycQQ`D(I^j)yE)yUvek0j ztl96-Z$vBl5t>zCTsK}q}~;q_9X{i z9lWzw>bVa$aaZ8!IE9oaYtuH^y;u(?|5jKY3LK00EP-}x2rp7QC_IWCW(x$WfOr!U zC5sppO00a*n7cp~fq;uPtSL3_fCcHsg#LJ4Ggc7$OEcVjqRscVWJDEEnS#q~SljFS zApqaE-qpHJ&`k)q%ox{u?<+@4!kVK|kw7Lb5NM2r12s?ZYllf(V%!hi z#ytGFBpR53i`F>r=v5=8Ml>KN+WFBbYmI@zrzBYfT-0D0xbMgNZJDkPEj5G@qR?pZ{p1pMb}1eezkJU%|Da6`zLcS{bls1-S!i6 oW5_TQtxW_XMy(|s`@z~zVTq;A62sX@8KI1*1d@3NF2IBQf4aN`x&QzG literal 0 HcmV?d00001 diff --git a/datashare/XTS/kvdbServerDevice/.gitignore b/datashare/XTS/kvdbServerDevice/.gitignore new file mode 100644 index 0000000..2981358 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/local.properties +/.idea +**/build \ No newline at end of file diff --git a/datashare/XTS/kvdbServerDevice/.hvigor/outputs/logs/details/details.json b/datashare/XTS/kvdbServerDevice/.hvigor/outputs/logs/details/details.json new file mode 100644 index 0000000..5e9b666 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/.hvigor/outputs/logs/details/details.json @@ -0,0 +1,12 @@ +{ + "totalTime": 18499006700, + "moduleNum": 1, + "taskTime": { + "sdkDirInit": 3826800, + "compileETS": 13688715800, + "compileJS": 445800, + "compileResource": 365627800, + "packageHap": 400040300, + "signHap": 3317557200 + } +} \ No newline at end of file diff --git a/datashare/XTS/kvdbServerDevice/AppScope/app.json5 b/datashare/XTS/kvdbServerDevice/AppScope/app.json5 new file mode 100644 index 0000000..7f09ec2 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.samples.datasharetest", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/datashare/XTS/kvdbServerDevice/AppScope/resources/base/element/string.json b/datashare/XTS/kvdbServerDevice/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..616c648 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "datasharetest" + } + ] +} diff --git a/datashare/XTS/kvdbServerDevice/AppScope/resources/base/media/app_icon.png b/datashare/XTS/kvdbServerDevice/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 DataShareExtAbility onCreate, want:' + want.abilityName); + let mKVMgrConfig = { + userInfo : { + userId : '0', + userType : distributedData.UserType.SAME_USER_ID + }, + bundleName: BUNDLE_NAME, + context : this.context + } + var options = { + createIfMissing : true, + encrypt : false, + backup : false, + autoSync : false, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + schema : {}, + securityLevel : distributedData.SecurityLevel.S0, + } + let name = new distributedData.FieldNode('name'); + name.type = distributedData.ValueType.STRING; + name.nullable = false; + name.default = 'name'; + + let age = new distributedData.FieldNode('age'); + age.type = distributedData.ValueType.INTEGER; + age.nullable = false; + age.default = '0'; + + let isStudent = new distributedData.FieldNode('isStudent'); + isStudent.type = distributedData.ValueType.STRING; + isStudent.nullable = false; + isStudent.default = 'false'; + + + let schema1 = new distributedData.Schema(); + schema1.root.appendChild(name); + schema1.root.appendChild(age); + schema1.root.appendChild(isStudent); + schema1.indexes = ['$.name', "$.age", "$.isStudent"]; + // options.kvStoreType = distributedData.KVStoreType.DEVICE_COLLABORATION; + options.schema = schema1; + distributedData.createKVManager(mKVMgrConfig, function (err, manager) { + if (err) { + console.info("[ttt] [DataShareTest] <> createKVManager err: " + err); + return; + } + console.info("[ttt] [DataShareTest] <> createKVManager success"); + kvManager = manager; + console.info('[ttt] [DataShareTest] <> createKVManager kvManager = ' + kvManager); + kvManager.getKVStore(STORE_ID, options, function (err, store) { + if (err) { + console.info("[ttt] [DataShareTest] <> getKVStore err: " + err); + return; + } + console.info("[ttt] [DataShareTest] <> getKVStore success"); + kvdbStore = store; + console.info('[ttt] [DataShareTest] <> createKVManager kvdbStore = ' + kvdbStore); + }); + callback(); + }); + result = this.context.cacheDir + '/datashare.txt' + console.info('[ttt] [DataAbilityTest] <> resultpath = ' + result); + } + + getFileTypes(uri: string, mimeTypeFilter: string, callback) { + console.info('[ttt] [DataShareTest] <> [getFileTypes] enter'); + let ret = new Array("type01", "type02", "type03"); + console.info('[ttt] [DataShareTest] <> [getFileTypes] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } + + async insert(uri, value, callback) { + console.info('[ttt] [DataShareTest] <> [insert] enterkvdb'); + if (value == null) { + console.info('[ttt] [DataShareTest] <> [insert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [insert] kvdb value = ' + JSON.stringify(value)); + let vbArr = new Array(); + let insertBucket = {"name":value.name, "age":value.age, "isStudent":String(value.isStudent)} + console.info('[ttt] [DataShareTest] <> [insert] kvdb insertBucket = ' + JSON.stringify(insertBucket)); + vbArr.push({ + "key":"testkey0", + "value": JSON.stringify(insertBucket) + }); + + console.info('[ttt] [DataShareTest] <> [insert] kvdb vbArr = ' + JSON.stringify(vbArr) + "?????????????"); + kvdbStore.putBatch(vbArr, function (err,data) { + if (err != undefined) { + console.info("[ttt] [DataShareTest] <> [insert kvdb put] callback err: " + err); + if (callback != undefined) { + callback(-1,-1); + } + }else{ + if (callback != undefined) { + callback(0,1); + } + } + console.info("[ttt] [DataShareTest] <> [insert kvdb put] callback data:" + JSON.stringify(data)); + }); + console.info('[ttt] [DataShareTest] <> [insert] leave'); + } + + update(uri, predicates, value, callback) { + console.info('[ttt] [DataShareTest] <> [update] enter'); + console.info('[ttt] [DataShareTest] <> [update] value = ' + JSON.stringify(value)); + console.info('[ttt] [DataShareTest] <> [update] predicates = ' + predicates); + + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [update] invalid predicates'); + return; + } + let vbArr = new Array(); + let keyName = "testkey0"; + let updateBucket = {"name":value.name, "age":value.age, "isStudent":String(value.isStudent)} +// let da = new dataShare.DataSharePredicates(); +// da.notEqualTo("$.name", "789"); +// kvdbStore.getResultSet(da, function (err, data) { +// if (err != undefined) { +// console.info("[ttt] [DataShareTest] <> [query kvdb get] callback err: " + err); +// return; +// } +// console.info("[ttt] [DataShareTest] <> [query kvdb get] callback data:" + JSON.stringify(data)); +// if (callback != undefined) { +// callback(err, data); +// } +// }) + + console.info('[ttt] [DataShareTest] <> [update] updateBucket = ' + JSON.stringify(updateBucket)); + console.info('[ttt] [DataShareTest] <> [update] keyName = ' + keyName); + vbArr.push({ + "key": keyName, + "value": JSON.stringify(updateBucket) + }); + console.info('[ttt] [DataShareTest] <> [update] vbArr = ' + JSON.stringify(vbArr)); + + + + kvdbStore.putBatch(vbArr, function (err,data) { + if (err != undefined) { + console.info("[ttt] [DataShareTest] <> [update kvdb put] callback err: " + JSON.stringify(err)); + if (callback != undefined) { + callback(-1,-1); + } + }else{ + if (callback != undefined) { + callback(0,1); + } + } + console.info("[ttt] [DataShareTest] <> [update kvdb put] callback data:" + JSON.stringify(data)); + }); + console.info('[ttt] [DataShareTest] <> [update] leave'); + } + + delete(uri, predicates, callback) { + console.info('[ttt] [DataShareTest] <> [delete] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [delete] invalid predicates'); + return; + } + kvdbStore.delete(predicates, function(err, data) { + if (err != undefined) { + console.info("[ttt] [DataShareTest] <> [delete kvdb] callback err: " + err); + if (callback != undefined) { + callback(-1, -1); + } + }else { + console.info("[ttt] [DataShareTest] <> [delete kvdb] callback data:" + JSON.stringify(data)); + if (callback != undefined) { + callback(0, 1); + } + } + }); + console.info('[ttt] [DataShareTest] <> [delete] leave'); + } + + query(uri, predicates, columns, callback) { + console.info('[ttt] [DataShareTest] <> [query] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [query] invalid predicates'); + } + if(kvResultSet != null || kvResultSet != undefined){ + kvdbStore.closeResultSet(kvResultSet,function (err, data) { + if (err != undefined) { + console.info("[ttt] [DataShareTest] <> [query kvdb closeResultSet] callback err: " + err); + return; + } + console.info("[ttt] [DataShareTest] <> [query kvdb closeResultSet] callback data:" + JSON.stringify(data)); + }) + } + + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[0] = ' + uri.split('?')[0]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[1] = ' + uri.split('?')[1]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[2] = ' + uri.split('?')[2]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[3] = ' + uri.split('?')[3]); + + + + let idString = uri.split('?')[1]; + if(idString == undefined) { + try { + kvdbStore.getResultSet(predicates, function (err, data) { + if (err != undefined) { + console.info("[ttt] [DataShareTest] <> [query kvdb get] callback err: " + err); + return; + } + kvResultSet = data; + console.info("[ttt] [DataShareTest] <> [query kvdb get] getCount = " + kvResultSet.getCount()) + console.info("[ttt] [DataShareTest] <> [query kvdb get] callback data:" + JSON.stringify(data)); + if (callback != undefined) { + callback(err, data); + } + }) + } catch (err) { + console.error('[ttt] [DataShareTest] <> [query] error' + err); + } + } else { + predicates.notEqualTo("$.name","rpf"); + kvdbStore.on('syncComplete', (err,data) => { + if(err) { + console.log("[ttt] [DataShareTest] <> syncComplete err = " + err); + } + console.log("[ttt] [DataShareTest] <> syncComplete data = " + data); + kvdbStore.getResultSet(predicates, function (err, data) { + if (err != undefined) { + console.info("[ttt] [DataShareTest] <> [query kvdb get] callback err: " + err); + return; + } + kvResultSet = data; + console.info("[ttt] [DataShareTest] <> [query kvdb get] getCount = " + kvResultSet.getCount()) + console.info("[ttt] [DataShareTest] <> [query kvdb get] callback data:" + JSON.stringify(data)); + if (callback != undefined) { + callback(err, data); + } + }) + }); + let id = idString.split('=')[1]; + deviceIds[0] = id; + console.info('[ttt] [DataShareTest] <> [query] deviceIds = ' + deviceIds); + console.info("[ttt] [DataShareTest] <> [sync] begin"); + kvdbStore.sync(deviceIds, distributedData.SyncMode.PULL_ONLY, 500); + console.info("[ttt] [DataShareTest] <> [sync] end"); + } + console.info('[ttt] [DataShareTest] <> [query] leave'); + } + + getType(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [getType] enter'); + let ret = "image"; + console.info('[ttt] [DataShareTest] <> [getType] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } + + batchInsert(uri, valueBuckets, callback) { + console.info('[ttt] [DataShareTest] <> [batchInsert] enter'); + if (valueBuckets == null || valueBuckets.length == undefined) { + console.info('[ttt] [DataShareTest] <> [batchInsert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [batchInsert] valueBuckets.length:' + valueBuckets.length); + + console.info('[ttt] [DataShareTest] <> [batchInsert] valueBuckets.isStudent :' + JSON.stringify(valueBuckets[0].isStudent)); + + let vbArr = new Array(); + let batchInsertBucket = new Array(); + let num = 0; + for(let i = 0; i < valueBuckets.length; i++) { + console.info('[ttt] [DataShareTest] <> [batchInsert] valueBuckets.boolean :' + JSON.stringify(valueBuckets[i].isStudent)); + batchInsertBucket[i] = {"name":valueBuckets[i].name, "age":valueBuckets[i].age, "isStudent":String(valueBuckets[i].isStudent)} + vbArr.push({ + "key":"testkey"+num, + "value": JSON.stringify(batchInsertBucket[i]) + }); + num++; + } + + + console.info('[ttt] [DataShareTest] <> [batchInsert] valueBuckets :' + JSON.stringify(batchInsertBucket)); + kvdbStore.putBatch(vbArr, function(err, data) { + if (err != undefined) { + console.info("[ttt] [DataShareTest] <> [batchInsert kvdb] callback err: " + err); + if (callback != undefined) { + callback(-1, -1); + } + return; + }else{ + if (callback != undefined) { + callback(0,1); + } + } + console.info("[ttt] [DataShareTest] <> [batchInsert kvdb] callback data:" + JSON.stringify(data)); + + }); + console.info('[ttt] [DataShareTest] <> [batchInsert] leave'); + } + + + openFile(uri: string, mode: string, callback) { + console.info('[ttt] [DataAbilityTest] <> DataAbility openFile in'); + fileIo.open(result, 0o2 | 0o100, 0o666, function(err, fd) { + if(err) { + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + err); + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + JSON.stringify(err)); + } + console.log('[ttt] [DataAbilityTest] <> EtsFileIo fd =' + fd); + let num = fileIo.writeSync(fd, "this is a boring test of DataShare"); + console.info("[ttt] [DataAbillityTest] <> WriteSync length = " + num); + console.info("[ttt] [DataAbillityTest] <> WriteSync fd = " + fd); + callback(err,fd); + }) + } + + normalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter'); + let ret = "normalize+" + uri; + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave, ret:' + ret); + let err = {"code":2}; + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + callback(err,ret); + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + } + + denormalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [denormalizeUri] enter'); + let ret = "denormalize+" + uri; + console.info('[ttt] [DataShareTest] <> [denormalizeUri] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } +}; \ No newline at end of file diff --git a/datashare/XTS/kvdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts b/datashare/XTS/kvdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts new file mode 100644 index 0000000..69e95f9 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts @@ -0,0 +1,448 @@ +import Ability from '@ohos.application.Ability' +import ability_particleAbility from '@ohos.ability.particleAbility' +import dataSharePredicates from '@ohos.data.dataSharePredicates' +import dataShare from '@ohos.data.dataShare' + +import dataAbility from '@ohos.data.dataAbility' +import rdb from '@ohos.data.rdb'; + +import rpc from "@ohos.rpc"; + +import distributedData from '@ohos.data.distributedData'; +let kvManager; +let kvdbStore; + + +var seConnect = { + onConnect:function (elementName, proxy) { + console.info("[ttt] [DataShareTest] <> seConnect onConnect called."); + console.info("[ttt] [DataShareTest] <> seConnect onConnect elementName = " + elementName); + console.info("[ttt] [DataShareTest] <> seConnect onConnect proxy = " + proxy); + let data = rpc.MessageParcel.create(); + let reply = rpc.MessageParcel.create(); + let option = new rpc.MessageOption(); + data.writeInterfaceToken("connect-test"); + data.writeInt(111); + + console.info("[ttt] [DataShareTest] <> seConnect onConnect sendRequest."); + proxy.sendRequest(1, data, reply, option) + .then(function (result) { + if (result.errCode === 0) { + // let msg = reply.readString(); + let msg = result.reply.readInt(); + console.info("[ttt] [DataShareTest] <> seConnect reply msg: " + msg); + } else { + console.info("[ttt] [DataShareTest] <> seConnect sendRequest failed, errCode: " + result.errCode); + } + // callback没有返回值,默认返回undefined + }).catch(function (e) { + console.info("[ttt] [DataShareTest] <> seConnect sendRequest got exception: " + e); + }).finally (async () => { + console.info("[ttt] [DataShareTest] <> seConnect sendRequest ends, reclaim parcel"); + data.reclaim(); + reply.reclaim(); + }) + }, + onDisconnect:function (elementName) { + console.info("[ttt] [DataShareTest] <> seConnect onDisconnect"); + }, + onFailed:function (code) { + console.info("[ttt] [DataShareTest] <> seConnect onFailed"); + } +}; + +let dseProxy = 0; +let dseUri = ("datashare:///com.samples.datasharetest.DataShare"); + +var dseConnect = { + onConnect:function (elementName, proxy) { + console.info("[ttt] [DataShareTest] <> dseConnect onConnect called."); + // console.info("[ttt] [DataShareTest] <> dseConnect onConnect elementName = " + elementName); + // console.info("[ttt] [DataShareTest] <> dseConnect onConnect proxy = " + proxy); + dseProxy = proxy; + }, + onDisconnect:function (elementName) { + console.info("[ttt] [DataShareTest] <> dseConnect onDisconnect, elementName:" + elementName); + }, + onFailed:function (code) { + console.info("[ttt] [DataShareTest] <> dseConnect onFailed, code:" + code); + } +}; + +let seConnectionId = -1; +let dseConnectionId = -1; + +let seWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "ServiceExtAbility", +} + +let dseWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "DataShareExtAbility", +} + +export function onCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer on callback ****"); +} + +export function offCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer off callback ****"); +} + +export default class MainAbility extends Ability { + onCreate(want, launchParam) { + // Ability is creating, initialize resources for this ability + console.info("[ttt] [DataShareTest] <> MainAbility onCreate") + globalThis.abilityWant = want; + } + + onDestroy() { + // Ability is destroying, release resources for this ability + console.info("[ttt] [DataShareTest] <> MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.info("[ttt] [DataShareTest] <> MainAbility onWindowStageCreate") + globalThis.abilityContext = this.context; + + let context = this.context; + + context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], function (err,result) { + console.info("[ttt] [DataShareTest] <> permission err = " + JSON.stringify(err)) + console.info("[ttt] [DataShareTest] <> permission result = " + JSON.stringify(result)) + }) +// console.info('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.stageMode:' + context.stageMode); +// console.info('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.bundleName:' + context.bundleName); +// console.info('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.name:' + context.name); + globalThis.connectServiceExtAbility = (async () => { + console.info("[ttt] [DataShareTest] <> connectServiceExtAbility begin"); + seConnectionId = await context.connectAbility(seWant, seConnect); + console.info("[ttt] [DataShareTest] <> connectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + globalThis.disconnectServiceExtAbility = (async () => { + console.info("[ttt] [DataShareTest] <> disconnectServiceExtAbility begin"); + await context.disconnectAbility(seConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> startAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> startAbility failed:" + JSON.stringify(error)); + }); + console.info("[ttt] [DataShareTest] <> disconnectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + + + globalThis.connectDataShareExtAbility = (async () => { + console.info("[ttt] [DataShareTest] <> connectDataShareExtAbility begin"); +// globalThis.dsHelper = await dataShare.createDataShareHelper(this.context,dseUri); + + await dataShare.createDataShareHelper(globalThis.abilityContext, dseUri, (err,data)=>{ + globalThis.dsHelper = data; + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + }); + +// await dataShare.createDataShareHelper(this.context,dseUri).then((data)=>{ +// globalThis.dsHelper = data; +// console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); +// console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); +// }).catch((err)=>{ +// console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); +// console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); +// }) + dseConnectionId = await context.connectAbility(dseWant, dseConnect); +// console.info("[ttt] [DataShareTest] <> ----- 5 -----, globalThis.dsHelper = " + globalThis.dsHelper); +// console.info("[ttt] [DataShareTest] <> connectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.disconnectDataShareExtAbility = (async () => { + console.info("[ttt] [DataShareTest] <> disconnectDataShareExtAbility begin"); + await context.disconnectAbility(dseConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> disconnectDataShareExtAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> disconnectDataShareExtAbility failed:" + JSON.stringify(error)); + }); + globalThis.dsHelper = null; + console.info("[ttt] [DataShareTest] <> disconnectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.on = (async () => { + console.info("[ttt] [DataShareTest] <> on begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> on end, DSHelper is null"); + return; + } + await globalThis.dsHelper.on("dataChange", dseUri, onCallback); + console.info("[ttt] [DataShareTest] <> on end"); + }) + + globalThis.off = (async () => { + console.info("[ttt] [DataShareTest] <> off begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> off end, DSHelper is null"); + return; + } + await globalThis.dsHelper.off("dataChange", dseUri); + await globalThis.dsHelper.off("dataChange", dseUri, offCallback); + console.info("[ttt] [DataShareTest] <> off end"); + }) + + // globalThis.openFile = (async () => { + // console.info("[ttt] [DataShareTest] <> openFile begin"); + // if (globalThis.dsHelper == null) { + // console.info("[ttt] [DataShareTest] <> openFile end, DSHelper is null"); + // return; + // } + // let result = await globalThis.dsHelper.openFile(dseUri, "rwt"); + // console.info("[ttt] [DataShareTest] <> openFile end, result:" + result); + // return result; + // }) + + globalThis.query = (async () => { + console.info("[ttt] [DataShareTest] <> query begin"); + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.info("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } + let count = 0; + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> query end, DSHelper is null"); + return; + } + da.equalTo("name", "ZhangSan"); + let result = await globalThis.dsHelper.query(dseUri, da, ["*"], (err,resultSet)=> { + if (err) { + console.error("[ttt] [DataShareTest] <> query err:" + JSON.stringify(err)); + console.info("[ttt] [DataShareTest] <> query data:" + resultSet); + console.info("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.info("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + } else { + console.info("[ttt] [DataShareTest] <> query data:" + resultSet); + console.info("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.info("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + } + }); + if (result != undefined) { + count = result.rowCount; + } + console.info("[ttt] [DataShareTest] <> query end, count:" + count); + return count; + }) + + globalThis.insert = (async () => { + + console.info("[ttt] [DataShareTest] <> insert begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> insert end, DSHelper is null"); + return; + } + let vb = {"age": 21} + + let v8Arr = []; + let ar = new Uint8Array([1,2,3,4,5,6]); + let arr = new Uint8Array([4,5,6,7]); + let vb1 = {"key":ar,"value":arr} + v8Arr.push(vb1); + + console.info("[ttt] [DataShareTest] <> insert vb:" + JSON.stringify(vb)); + console.info("[ttt] [DataShareTest] <> insert vb:" + JSON.stringify(vb)); + let ret = await globalThis.dsHelper.insert(dseUri, vb, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> insert err:" + JSON.stringify(err)); + console.info("[ttt] [DataShareTest] <> insert data:" + ret); + }else { + console.info("[ttt] [DataShareTest] <> insert data:" + ret); + } + }); + await globalThis.notifyChange(); + console.info("[ttt] [DataShareTest] <> insert end, ret:" + ret); + return ret; + }) + + globalThis.update = (async () => { + console.info("[ttt] [DataShareTest] <> update begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> update end, DSHelper is null"); + return; + } + console.info("[ttt] [DataShareTest] <> update begin RPF666"); + let da = new dataSharePredicates.DataSharePredicates(); + console.info("[ttt] [DataShareTest] <> update begin RPF777"); + if (da == null || da == undefined) { + console.info("[ttt] [DataShareTest] <> da is null or u" + + "ndefined"); + return; + } +// da.equalTo("name", "ZhangSan"); + let ret = await globalThis.dsHelper.update(dseUri, da, {"age": 31}, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> update err:" + JSON.stringify(err)); + console.info("[ttt] [DataShareTest] <> update data:" + ret); + }else { + console.info("[ttt] [DataShareTest] <> update data:" + ret); + } + }); + await globalThis.notifyChange(); + console.info("[ttt] [DataShareTest] <> update end, result:" + ret); + return ret; + }) + + globalThis.delete = (async () => { + console.info("[ttt] [DataShareTest] <> delete begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> delete end, DSHelper is null"); + return; + } + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.info("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } +// da.equalTo("name", "ZhangSan"); + let ret = globalThis.dsHelper.delete(dseUri, da, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> delete err:" + JSON.stringify(err)); + console.info("[ttt] [DataShareTest] <> delete data:" + ret); + }else { + console.info("[ttt] [DataShareTest] <> delete data:" + ret); + } + }); + await globalThis.notifyChange(); + console.info("[ttt] [DataShareTest] <> delete end, result:" + ret); + return ret; + }) + + globalThis.batchInsert = (async () => { + console.info("[ttt] [DataShareTest] <> batchInsert begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> batchInsert end, DSHelper is null"); + return; + } + let ar = new Uint8Array([1,2,3,4,5,6]); + let arr = new Uint8Array([4,5,6,7]); + let people = new Array( + {"name": "LiSi", "age": 41, "Binary": ar}, + {"name": "WangWu", "age": 21, "Binary": arr}, + {"name": "ZhaoLiu", "age": 61, "Binary": arr}); +// let ar = new Uint8Array([1,2,3,4,5,6]); +// let arr = new Uint8Array([4,5,6,7]); +// let v8Arr = []; +// let vb = {"key":ar,"jii":arr,"value":arr,"njj":arr}; +// v8Arr.push(vb) + let ret = await globalThis.dsHelper.batchInsert(dseUri, people); + await globalThis.notifyChange(); + console.info("[ttt] [DataShareTest] <> batchInsert end, result:" + ret); + return ret; + }) + + globalThis.notifyChange = (async () => { + console.info("[ttt] [DataShareTest] <> notifyChange begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> notifyChange end, DSHelper is null"); + return; + } + await globalThis.dsHelper.notifyChange(dseUri); + console.info("[ttt] [DataShareTest] <> notifyChange end"); + }) + + globalThis.getType = (async () => { + console.info("[ttt] [DataShareTest] <> getType begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> getType end, DSHelper is null"); + return; + } + let result; + globalThis.dsHelper.getType(dseUri,(err,data)=>{ + if(err){ + console.info("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.info("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.info("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + console.info("[ttt] [DataShareTest] <> getType end, result:" + result); + return result; + }) + + globalThis.getFileTypes = (async () => { + console.info("[ttt] [DataShareTest] <> getFileTypes begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> getFileTypes end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.getFileTypes(dseUri, "image/*",(err,data)=>{ + if(err){ + console.info("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.info("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.info("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.normalizeUri = (async () => { + console.info("[ttt] [DataShareTest] <> normalizeUri begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> normalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.normalizeUri(dseUri,(err,data)=>{ + if(err){ + console.info("[ttt] [DataShareTest] <> normalizeUri err, err:" + JSON.stringify(err)); +// console.info("[ttt] [DataShareTest] <> getType end, data:" + JSON.stringify(data)); +// result = data; + }else{ + console.info("[ttt] [DataShareTest] <> normalizeUri end, data:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.denormalizeUri = (async () => { + console.info("[ttt] [DataShareTest] <> denormalizeUri begin"); + if (globalThis.dsHelper == null) { + console.info("[ttt] [DataShareTest] <> denormalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.denormalizeUri(dseUri,(err,data)=>{ + if(err){ + console.info("[ttt] [DataShareTest] <> denormalizeUri err, err:" + JSON.stringify(err)); +// console.info("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); +// result = data; + }else{ + console.info("[ttt] [DataShareTest] <> denormalizeUri end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + windowStage.setUIContent(this.context, "pages/index", null) + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + console.info("[ttt] [DataShareTest] <> MainAbility onWindowStageDestroy") + } + + onForeground() { + // Ability has brought to foreground + console.info("[ttt] [DataShareTest] <> MainAbility onForeground") + } + + onBackground() { + // Ability has back to background + console.info("[ttt] [DataShareTest] <> MainAbility onBackground") + } +}; diff --git a/datashare/XTS/kvdbServerDevice/entry/src/main/ets/pages/index.ets b/datashare/XTS/kvdbServerDevice/entry/src/main/ets/pages/index.ets new file mode 100644 index 0000000..f9fd629 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/entry/src/main/ets/pages/index.ets @@ -0,0 +1,400 @@ +import dataShare from '@ohos.data.dataShare' + + + +@Entry +@Component +struct Index { + @State message: string = "Main thread message filed" + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text('DataShare Extension Ability Test') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> dataSharePredicates build begin'); +// let da = new dataShare.DataSharePredicates(); +// da.equalTo("name", "zhangsan"); +// da.notEqualTo("name", "lisi"); +// da.beginWrap(); +// da.endWrap(); +// da.or(); +// da.and(); +// da.contains("name", "zhang"); +// da.beginsWith("name", "z"); +// da.endsWith("name", "n"); +// da.isNull("name"); +// da.isNotNull("name"); +// da.like("name", "zhang"); +// da.unlike("name", "li"); +// da.glob("name", "???"); +// da.between("age", 18, 22); +// da.notBetween("age", 18, 22); +// da.greaterThan("age", 18); +// da.lessThan("age", 22); +// da.greaterThanOrEqualTo("age", 18); +// da.lessThanOrEqualTo("age", 22); +// da.orderByAsc("age"); +// da.orderByDesc("age"); +// da.distinct(); +// da.limit(10, 5); +// da.groupBy(["name", "age"]); +// da.indexedBy("name"); +// da.in("name", []); +// da.notIn("name", []); +// da.prefixKey("name"); +// console.info('[ttt] [DataShareTest] <> dataSharePredicates = ' + JSON.stringify(da)); +// console.info('[ttt] [DataShareTest] <> dataSharePredicates build end'); + }) + + Text(`${this.message}`) + .fontSize(30) + .height('15%') + .width('100%') + .textAlign(TextAlign.Center) + +// Row() { +// Button() { +// Text('ConnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick enter') +// this.message = 'ConnectServiceExtension onclick' +// globalThis.connectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick leave') +// }) +// +// Button() { +// Text('DisconnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick enter') +// this.message = 'DisconnectServiceExtension onclick' +// globalThis.disconnectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick leave') +// }) +// } + + Row() { + Button() { + Text('Connect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Connect onclick enter') + this.message = 'Connect onclick' + await globalThis.connectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Connect onclick leave') + }) + + Button() { + Text('Disconnect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Disconnect onclick enter') + this.message = 'Disconnect onclick' + await globalThis.disconnectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Disconnect onclick leave') + }) + } + + Row() { + Button() { + Text('On') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> On onclick enter') + this.message = '~ On onclick' + try { + await globalThis.on(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer on catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> On onclick leave') + }) + + Button() { + Text('Off') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Off onclick enter') + this.message = '~ Off onclick' + try { + await globalThis.off(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer Off catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> Off onclick leave') + }) + +// Button() { +// Text('OpenFile') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('30%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> OpenFile onclick enter') +// this.message = 'OpenFile onclick' +// let ret = await globalThis.openFile() +// this.message += "\n\n Test Result: " + ret; +// console.info('[ttt] [DataShareTest] <> OpenFile onclick leave') +// }) + } + + Row() { + Button() { + Text('Query') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Query onclick enter') + this.message = 'Query onclick' + let ret = await globalThis.query() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Query onclick leave') + }) + + Button() { + Text('Insert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Insert onclick enter') + this.message = 'Insert onclick' + let ret = await globalThis.insert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Insert onclick leave') + }) + } + + Row() { + Button() { + Text('Update') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Update onclick enter') + this.message = 'Update onclick' + let ret = await globalThis.update() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Update onclick leave') + }) + + Button() { + Text('Delete') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Delete onclick enter') + this.message = 'Delete onclick' + let ret = await globalThis.delete() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Delete onclick leave') + }) + } + + Row() { + Button() { + Text('BatchInsert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> BatchInsert onclick enter') + this.message = 'BatchInsert onclick' + let ret = await globalThis.batchInsert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> BatchInsert onclick leave') + }) + + Button() { + Text('NotifyChange') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NotifyChange onclick enter') + this.message = 'NotifyChange onclick' + await globalThis.notifyChange() + console.info('[ttt] [DataShareTest] <> NotifyChange onclick leave') + }) + } + + Row() { + Button() { + Text('GetType') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetType onclick enter') + this.message = 'GetType onclick' + let ret = await globalThis.getType() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetType onclick leave') + }) + + Button() { + Text('GetFileTypes') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick enter') + this.message = 'GetFileTypes onclick' + let ret = await globalThis.getFileTypes() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick leave') + }) + } + + Row() { + Button() { + Text('NormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick enter') + this.message = 'NormalizeUri onclick' + let ret = await globalThis.normalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick leave') + }) + + Button() { + Text('DenormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick enter') + this.message = 'DenormalizeUri onclick' + let ret = await globalThis.denormalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick leave') + }) + } + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/datashare/XTS/kvdbServerDevice/entry/src/main/module.json5 b/datashare/XTS/kvdbServerDevice/entry/src/main/module.json5 new file mode 100644 index 0000000..4cc923d --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/entry/src/main/module.json5 @@ -0,0 +1,55 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "srcEntrance": "./ets/Application/AbilityStage.ts", + "description": "$string:phone_entry_dsc", + "mainElement": "MainAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "uiSyntax": "ets", + "abilities": [ + { + "name": "MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ts", + "description": "$string:phone_entry_main", + "icon": "$media:icon", + "label": "$string:entry_label", + "visible": true, +// "orientation": "portrait", + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:color_1" + } + ], + "extensionAbilities": [ + { + "srcEntrance": "./ets/DataShareExtAbility/DataShareExtAbility.ts", + "name": "DataShareExtAbility", + "icon": "$media:icon", + "description": "$string:description_datashareextability", + "type": "dataShare", + "uri": "datashare://com.samples.datasharetest.DataShare", + "visible": true + } + ], + "requestPermissions": [ + { + "name" : "ohos.permission.DISTRIBUTED_DATASYNC" + } + ] + } +} \ No newline at end of file diff --git a/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/datashare.json b/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/datashare.json new file mode 100644 index 0000000..c946d63 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/datashare.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "color_1", + "value": "#ff0000" + } + ] +} \ No newline at end of file diff --git a/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/string.json b/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..e1e9210 --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/element/string.json @@ -0,0 +1,40 @@ +{ + "string": [ + { + "name": "phone_entry_dsc", + "value": "i am an entry for phone" + }, + { + "name": "phone_entry_main", + "value": "the phone entry ability" + }, + { + "name": "entry_label", + "value": "DataShareTest" + }, + { + "name": "form_description", + "value": "my form" + }, + { + "name": "serviceability_description", + "value": "my whether" + }, + { + "name": "description_application", + "value": "DataShareTest" + }, + { + "name": "app_name", + "value": "DataShareTest" + }, + { + "name": "description_datashareextability", + "value": "description_datashareextability" + }, + { + "name": "description_serviceability", + "value": "description_serviceability" + } + ] +} diff --git a/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/media/icon.png b/datashare/XTS/kvdbServerDevice/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 2.1.2 < 3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "liftoff": { + "version": "4.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "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": "https://repo.huaweicloud.com/repository/npm/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "log4js": { + "version": "6.4.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stdout": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/mute-stdout/-/mute-stdout-1.0.0.tgz", + "integrity": "sha512-MaSQenn0f9oxIjtCufclpV00MuYTiHaXPbdcfPIM+quMqoa8cXywjHHx4LhhIAZlXqPWMdcUpYviajfmHtHRJw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://repo.huaweicloud.com/repository/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" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "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": "https://repo.huaweicloud.com/repository/npm/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-hrtime": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", + "integrity": "sha512-CU2l5CYUAptUYq/671ajexQfXuxJFwwg0n243Kdkx8bTjeenedsWgu8TGHPm03vLfNtk3aTXgySKPp3Usykudw==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "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": "https://repo.huaweicloud.com/repository/npm/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-package-path": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "streamroller": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/streamroller/-/streamroller-3.1.1.tgz", + "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", + "requires": { + "date-format": "^4.0.10", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "7.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "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.1" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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" + } + } + } +} diff --git a/datashare/XTS/kvdbServerDevice/package.json b/datashare/XTS/kvdbServerDevice/package.json new file mode 100644 index 0000000..718445b --- /dev/null +++ b/datashare/XTS/kvdbServerDevice/package.json @@ -0,0 +1,19 @@ +{ + "license":"ISC", + "devDependencies":{}, + "name":"datasharetest", + "ohos":{ + "org":"huawei", + "directoryLevel":"project", + "buildTool":"hvigor" + }, + "description":"example description", + "repository":{}, + "version":"1.0.0", + "dependencies":{ + "@ohos/hypium":"1.0.1", + "@ohos/hvigor-ohos-plugin":"1.1.6", + "hypium":"^1.0.0", + "@ohos/hvigor":"1.1.6" + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/.gitignore b/datashare/XTS/rdbServerDevice/.gitignore new file mode 100644 index 0000000..2981358 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/local.properties +/.idea +**/build \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/.hvigor/outputs/logs/details/details.json b/datashare/XTS/rdbServerDevice/.hvigor/outputs/logs/details/details.json new file mode 100644 index 0000000..ac0d443 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/.hvigor/outputs/logs/details/details.json @@ -0,0 +1,12 @@ +{ + "totalTime": 14534890900, + "moduleNum": 1, + "taskTime": { + "sdkDirInit": 5845800, + "compileETS": 11108569100, + "compileJS": 899000, + "compileResource": 83418200, + "packageHap": 246255900, + "signHap": 2486642600 + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/AppScope/app.json5 b/datashare/XTS/rdbServerDevice/AppScope/app.json5 new file mode 100644 index 0000000..7f09ec2 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.samples.datasharetest", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/datashare/XTS/rdbServerDevice/AppScope/resources/base/element/string.json b/datashare/XTS/rdbServerDevice/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..616c648 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "datasharetest" + } + ] +} diff --git a/datashare/XTS/rdbServerDevice/AppScope/resources/base/media/app_icon.png b/datashare/XTS/rdbServerDevice/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 DataShareExtAbility onCreate, want:' + want.abilityName); + console.log('[ttt] [DataShareTest] <> this.context:' + this.context); + result = this.context.cacheDir + '/datashare.txt' + console.info('[ttt] [DataAbilityTest] <> resultpath = ' + result); + rdb.getRdbStore(this.context, { + name: DB_NAME + }, 1, function (err, data) { + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, getRdbStore done err:' + JSON.stringify(err)); + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, getRdbStore done data:' + JSON.stringify(data)); + rdbStore = data; + rdbStore.executeSql(DDL_TBL_CREATE, [], function (err) { + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, executeSql done err:' + JSON.stringify(err)); + }); + rdbStore.setDistributedTables(["TBL00"], (err,data) => { + console.info("[ttt] [DataShareTest] <> setDistributedTables err = " + err); + console.info("[ttt] [DataShareTest] <> setDistributedTables data = " + data); + }); + callback(); + }); + } + + + async insert(uri, value, callback) { + console.info('[ttt] [DataShareTest] <> [insert] enter'); +// deviceManager.createDeviceManager(BUNDLE_NAME, (err, value) => { +// if (err) { +// console.info("[ttt] [DataShareTest] <> [createDeviceManager] err = " + err); +// } +// devManager = value; +// console.info('[ttt] [DataShareTest] <> [createDeviceManager] enter'); +// // get deviceIds +// if (devManager != null) { +// var devices = devManager.getTrustedDeviceListSync(); +// for (var i = 0; i < devices.length; i++) { +// deviceIds[i] = devices[i].deviceId; +// } +// } +// console.log("[ttt] [DataShareTest] <> deviceIds :" + deviceIds); +// }); + + + if (value == null) { + console.info('[ttt] [DataShareTest] <> [insert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [insert] value = ' + value); + console.info('[ttt] [DataShareTest] <> [insert] value = ' + JSON.stringify(value)); + await rdbStore.insert(TBL_NAME, value, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [insert] callback ret:' + ret); + if (callback != undefined) { + callback(err, ret); + } + }); + + dataShare.createDataShareHelper(this.context, dseUri, (err,data)=>{ + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + dsHelperr); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + data.notifyChange(dseUri,(err,data) => { + console.log("[ttt] [DataShareClientTest] <> notifyChange = " + data); + console.log("[ttt] [DataShareClientTest] <> notifyChange json= " + JSON.stringify(data)); + }) + }); + } + + update(uri, predicates, value, callback) { + console.info('[ttt] [DataShareTest] <> [update] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [update] invalid predicates'); + return; + } + console.info('[ttt] [DataShareTest] <> [update] values = ' + value); + console.info('[ttt] [DataShareTest] <> [update] values = ' + JSON.stringify(value)); + console.info('[ttt] [DataShareTest] <> [update] predicates = ' + predicates); + console.info('[ttt] [DataShareTest] <> [update] predicates = ' + JSON.stringify(predicates)); + try { + rdbStore.update(TBL_NAME,value, predicates, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [update] callback ret:' + ret); + console.info('[ttt] [DataShareTest] <> [update] callback err:' + err); + if (callback != undefined) { + callback(err, ret); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [update] error' + err); + } + console.info('[ttt] [DataShareTest] <> [update] leave'); + } + + delete(uri, predicates, callback) { + console.info('[ttt] [DataShareTest] <> [delete] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [delete] invalid predicates'); + return; + } + console.info('[ttt] [DataShareTest] <> [delete] predicates = ' + predicates); + console.info('[ttt] [DataShareTest] <> [delete] predicates = ' + JSON.stringify(predicates)); + try { + rdbStore.delete(TBL_NAME,predicates, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [delete] ret:' + ret); + if (callback != undefined) { + callback(err, ret); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [delete] error' + err); + } + console.info('[ttt] [DataShareTest] <> [delete] leave'); + } + + query(uri, predicates, columns, callback) { + let getTableName; + console.info('[ttt] [DataShareTest] <> [query] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [query] invalid predicates'); + } + console.info('[ttt] [DataShareTest] <> [query] values = ' + JSON.stringify(columns)); + + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[0] = ' + uri.split('?')[0]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[1] = ' + uri.split('?')[1]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[2] = ' + uri.split('?')[2]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[3] = ' + uri.split('?')[3]); + + let idString = uri.split('?')[1]; + + if(idString == undefined) { + try { + // let da = new dataSharePredicates.DataSharePredicates(); + // da.notEqualTo("name", "ert"); + // da.limit(1,0); + rdbStore.query(TBL_NAME, predicates, columns, function (err, resultSet) { + console.info('[ttt] [DataShareTest] <> [query] ret: ' + resultSet); + if (resultSet != undefined) { + console.info('[ttt] [DataShareTest] <> [query] resultSet.rowCount: ' + resultSet.rowCount); + } + if (callback != undefined) { + callback(err, resultSet); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [query] error' + err); + } + } else { + let id = idString.split('=')[1]; + deviceIds[0] = id; + console.info('[ttt] [DataShareTest] <> [query] idString.split("=")[1] = ' + idString.split('=')[1]); + let rdbPredicate = new rdb.RdbPredicates('TBL00') + rdbPredicate.inDevices(deviceIds); + console.info("[ttt] [DataShareTest] <> [sync] begin"); + rdbStore.sync(rdb.SyncMode.SYNC_MODE_PULL,rdbPredicate,(err,data) => { + if(err) { + console.info("[ttt] [DataShareTest] <> [sync] err = " + err); + } + console.info("[ttt] [DataShareTest] <> [sync] data = " + JSON.stringify(data)); + rdbStore.obtainDistributedTableName(deviceIds[0], TBL_NAME, (err,data) => { + if(err) { + console.info("[ttt] [DataShareTest] <> [obtainDistributedTableName] err = " + err); + } + getTableName = data; + console.info("[ttt] [DataShareTest] <> [sync] getTableName = " + data); + try { + // let da = new dataSharePredicates.DataSharePredicates(); + // da.notEqualTo("name", "ert"); + // da.limit(1,0); + rdbStore.query(getTableName, predicates, ["*"], function (err, resultSet) { + console.info('[ttt] [DataShareTest] <> [query] ret: ' + resultSet); + if (resultSet != undefined) { + console.info('[ttt] [DataShareTest] <> [query] resultSet.rowCount: ' + resultSet.rowCount); + } + if (callback != undefined) { + callback(err, resultSet); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [query] error' + err); + } + }) + }) + } + console.info('[ttt] [DataShareTest] <> [query] leave'); + } + + + batchInsert(uri: string, valueBuckets, callback) { + console.info('[ttt] [DataShareTest] <> [batchInsert] enter'); + if (valueBuckets == null || valueBuckets.length == undefined) { + console.info('[ttt] [DataShareTest] <> [batchInsert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [batchInsert] valueBuckets.length:' + valueBuckets.length); + let resultNum = valueBuckets.length + rdbStore.batchInsert(TBL_NAME, valueBuckets, (err, ret) => { + if(err) { + console.info('[ttt] [DataShareTest] <> [batchInsert] callback err:' + err); + } + console.info('[ttt] [DataShareTest] <> [batchInsert] callback ret:' + ret); + if (callback != undefined) { + callback(err, resultNum); + console.info('[ttt] [DataShareTest] <> [batchInsert] callback begin'); + } + }) + console.info('[ttt] [DataShareTest] <> [batchInsert] leave'); + } + + getType(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [getType] enter'); + let ret = "image"; + console.info('[ttt] [DataShareTest] <> [getType] leave, ret:' + ret); + let err = {"code":0}; + callback(err,ret); + return ret; + } + + getFileTypes(uri: string, mimeTypeFilter: string, callback) { + console.info('[ttt] [DataShareTest] <> [getFileTypes] enter'); + let ret = new Array("type01", "type02", "type03"); + console.info('[ttt] [DataShareTest] <> [getFileTypes] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } + + openFile(uri: string, mode: string, callback) { + console.info('[ttt] [DataAbilityTest] <> DataAbility openFile in'); + fileIo.open(result, 0o2 | 0o100, 0o666, function(err, fd) { + if(err) { + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + err); + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + JSON.stringify(err)); + } + console.log('[ttt] [DataAbilityTest] <> EtsFileIo fd =' + fd); + let num = fileIo.writeSync(fd, "this is a interesting test of DataAbility from the Great RPF"); + console.info("[ttt] [DataAbillityTest] <> WriteSync length = " + num); + console.info("[ttt] [DataAbillityTest] <> WriteSync fd = " + fd); + callback(err,fd); + }) + } + + normalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter'); + let ret = "normalize+" + uri; + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave, ret:' + ret); + let err = {"code":2}; + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + callback(err,ret); + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + } + + denormalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [denormalizeUri] enter'); + let ret = "denormalize+" + uri; + console.info('[ttt] [DataShareTest] <> [denormalizeUri] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } +}; \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts b/datashare/XTS/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts new file mode 100644 index 0000000..91c12af --- /dev/null +++ b/datashare/XTS/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts @@ -0,0 +1,448 @@ +import Ability from '@ohos.application.Ability' +import ability_particleAbility from '@ohos.ability.particleAbility' +import dataSharePredicates from '@ohos.data.dataSharePredicates' +import dataShare from '@ohos.data.dataShare' +import featureAbility from '@ohos.ability.featureAbility' + + +import dataAbility from '@ohos.data.dataAbility' +import rdb from '@ohos.data.rdb'; + +import rpc from "@ohos.rpc"; + +var seConnect = { + onConnect:function (elementName, proxy) { + console.log("[ttt] [DataShareTest] <> seConnect onConnect called."); + console.log("[ttt] [DataShareTest] <> seConnect onConnect elementName = " + elementName); + console.log("[ttt] [DataShareTest] <> seConnect onConnect proxy = " + proxy); + let data = rpc.MessageParcel.create(); + let reply = rpc.MessageParcel.create(); + let option = new rpc.MessageOption(); + data.writeInterfaceToken("connect-test"); + data.writeInt(111); + + console.log("[ttt] [DataShareTest] <> seConnect onConnect sendRequest."); + proxy.sendRequest(1, data, reply, option) + .then(function (result) { + if (result.errCode === 0) { + // let msg = reply.readString(); + let msg = result.reply.readInt(); + console.log("[ttt] [DataShareTest] <> seConnect reply msg: " + msg); + } else { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest failed, errCode: " + result.errCode); + } + // callback没有返回值,默认返回undefined + }).catch(function (e) { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest got exception: " + e); + }).finally (async () => { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest ends, reclaim parcel"); + data.reclaim(); + reply.reclaim(); + }) + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareTest] <> seConnect onDisconnect"); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareTest] <> seConnect onFailed"); + } +}; + +let dseProxy = 0; +let dseUri = ("datashare:///com.samples.datasharetest.DataShare"); + +var dseConnect = { + onConnect:function (elementName, proxy) { + console.log("[ttt] [DataShareTest] <> dseConnect onConnect called."); + // console.log("[ttt] [DataShareTest] <> dseConnect onConnect elementName = " + elementName); + // console.log("[ttt] [DataShareTest] <> dseConnect onConnect proxy = " + proxy); + dseProxy = proxy; + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareTest] <> dseConnect onDisconnect, elementName:" + elementName); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareTest] <> dseConnect onFailed, code:" + code); + } +}; + +let seConnectionId = -1; +let dseConnectionId = -1; + +let seWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "ServiceExtAbility", +} + +let dseWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "DataShareExtAbility", +} + +export function onCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer on callback ****"); +} + +export function offCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer off callback ****"); +} + +export default class MainAbility extends Ability { + onCreate(want, launchParam) { + // Ability is creating, initialize resources for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onCreate") + globalThis.abilityWant = want; + } + + onDestroy() { + // Ability is destroying, release resources for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onWindowStageCreate") + globalThis.abilityContext = this.context; + let context = this.context; + + context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], function (err,result) { + console.info("[ttt] [DataShareTest] <> permission err = " + JSON.stringify(err)) + console.info("[ttt] [DataShareTest] <> permission result = " + JSON.stringify(result)) + }) + // console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.stageMode:' + context.stageMode); + // console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.bundleName:' + context.bundleName); + // console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.name:' + context.name); + globalThis.connectServiceExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> connectServiceExtAbility begin"); + seConnectionId = await context.connectAbility(seWant, seConnect); + console.log("[ttt] [DataShareTest] <> connectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + globalThis.disconnectServiceExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> disconnectServiceExtAbility begin"); + await context.disconnectAbility(seConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> startAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> startAbility failed:" + JSON.stringify(error)); + }); + console.log("[ttt] [DataShareTest] <> disconnectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + + + globalThis.connectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility begin"); + // globalThis.dsHelper = await dataShare.createDataShareHelper(this.context,dseUri); + + await dataShare.createDataShareHelper(globalThis.abilityContext, dseUri, (err,data)=>{ + globalThis.dsHelper = data; + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + }); + + // await dataShare.createDataShareHelper(this.context,dseUri).then((data)=>{ + // globalThis.dsHelper = data; + // console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); + // console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + // }).catch((err)=>{ + // console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + // console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + // }) + dseConnectionId = await context.connectAbility(dseWant, dseConnect); + // console.log("[ttt] [DataShareTest] <> ----- 5 -----, globalThis.dsHelper = " + globalThis.dsHelper); + // console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.disconnectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> disconnectDataShareExtAbility begin"); + await context.disconnectAbility(dseConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> disconnectDataShareExtAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> disconnectDataShareExtAbility failed:" + JSON.stringify(error)); + }); + globalThis.dsHelper = null; + console.log("[ttt] [DataShareTest] <> disconnectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.on = (async () => { + console.log("[ttt] [DataShareTest] <> on begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> on end, DSHelper is null"); + return; + } + await globalThis.dsHelper.on("dataChange", dseUri, onCallback); + console.log("[ttt] [DataShareTest] <> on end"); + }) + + globalThis.off = (async () => { + console.log("[ttt] [DataShareTest] <> off begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> off end, DSHelper is null"); + return; + } + await globalThis.dsHelper.off("dataChange", dseUri); + await globalThis.dsHelper.off("dataChange", dseUri, offCallback); + console.log("[ttt] [DataShareTest] <> off end"); + }) + + globalThis.query = (async () => { + console.log("[ttt] [DataShareTest] <> query begin"); + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } + let count = 0; + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> query end, DSHelper is null"); + return; + } + da.notEqualTo("name", "wsx"); + let result = await globalThis.dsHelper.query(dseUri, da, ["*"], (err,resultSet)=> { + if (err) { + console.error("[ttt] [DataShareTest] <> query err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> query data:" + resultSet); + console.log("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.log("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + } else { + console.log("[ttt] [DataShareTest] <> query data:" + resultSet); + console.log("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.log("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + let gotofirstrow = resultSet.goToFirstRow(); + console.log("[ttt] [DataShareTest] <> query gotofirstrow:" + gotofirstrow); + let getString = resultSet.getString(1) + console.log("[ttt] [DataShareTest] <> query getString:" + getString); + } + }); + if (result != undefined) { + count = result.rowCount; + } + console.log("[ttt] [DataShareTest] <> query end, count:" + count); + return count; + }) + + globalThis.insert = (async () => { + + console.log("[ttt] [DataShareTest] <> insert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> insert end, DSHelper is null"); + return; + } + // let vb = {"age": 21} + // + // let v8Arr = []; + // let ar = new Uint8Array([1,2,3,4,5,6]); + // let arr = new Uint8Array([4,5,6,7]); + // let vb1 = {"key":ar,"value":arr} + // v8Arr.push(vb1); + let vb = {"name":"rpf", "age": 23, "isStudent": false, "Binary": new Uint8Array([1,2,3])}; + + console.log("[ttt] [DataShareTest] <> insert vb:" + JSON.stringify(vb)); + let ret = await globalThis.dsHelper.insert(dseUri, vb, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> insert err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> insert data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> insert data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> insert end, ret:" + ret); + return ret; + }) + + globalThis.update = (async () => { + console.log("[ttt] [DataShareTest] <> update begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> update end, DSHelper is null"); + return; + } + console.log("[ttt] [DataShareTest] <> update begin RPF666"); + let da = new dataSharePredicates.DataSharePredicates(); + console.log("[ttt] [DataShareTest] <> update begin RPF777"); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or u" + + "ndefined"); + return; + } + // da.equalTo("name", "ZhangSan"); + let ret = await globalThis.dsHelper.update(dseUri, da, {"age": 31}, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> update err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> update data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> update data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> update end, result:" + ret); + return ret; + }) + + globalThis.delete = (async () => { + console.log("[ttt] [DataShareTest] <> delete begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> delete end, DSHelper is null"); + return; + } + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } + // da.equalTo("name", "ZhangSan"); + let ret = globalThis.dsHelper.delete(dseUri, da, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> delete err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> delete data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> delete data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> delete end, result:" + ret); + return ret; + }) + + globalThis.batchInsert = (async () => { + console.log("[ttt] [DataShareTest] <> batchInsert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> batchInsert end, DSHelper is null"); + return; + } + let ar = new Uint8Array([1,2,3,4,5,6]); + let arr = new Uint8Array([4,5,6,7]); + let people = new Array( + {"name": "LiSi", "age": 41, "Binary": ar}, + {"name": "WangWu", "age": 21, "Binary": arr}, + {"name": "ZhaoLiu", "age": 61, "Binary": arr}); + // let ar = new Uint8Array([1,2,3,4,5,6]); + // let arr = new Uint8Array([4,5,6,7]); + // let v8Arr = []; + // let vb = {"key":ar,"jii":arr,"value":arr,"njj":arr}; + // v8Arr.push(vb) + let ret = await globalThis.dsHelper.batchInsert(dseUri, people); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> batchInsert end, result:" + ret); + return ret; + }) + + globalThis.notifyChange = (async () => { + console.log("[ttt] [DataShareTest] <> notifyChange begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> notifyChange end, DSHelper is null"); + return; + } + await globalThis.dsHelper.notifyChange(dseUri); + console.log("[ttt] [DataShareTest] <> notifyChange end"); + }) + + globalThis.openFile = (async () => { + console.log("[ttt] [DataShareTest] <> openFile begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> openFile end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.openFile(dseUri, "rwt"); + console.log("[ttt] [DataShareTest] <> openFile end, result:" + result); + return result; + }) + + globalThis.getType = (async () => { + console.log("[ttt] [DataShareTest] <> getType begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> getType end, DSHelper is null"); + return; + } + let result; + globalThis.dsHelper.getType(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + console.log("[ttt] [DataShareTest] <> getType end, result:" + result); + return result; + }) + + globalThis.getFileTypes = (async () => { + console.log("[ttt] [DataShareTest] <> getFileTypes begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> getFileTypes end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.getFileTypes(dseUri, "image/*",(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.normalizeUri = (async () => { + console.log("[ttt] [DataShareTest] <> normalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> normalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.normalizeUri(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> normalizeUri err, err:" + JSON.stringify(err)); + // console.log("[ttt] [DataShareTest] <> getType end, data:" + JSON.stringify(data)); + // result = data; + }else{ + console.log("[ttt] [DataShareTest] <> normalizeUri end, data:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.denormalizeUri = (async () => { + console.log("[ttt] [DataShareTest] <> denormalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> denormalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.denormalizeUri(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> denormalizeUri err, err:" + JSON.stringify(err)); + // console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + // result = data; + }else{ + console.log("[ttt] [DataShareTest] <> denormalizeUri end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + windowStage.setUIContent(this.context, "pages/index", null) + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + console.log("[ttt] [DataShareTest] <> MainAbility onWindowStageDestroy") + } + + onForeground() { + // Ability has brought to foreground + console.log("[ttt] [DataShareTest] <> MainAbility onForeground") + } + + onBackground() { + // Ability has back to background + console.log("[ttt] [DataShareTest] <> MainAbility onBackground") + } +}; diff --git a/datashare/XTS/rdbServerDevice/entry/src/main/ets/pages/index.ets b/datashare/XTS/rdbServerDevice/entry/src/main/ets/pages/index.ets new file mode 100644 index 0000000..979ef1f --- /dev/null +++ b/datashare/XTS/rdbServerDevice/entry/src/main/ets/pages/index.ets @@ -0,0 +1,401 @@ +import dataSharePredicates from '@ohos.data.dataSharePredicates' + + + +@Entry +@Component +struct Index { + @State message: string = "Main thread message filed" + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text('DataShare Extension Ability Test') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> dataSharePredicates build begin'); + let da = new dataSharePredicates.DataSharePredicates(); + da.equalTo("name", "zhangsan"); + da.notEqualTo("name", "lisi"); + da.beginWrap(); + da.endWrap(); + da.or(); + da.and(); + da.contains("name", "zhang"); + da.beginsWith("name", "z"); + da.endsWith("name", "n"); + da.isNull("name"); + da.isNotNull("name"); + da.like("name", "zhang"); + da.unlike("name", "li"); + da.glob("name", "???"); + da.between("age", 18, 22); + da.notBetween("age", 18, 22); + da.greaterThan("age", 18); + da.lessThan("age", 22); + da.greaterThanOrEqualTo("age", 18); + da.lessThanOrEqualTo("age", 22); + da.orderByAsc("age"); + da.orderByDesc("age"); + da.distinct(); + da.limit(10, 5); + da.groupBy(["name", "age"]); + da.indexedBy("name"); + da.in("name", []); + da.notIn("name", []); + da.prefixKey("name"); + console.info('[ttt] [DataShareTest] <> dataSharePredicates = ' + JSON.stringify(da)); + console.info('[ttt] [DataShareTest] <> dataSharePredicates build end'); + }) + + Text(`${this.message}`) + .fontSize(30) + .height('15%') + .width('100%') + .textAlign(TextAlign.Center) + +// Row() { +// Button() { +// Text('ConnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick enter') +// this.message = 'ConnectServiceExtension onclick' +// globalThis.connectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick leave') +// }) +// +// Button() { +// Text('DisconnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick enter') +// this.message = 'DisconnectServiceExtension onclick' +// globalThis.disconnectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick leave') +// }) +// } + + Row() { + Button() { + Text('Connect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Connect onclick enter') + this.message = 'Connect onclick' + await globalThis.connectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Connect onclick leave') + }) + + Button() { + Text('Disconnect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Disconnect onclick enter') + this.message = 'Disconnect onclick' + await globalThis.disconnectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Disconnect onclick leave') + }) + } + + Row() { + Button() { + Text('On') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> On onclick enter') + this.message = '~ On onclick' + try { + await globalThis.on(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer on catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> On onclick leave') + }) + + Button() { + Text('Off') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Off onclick enter') + this.message = '~ Off onclick' + try { + await globalThis.off(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer Off catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> Off onclick leave') + }) + + Button() { + Text('OpenFile') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('30%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> OpenFile onclick enter') + this.message = 'OpenFile onclick' + let ret = await globalThis.openFile() + console.info('[ttt] [DataShareTest] <> OpenFile onclick ret = ' + ret); + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> OpenFile onclick leave') + }) + } + + Row() { + Button() { + Text('Query') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Query onclick enter') + this.message = 'Query onclick' + let ret = await globalThis.query() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Query onclick leave') + }) + + Button() { + Text('Insert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Insert onclick enter') + this.message = 'Insert onclick' + let ret = await globalThis.insert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Insert onclick leave') + }) + } + + Row() { + Button() { + Text('Update') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Update onclick enter') + this.message = 'Update onclick' + let ret = await globalThis.update() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Update onclick leave') + }) + + Button() { + Text('Delete') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Delete onclick enter') + this.message = 'Delete onclick' + let ret = await globalThis.delete() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Delete onclick leave') + }) + } + + Row() { + Button() { + Text('BatchInsert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> BatchInsert onclick enter') + this.message = 'BatchInsert onclick' + let ret = await globalThis.batchInsert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> BatchInsert onclick leave') + }) + + Button() { + Text('NotifyChange') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NotifyChange onclick enter') + this.message = 'NotifyChange onclick' + await globalThis.notifyChange() + console.info('[ttt] [DataShareTest] <> NotifyChange onclick leave') + }) + } + + Row() { + Button() { + Text('GetType') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetType onclick enter') + this.message = 'GetType onclick' + let ret = await globalThis.getType() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetType onclick leave') + }) + + Button() { + Text('GetFileTypes') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick enter') + this.message = 'GetFileTypes onclick' + let ret = await globalThis.getFileTypes() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick leave') + }) + } + + Row() { + Button() { + Text('NormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick enter') + this.message = 'NormalizeUri onclick' + let ret = await globalThis.normalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick leave') + }) + + Button() { + Text('DenormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick enter') + this.message = 'DenormalizeUri onclick' + let ret = await globalThis.denormalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick leave') + }) + } + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/entry/src/main/module.json5 b/datashare/XTS/rdbServerDevice/entry/src/main/module.json5 new file mode 100644 index 0000000..dbadcb1 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/entry/src/main/module.json5 @@ -0,0 +1,67 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "srcEntrance": "./ets/Application/AbilityStage.ts", + "description": "$string:phone_entry_dsc", + "mainElement": "MainAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "uiSyntax": "ets", + "abilities": [ + { + "name": "MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ts", + "description": "$string:phone_entry_main", + "icon": "$media:icon", + "label": "$string:entry_label", + "visible": true, +// "orientation": "portrait", + + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "startWindowIcon":"$media:icon", + "startWindowBackground": "$color:color_1" + } + ], + "extensionAbilities": [ + { + "srcEntrance": "./ets/DataShareExtAbility/DataShareExtAbility.ts", + "name": "DataShareExtAbility", + "icon": "$media:icon", + "description": "$string:description_datashareextability", + "type": "dataShare", + "uri": "datashare://com.samples.datasharetest.DataShare", + "visible": true + } + ], + "requestPermissions": [ + { + "name" : "ohos.permission.DISTRIBUTED_DATASYNC" + } + ] +// "requestPermissions": [ +// { +// "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" +// }, +// { +// "name": "ohos.permission.GET_BUNDLE_INFO" +// }, +// { +// "name": "ohos.permission.INSTALL_BUNDLE" +// } +// ] + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/datashare.json b/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/datashare.json new file mode 100644 index 0000000..c946d63 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/datashare.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "color_1", + "value": "#ff0000" + } + ] +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/string.json b/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..e1e9210 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/element/string.json @@ -0,0 +1,40 @@ +{ + "string": [ + { + "name": "phone_entry_dsc", + "value": "i am an entry for phone" + }, + { + "name": "phone_entry_main", + "value": "the phone entry ability" + }, + { + "name": "entry_label", + "value": "DataShareTest" + }, + { + "name": "form_description", + "value": "my form" + }, + { + "name": "serviceability_description", + "value": "my whether" + }, + { + "name": "description_application", + "value": "DataShareTest" + }, + { + "name": "app_name", + "value": "DataShareTest" + }, + { + "name": "description_datashareextability", + "value": "description_datashareextability" + }, + { + "name": "description_serviceability", + "value": "description_serviceability" + } + ] +} diff --git a/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/media/icon.png b/datashare/XTS/rdbServerDevice/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 2.1.2 < 3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "liftoff": { + "version": "4.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "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": "https://repo.huaweicloud.com/repository/npm/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "log4js": { + "version": "6.4.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stdout": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/mute-stdout/-/mute-stdout-1.0.0.tgz", + "integrity": "sha512-MaSQenn0f9oxIjtCufclpV00MuYTiHaXPbdcfPIM+quMqoa8cXywjHHx4LhhIAZlXqPWMdcUpYviajfmHtHRJw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://repo.huaweicloud.com/repository/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" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "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": "https://repo.huaweicloud.com/repository/npm/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-hrtime": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", + "integrity": "sha512-CU2l5CYUAptUYq/671ajexQfXuxJFwwg0n243Kdkx8bTjeenedsWgu8TGHPm03vLfNtk3aTXgySKPp3Usykudw==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "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": "https://repo.huaweicloud.com/repository/npm/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-package-path": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "streamroller": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/streamroller/-/streamroller-3.1.1.tgz", + "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", + "requires": { + "date-format": "^4.0.10", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/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": "https://repo.huaweicloud.com/repository/npm/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "7.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "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.1" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/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" + } + } + } +} diff --git a/datashare/XTS/rdbServerDevice/package.json b/datashare/XTS/rdbServerDevice/package.json new file mode 100644 index 0000000..718445b --- /dev/null +++ b/datashare/XTS/rdbServerDevice/package.json @@ -0,0 +1,19 @@ +{ + "license":"ISC", + "devDependencies":{}, + "name":"datasharetest", + "ohos":{ + "org":"huawei", + "directoryLevel":"project", + "buildTool":"hvigor" + }, + "description":"example description", + "repository":{}, + "version":"1.0.0", + "dependencies":{ + "@ohos/hypium":"1.0.1", + "@ohos/hvigor-ohos-plugin":"1.1.6", + "hypium":"^1.0.0", + "@ohos/hvigor":"1.1.6" + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/(1).gitignore b/datashare/XTS/rdbServerDevice/rdbServerDevice/(1).gitignore new file mode 100644 index 0000000..2981358 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/(1).gitignore @@ -0,0 +1,4 @@ +/node_modules +/local.properties +/.idea +**/build \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/.gitignore b/datashare/XTS/rdbServerDevice/rdbServerDevice/.gitignore new file mode 100644 index 0000000..2981358 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/local.properties +/.idea +**/build \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app(1).json5 b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app(1).json5 new file mode 100644 index 0000000..7f09ec2 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app(1).json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.samples.datasharetest", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app.json5 b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app.json5 new file mode 100644 index 0000000..7f09ec2 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.samples.datasharetest", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string(1).json b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string(1).json new file mode 100644 index 0000000..616c648 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string(1).json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "datasharetest" + } + ] +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string.json b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..616c648 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "datasharetest" + } + ] +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/media/app_icon(1).png b/datashare/XTS/rdbServerDevice/rdbServerDevice/AppScope/resources/base/media/app_icon(1).png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 DataShareExtAbility onCreate, want:' + want.abilityName); + console.log('[ttt] [DataShareTest] <> this.context:' + this.context); + result = this.context.cacheDir + '/datashare.txt' + console.info('[ttt] [DataAbilityTest] <> resultpath = ' + result); + rdb.getRdbStore(this.context, { + name: DB_NAME + }, 1, function (err, data) { + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, getRdbStore done err:' + JSON.stringify(err)); + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, getRdbStore done data:' + JSON.stringify(data)); + rdbStore = data; + rdbStore.executeSql(DDL_TBL_CREATE, [], function (err) { + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, executeSql done err:' + JSON.stringify(err)); + }); + rdbStore.setDistributedTables(["TBL00"], (err,data) => { + console.info("[ttt] [DataShareTest] <> setDistributedTables err = " + err); + console.info("[ttt] [DataShareTest] <> setDistributedTables data = " + data); + }); + callback(); + }); + } + + + async insert(uri, value, callback) { + console.info('[ttt] [DataShareTest] <> [insert] enter'); +// deviceManager.createDeviceManager(BUNDLE_NAME, (err, value) => { +// if (err) { +// console.info("[ttt] [DataShareTest] <> [createDeviceManager] err = " + err); +// } +// devManager = value; +// console.info('[ttt] [DataShareTest] <> [createDeviceManager] enter'); +// // get deviceIds +// if (devManager != null) { +// var devices = devManager.getTrustedDeviceListSync(); +// for (var i = 0; i < devices.length; i++) { +// deviceIds[i] = devices[i].deviceId; +// } +// } +// console.log("[ttt] [DataShareTest] <> deviceIds :" + deviceIds); +// }); + + + if (value == null) { + console.info('[ttt] [DataShareTest] <> [insert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [insert] value = ' + value); + console.info('[ttt] [DataShareTest] <> [insert] value = ' + JSON.stringify(value)); + await rdbStore.insert(TBL_NAME, value, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [insert] callback ret:' + ret); + if (callback != undefined) { + callback(err, ret); + } + }); + + dataShare.createDataShareHelper(this.context, dseUri, (err,data)=>{ + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + dsHelperr); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + data.notifyChange(dseUri,(err,data) => { + console.log("[ttt] [DataShareClientTest] <> notifyChange = " + data); + console.log("[ttt] [DataShareClientTest] <> notifyChange json= " + JSON.stringify(data)); + }) + }); + } + + update(uri, predicates, value, callback) { + console.info('[ttt] [DataShareTest] <> [update] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [update] invalid predicates'); + return; + } + console.info('[ttt] [DataShareTest] <> [update] values = ' + value); + console.info('[ttt] [DataShareTest] <> [update] values = ' + JSON.stringify(value)); + console.info('[ttt] [DataShareTest] <> [update] predicates = ' + predicates); + console.info('[ttt] [DataShareTest] <> [update] predicates = ' + JSON.stringify(predicates)); + try { + rdbStore.update(TBL_NAME,value, predicates, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [update] callback ret:' + ret); + console.info('[ttt] [DataShareTest] <> [update] callback err:' + err); + if (callback != undefined) { + callback(err, ret); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [update] error' + err); + } + console.info('[ttt] [DataShareTest] <> [update] leave'); + } + + delete(uri, predicates, callback) { + console.info('[ttt] [DataShareTest] <> [delete] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [delete] invalid predicates'); + return; + } + console.info('[ttt] [DataShareTest] <> [delete] predicates = ' + predicates); + console.info('[ttt] [DataShareTest] <> [delete] predicates = ' + JSON.stringify(predicates)); + try { + rdbStore.delete(TBL_NAME,predicates, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [delete] ret:' + ret); + if (callback != undefined) { + callback(err, ret); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [delete] error' + err); + } + console.info('[ttt] [DataShareTest] <> [delete] leave'); + } + + query(uri, predicates, columns, callback) { + let getTableName; + console.info('[ttt] [DataShareTest] <> [query] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [query] invalid predicates'); + } + console.info('[ttt] [DataShareTest] <> [query] values = ' + JSON.stringify(columns)); + + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[0] = ' + uri.split('?')[0]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[1] = ' + uri.split('?')[1]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[2] = ' + uri.split('?')[2]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[3] = ' + uri.split('?')[3]); + + let idString = uri.split('?')[1]; + + if(idString == undefined) { + try { + // let da = new dataSharePredicates.DataSharePredicates(); + // da.notEqualTo("name", "ert"); + // da.limit(1,0); + rdbStore.query(TBL_NAME, predicates, columns, function (err, resultSet) { + console.info('[ttt] [DataShareTest] <> [query] ret: ' + resultSet); + if (resultSet != undefined) { + console.info('[ttt] [DataShareTest] <> [query] resultSet.rowCount: ' + resultSet.rowCount); + } + if (callback != undefined) { + callback(err, resultSet); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [query] error' + err); + } + } else { + let id = idString.split('=')[1]; + deviceIds[0] = id; + console.info('[ttt] [DataShareTest] <> [query] idString.split("=")[1] = ' + idString.split('=')[1]); + let rdbPredicate = new rdb.RdbPredicates('TBL00') + rdbPredicate.inDevices(deviceIds); + console.info("[ttt] [DataShareTest] <> [sync] begin"); + rdbStore.sync(rdb.SyncMode.SYNC_MODE_PULL,rdbPredicate,(err,data) => { + if(err) { + console.info("[ttt] [DataShareTest] <> [sync] err = " + err); + } + console.info("[ttt] [DataShareTest] <> [sync] data = " + JSON.stringify(data)); + rdbStore.obtainDistributedTableName(deviceIds[0], TBL_NAME, (err,data) => { + if(err) { + console.info("[ttt] [DataShareTest] <> [obtainDistributedTableName] err = " + err); + } + getTableName = data; + console.info("[ttt] [DataShareTest] <> [sync] getTableName = " + data); + try { + // let da = new dataSharePredicates.DataSharePredicates(); + // da.notEqualTo("name", "ert"); + // da.limit(1,0); + rdbStore.query(getTableName, predicates, ["*"], function (err, resultSet) { + console.info('[ttt] [DataShareTest] <> [query] ret: ' + resultSet); + if (resultSet != undefined) { + console.info('[ttt] [DataShareTest] <> [query] resultSet.rowCount: ' + resultSet.rowCount); + } + if (callback != undefined) { + callback(err, resultSet); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [query] error' + err); + } + }) + }) + } + console.info('[ttt] [DataShareTest] <> [query] leave'); + } + + + batchInsert(uri: string, valueBuckets, callback) { + console.info('[ttt] [DataShareTest] <> [batchInsert] enter'); + if (valueBuckets == null || valueBuckets.length == undefined) { + console.info('[ttt] [DataShareTest] <> [batchInsert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [batchInsert] valueBuckets.length:' + valueBuckets.length); + let resultNum = valueBuckets.length + rdbStore.batchInsert(TBL_NAME, valueBuckets, (err, ret) => { + if(err) { + console.info('[ttt] [DataShareTest] <> [batchInsert] callback err:' + err); + } + console.info('[ttt] [DataShareTest] <> [batchInsert] callback ret:' + ret); + if (callback != undefined) { + callback(err, resultNum); + console.info('[ttt] [DataShareTest] <> [batchInsert] callback begin'); + } + }) + console.info('[ttt] [DataShareTest] <> [batchInsert] leave'); + } + + getType(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [getType] enter'); + let ret = "image"; + console.info('[ttt] [DataShareTest] <> [getType] leave, ret:' + ret); + let err = {"code":0}; + callback(err,ret); + return ret; + } + + getFileTypes(uri: string, mimeTypeFilter: string, callback) { + console.info('[ttt] [DataShareTest] <> [getFileTypes] enter'); + let ret = new Array("type01", "type02", "type03"); + console.info('[ttt] [DataShareTest] <> [getFileTypes] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } + + openFile(uri: string, mode: string, callback) { + console.info('[ttt] [DataAbilityTest] <> DataAbility openFile in'); + fileIo.open(result, 0o2 | 0o100, 0o666, function(err, fd) { + if(err) { + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + err); + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + JSON.stringify(err)); + } + console.log('[ttt] [DataAbilityTest] <> EtsFileIo fd =' + fd); + let num = fileIo.writeSync(fd, "this is a interesting test of DataAbility from the Great RPF"); + console.info("[ttt] [DataAbillityTest] <> WriteSync length = " + num); + console.info("[ttt] [DataAbillityTest] <> WriteSync fd = " + fd); + callback(err,fd); + }) + } + + normalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter'); + let ret = "normalize+" + uri; + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave, ret:' + ret); + let err = {"code":2}; + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + callback(err,ret); + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + } + + denormalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [denormalizeUri] enter'); + let ret = "denormalize+" + uri; + console.info('[ttt] [DataShareTest] <> [denormalizeUri] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } +}; \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts new file mode 100644 index 0000000..d60a08a --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts @@ -0,0 +1,287 @@ +import Extension from '@ohos.application.DataShareExtensionAbility' +import distributedData from '@ohos.data.distributedData'; +import dataAbility from '@ohos.data.dataAbility'; +import rdb from '@ohos.data.rdb'; +import hilog from '@ohos.hilog'; +import featureAbility from '@ohos.ability.featureAbility' +import fileIo from '@ohos.fileio' +import deviceManager from '@ohos.distributedHardware.deviceManager'; +import dataShare from '@ohos.data.dataShare' + +let DB_NAME = "DB00.db"; +let TBL_NAME = "TBL00"; +let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " ++ TBL_NAME ++ " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +const BUNDLE_NAME = 'com.samples.datasharetest'; + +let dseUri = ("datashare:///com.samples.datasharetest.DataShare"); + + +let rdbStore; +let result; +let deviceIds = []; +let dsHelperr; + +export default class DataShareExtAbility extends Extension { + private rdbStore_; + private kvdbStore_; + + onCreate(want, callback) { + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, want:' + want.abilityName); + console.log('[ttt] [DataShareTest] <> this.context:' + this.context); + result = this.context.cacheDir + '/datashare.txt' + console.info('[ttt] [DataAbilityTest] <> resultpath = ' + result); + rdb.getRdbStore(this.context, { + name: DB_NAME + }, 1, function (err, data) { + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, getRdbStore done err:' + JSON.stringify(err)); + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, getRdbStore done data:' + JSON.stringify(data)); + rdbStore = data; + rdbStore.executeSql(DDL_TBL_CREATE, [], function (err) { + console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, executeSql done err:' + JSON.stringify(err)); + }); + rdbStore.setDistributedTables(["TBL00"], (err,data) => { + console.info("[ttt] [DataShareTest] <> setDistributedTables err = " + err); + console.info("[ttt] [DataShareTest] <> setDistributedTables data = " + data); + }); + callback(); + }); + } + + + async insert(uri, value, callback) { + console.info('[ttt] [DataShareTest] <> [insert] enter'); +// deviceManager.createDeviceManager(BUNDLE_NAME, (err, value) => { +// if (err) { +// console.info("[ttt] [DataShareTest] <> [createDeviceManager] err = " + err); +// } +// devManager = value; +// console.info('[ttt] [DataShareTest] <> [createDeviceManager] enter'); +// // get deviceIds +// if (devManager != null) { +// var devices = devManager.getTrustedDeviceListSync(); +// for (var i = 0; i < devices.length; i++) { +// deviceIds[i] = devices[i].deviceId; +// } +// } +// console.log("[ttt] [DataShareTest] <> deviceIds :" + deviceIds); +// }); + + + if (value == null) { + console.info('[ttt] [DataShareTest] <> [insert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [insert] value = ' + value); + console.info('[ttt] [DataShareTest] <> [insert] value = ' + JSON.stringify(value)); + await rdbStore.insert(TBL_NAME, value, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [insert] callback ret:' + ret); + if (callback != undefined) { + callback(err, ret); + } + }); + + dataShare.createDataShareHelper(this.context, dseUri, (err,data)=>{ + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + dsHelperr); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + data.notifyChange(dseUri,(err,data) => { + console.log("[ttt] [DataShareClientTest] <> notifyChange = " + data); + console.log("[ttt] [DataShareClientTest] <> notifyChange json= " + JSON.stringify(data)); + }) + }); + } + + update(uri, predicates, value, callback) { + console.info('[ttt] [DataShareTest] <> [update] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [update] invalid predicates'); + return; + } + console.info('[ttt] [DataShareTest] <> [update] values = ' + value); + console.info('[ttt] [DataShareTest] <> [update] values = ' + JSON.stringify(value)); + console.info('[ttt] [DataShareTest] <> [update] predicates = ' + predicates); + console.info('[ttt] [DataShareTest] <> [update] predicates = ' + JSON.stringify(predicates)); + try { + rdbStore.update(TBL_NAME,value, predicates, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [update] callback ret:' + ret); + console.info('[ttt] [DataShareTest] <> [update] callback err:' + err); + if (callback != undefined) { + callback(err, ret); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [update] error' + err); + } + console.info('[ttt] [DataShareTest] <> [update] leave'); + } + + delete(uri, predicates, callback) { + console.info('[ttt] [DataShareTest] <> [delete] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [delete] invalid predicates'); + return; + } + console.info('[ttt] [DataShareTest] <> [delete] predicates = ' + predicates); + console.info('[ttt] [DataShareTest] <> [delete] predicates = ' + JSON.stringify(predicates)); + try { + rdbStore.delete(TBL_NAME,predicates, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [delete] ret:' + ret); + if (callback != undefined) { + callback(err, ret); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [delete] error' + err); + } + console.info('[ttt] [DataShareTest] <> [delete] leave'); + } + + query(uri, predicates, columns, callback) { + let getTableName; + console.info('[ttt] [DataShareTest] <> [query] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [query] invalid predicates'); + } + console.info('[ttt] [DataShareTest] <> [query] values = ' + JSON.stringify(columns)); + + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[0] = ' + uri.split('?')[0]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[1] = ' + uri.split('?')[1]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[2] = ' + uri.split('?')[2]); + console.info('[ttt] [DataShareTest] <> [query] uri.split("?")[3] = ' + uri.split('?')[3]); + + let idString = uri.split('?')[1]; + + if(idString == undefined) { + try { + // let da = new dataSharePredicates.DataSharePredicates(); + // da.notEqualTo("name", "ert"); + // da.limit(1,0); + rdbStore.query(TBL_NAME, predicates, columns, function (err, resultSet) { + console.info('[ttt] [DataShareTest] <> [query] ret: ' + resultSet); + if (resultSet != undefined) { + console.info('[ttt] [DataShareTest] <> [query] resultSet.rowCount: ' + resultSet.rowCount); + } + if (callback != undefined) { + callback(err, resultSet); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [query] error' + err); + } + } else { + let id = idString.split('=')[1]; + deviceIds[0] = id; + console.info('[ttt] [DataShareTest] <> [query] idString.split("=")[1] = ' + idString.split('=')[1]); + let rdbPredicate = new rdb.RdbPredicates('TBL00') + rdbPredicate.inDevices(deviceIds); + console.info("[ttt] [DataShareTest] <> [sync] begin"); + rdbStore.sync(rdb.SyncMode.SYNC_MODE_PULL,rdbPredicate,(err,data) => { + if(err) { + console.info("[ttt] [DataShareTest] <> [sync] err = " + err); + } + console.info("[ttt] [DataShareTest] <> [sync] data = " + JSON.stringify(data)); + rdbStore.obtainDistributedTableName(deviceIds[0], TBL_NAME, (err,data) => { + if(err) { + console.info("[ttt] [DataShareTest] <> [obtainDistributedTableName] err = " + err); + } + getTableName = data; + console.info("[ttt] [DataShareTest] <> [sync] getTableName = " + data); + try { + // let da = new dataSharePredicates.DataSharePredicates(); + // da.notEqualTo("name", "ert"); + // da.limit(1,0); + rdbStore.query(getTableName, predicates, ["*"], function (err, resultSet) { + console.info('[ttt] [DataShareTest] <> [query] ret: ' + resultSet); + if (resultSet != undefined) { + console.info('[ttt] [DataShareTest] <> [query] resultSet.rowCount: ' + resultSet.rowCount); + } + if (callback != undefined) { + callback(err, resultSet); + } + }); + } catch (err) { + console.error('[ttt] [DataShareTest] <> [query] error' + err); + } + }) + }) + } + console.info('[ttt] [DataShareTest] <> [query] leave'); + } + + + batchInsert(uri: string, valueBuckets, callback) { + console.info('[ttt] [DataShareTest] <> [batchInsert] enter'); + if (valueBuckets == null || valueBuckets.length == undefined) { + console.info('[ttt] [DataShareTest] <> [batchInsert] invalid valueBuckets'); + return; + } + console.info('[ttt] [DataShareTest] <> [batchInsert] valueBuckets.length:' + valueBuckets.length); + let resultNum = valueBuckets.length + rdbStore.batchInsert(TBL_NAME, valueBuckets, (err, ret) => { + if(err) { + console.info('[ttt] [DataShareTest] <> [batchInsert] callback err:' + err); + } + console.info('[ttt] [DataShareTest] <> [batchInsert] callback ret:' + ret); + if (callback != undefined) { + callback(err, resultNum); + console.info('[ttt] [DataShareTest] <> [batchInsert] callback begin'); + } + }) + console.info('[ttt] [DataShareTest] <> [batchInsert] leave'); + } + + getType(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [getType] enter'); + let ret = "image"; + console.info('[ttt] [DataShareTest] <> [getType] leave, ret:' + ret); + let err = {"code":0}; + callback(err,ret); + return ret; + } + + getFileTypes(uri: string, mimeTypeFilter: string, callback) { + console.info('[ttt] [DataShareTest] <> [getFileTypes] enter'); + let ret = new Array("type01", "type02", "type03"); + console.info('[ttt] [DataShareTest] <> [getFileTypes] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } + + openFile(uri: string, mode: string, callback) { + console.info('[ttt] [DataAbilityTest] <> DataAbility openFile in'); + fileIo.open(result, 0o2 | 0o100, 0o666, function(err, fd) { + if(err) { + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + err); + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + JSON.stringify(err)); + } + console.log('[ttt] [DataAbilityTest] <> EtsFileIo fd =' + fd); + let num = fileIo.writeSync(fd, "this is a interesting test of DataAbility from the Great RPF"); + console.info("[ttt] [DataAbillityTest] <> WriteSync length = " + num); + console.info("[ttt] [DataAbillityTest] <> WriteSync fd = " + fd); + callback(err,fd); + }) + } + + normalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter'); + let ret = "normalize+" + uri; + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave, ret:' + ret); + let err = {"code":2}; + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + callback(err,ret); + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + } + + denormalizeUri(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [denormalizeUri] enter'); + let ret = "denormalize+" + uri; + console.info('[ttt] [DataShareTest] <> [denormalizeUri] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } +}; \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility(1).ts b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility(1).ts new file mode 100644 index 0000000..60610e1 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility(1).ts @@ -0,0 +1,448 @@ +import Ability from '@ohos.application.Ability' +import ability_particleAbility from '@ohos.ability.particleAbility' +import dataSharePredicates from '@ohos.data.dataSharePredicates' +import dataShare from '@ohos.data.dataShare' +import featureAbility from '@ohos.ability.featureAbility' + + +import dataAbility from '@ohos.data.dataAbility' +import rdb from '@ohos.data.rdb'; + +import rpc from "@ohos.rpc"; + +var seConnect = { + onConnect:function (elementName, proxy) { + console.log("[ttt] [DataShareTest] <> seConnect onConnect called."); + console.log("[ttt] [DataShareTest] <> seConnect onConnect elementName = " + elementName); + console.log("[ttt] [DataShareTest] <> seConnect onConnect proxy = " + proxy); + let data = rpc.MessageParcel.create(); + let reply = rpc.MessageParcel.create(); + let option = new rpc.MessageOption(); + data.writeInterfaceToken("connect-test"); + data.writeInt(111); + + console.log("[ttt] [DataShareTest] <> seConnect onConnect sendRequest."); + proxy.sendRequest(1, data, reply, option) + .then(function (result) { + if (result.errCode === 0) { + // let msg = reply.readString(); + let msg = result.reply.readInt(); + console.log("[ttt] [DataShareTest] <> seConnect reply msg: " + msg); + } else { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest failed, errCode: " + result.errCode); + } + // callback没有返回值,默认返回undefined + }).catch(function (e) { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest got exception: " + e); + }).finally (async () => { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest ends, reclaim parcel"); + data.reclaim(); + reply.reclaim(); + }) + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareTest] <> seConnect onDisconnect"); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareTest] <> seConnect onFailed"); + } +}; + +let dseProxy = 0; +let dseUri = ("datashare:///com.samples.datasharetest.DataShare"); + +var dseConnect = { + onConnect:function (elementName, proxy) { + console.log("[ttt] [DataShareTest] <> dseConnect onConnect called."); + // console.log("[ttt] [DataShareTest] <> dseConnect onConnect elementName = " + elementName); + // console.log("[ttt] [DataShareTest] <> dseConnect onConnect proxy = " + proxy); + dseProxy = proxy; + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareTest] <> dseConnect onDisconnect, elementName:" + elementName); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareTest] <> dseConnect onFailed, code:" + code); + } +}; + +let seConnectionId = -1; +let dseConnectionId = -1; + +let seWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "ServiceExtAbility", +} + +let dseWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "DataShareExtAbility", +} + +export function onCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer on callback ****"); +} + +export function offCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer off callback ****"); +} + +export default class MainAbility extends Ability { + onCreate(want, launchParam) { + // Ability is creating, initialize resources for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onCreate") + globalThis.abilityWant = want; + } + + onDestroy() { + // Ability is destroying, release resources for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onWindowStageCreate") + globalThis.abilityContext = this.context; + let context = this.context; + + context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], function (err,result) { + console.info("[ttt] [DataShareTest] <> permission err = " + JSON.stringify(err)) + console.info("[ttt] [DataShareTest] <> permission result = " + JSON.stringify(result)) + }) +// console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.stageMode:' + context.stageMode); +// console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.bundleName:' + context.bundleName); +// console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.name:' + context.name); + globalThis.connectServiceExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> connectServiceExtAbility begin"); + seConnectionId = await context.connectAbility(seWant, seConnect); + console.log("[ttt] [DataShareTest] <> connectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + globalThis.disconnectServiceExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> disconnectServiceExtAbility begin"); + await context.disconnectAbility(seConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> startAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> startAbility failed:" + JSON.stringify(error)); + }); + console.log("[ttt] [DataShareTest] <> disconnectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + + + globalThis.connectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility begin"); +// globalThis.dsHelper = await dataShare.createDataShareHelper(this.context,dseUri); + + await dataShare.createDataShareHelper(globalThis.abilityContext, dseUri, (err,data)=>{ + globalThis.dsHelper = data; + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + }); + +// await dataShare.createDataShareHelper(this.context,dseUri).then((data)=>{ +// globalThis.dsHelper = data; +// console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); +// console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); +// }).catch((err)=>{ +// console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); +// console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); +// }) + dseConnectionId = await context.connectAbility(dseWant, dseConnect); +// console.log("[ttt] [DataShareTest] <> ----- 5 -----, globalThis.dsHelper = " + globalThis.dsHelper); +// console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.disconnectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> disconnectDataShareExtAbility begin"); + await context.disconnectAbility(dseConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> disconnectDataShareExtAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> disconnectDataShareExtAbility failed:" + JSON.stringify(error)); + }); + globalThis.dsHelper = null; + console.log("[ttt] [DataShareTest] <> disconnectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.on = (async () => { + console.log("[ttt] [DataShareTest] <> on begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> on end, DSHelper is null"); + return; + } + await globalThis.dsHelper.on("dataChange", dseUri, onCallback); + console.log("[ttt] [DataShareTest] <> on end"); + }) + + globalThis.off = (async () => { + console.log("[ttt] [DataShareTest] <> off begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> off end, DSHelper is null"); + return; + } + await globalThis.dsHelper.off("dataChange", dseUri); + await globalThis.dsHelper.off("dataChange", dseUri, offCallback); + console.log("[ttt] [DataShareTest] <> off end"); + }) + + globalThis.query = (async () => { + console.log("[ttt] [DataShareTest] <> query begin"); + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } + let count = 0; + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> query end, DSHelper is null"); + return; + } + da.notEqualTo("name", "wsx"); + let result = await globalThis.dsHelper.query(dseUri, da, ["*"], (err,resultSet)=> { + if (err) { + console.error("[ttt] [DataShareTest] <> query err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> query data:" + resultSet); + console.log("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.log("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + } else { + console.log("[ttt] [DataShareTest] <> query data:" + resultSet); + console.log("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.log("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + let gotofirstrow = resultSet.goToFirstRow(); + console.log("[ttt] [DataShareTest] <> query gotofirstrow:" + gotofirstrow); + let getString = resultSet.getString(1) + console.log("[ttt] [DataShareTest] <> query getString:" + getString); + } + }); + if (result != undefined) { + count = result.rowCount; + } + console.log("[ttt] [DataShareTest] <> query end, count:" + count); + return count; + }) + + globalThis.insert = (async () => { + + console.log("[ttt] [DataShareTest] <> insert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> insert end, DSHelper is null"); + return; + } +// let vb = {"age": 21} +// +// let v8Arr = []; +// let ar = new Uint8Array([1,2,3,4,5,6]); +// let arr = new Uint8Array([4,5,6,7]); +// let vb1 = {"key":ar,"value":arr} +// v8Arr.push(vb1); + let vb = {"name":"rpf", "age": 23, "isStudent": false, "Binary": new Uint8Array([1,2,3])}; + + console.log("[ttt] [DataShareTest] <> insert vb:" + JSON.stringify(vb)); + let ret = await globalThis.dsHelper.insert(dseUri, vb, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> insert err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> insert data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> insert data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> insert end, ret:" + ret); + return ret; + }) + + globalThis.update = (async () => { + console.log("[ttt] [DataShareTest] <> update begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> update end, DSHelper is null"); + return; + } + console.log("[ttt] [DataShareTest] <> update begin RPF666"); + let da = new dataSharePredicates.DataSharePredicates(); + console.log("[ttt] [DataShareTest] <> update begin RPF777"); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or u" + + "ndefined"); + return; + } +// da.equalTo("name", "ZhangSan"); + let ret = await globalThis.dsHelper.update(dseUri, da, {"age": 31}, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> update err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> update data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> update data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> update end, result:" + ret); + return ret; + }) + + globalThis.delete = (async () => { + console.log("[ttt] [DataShareTest] <> delete begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> delete end, DSHelper is null"); + return; + } + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } +// da.equalTo("name", "ZhangSan"); + let ret = globalThis.dsHelper.delete(dseUri, da, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> delete err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> delete data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> delete data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> delete end, result:" + ret); + return ret; + }) + + globalThis.batchInsert = (async () => { + console.log("[ttt] [DataShareTest] <> batchInsert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> batchInsert end, DSHelper is null"); + return; + } + let ar = new Uint8Array([1,2,3,4,5,6]); + let arr = new Uint8Array([4,5,6,7]); + let people = new Array( + {"name": "LiSi", "age": 41, "Binary": ar}, + {"name": "WangWu", "age": 21, "Binary": arr}, + {"name": "ZhaoLiu", "age": 61, "Binary": arr}); +// let ar = new Uint8Array([1,2,3,4,5,6]); +// let arr = new Uint8Array([4,5,6,7]); +// let v8Arr = []; +// let vb = {"key":ar,"jii":arr,"value":arr,"njj":arr}; +// v8Arr.push(vb) + let ret = await globalThis.dsHelper.batchInsert(dseUri, people); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> batchInsert end, result:" + ret); + return ret; + }) + + globalThis.notifyChange = (async () => { + console.log("[ttt] [DataShareTest] <> notifyChange begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> notifyChange end, DSHelper is null"); + return; + } + await globalThis.dsHelper.notifyChange(dseUri); + console.log("[ttt] [DataShareTest] <> notifyChange end"); + }) + + globalThis.openFile = (async () => { + console.log("[ttt] [DataShareTest] <> openFile begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> openFile end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.openFile(dseUri, "rwt"); + console.log("[ttt] [DataShareTest] <> openFile end, result:" + result); + return result; + }) + + globalThis.getType = (async () => { + console.log("[ttt] [DataShareTest] <> getType begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> getType end, DSHelper is null"); + return; + } + let result; + globalThis.dsHelper.getType(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + console.log("[ttt] [DataShareTest] <> getType end, result:" + result); + return result; + }) + + globalThis.getFileTypes = (async () => { + console.log("[ttt] [DataShareTest] <> getFileTypes begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> getFileTypes end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.getFileTypes(dseUri, "image/*",(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.normalizeUri = (async () => { + console.log("[ttt] [DataShareTest] <> normalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> normalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.normalizeUri(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> normalizeUri err, err:" + JSON.stringify(err)); +// console.log("[ttt] [DataShareTest] <> getType end, data:" + JSON.stringify(data)); +// result = data; + }else{ + console.log("[ttt] [DataShareTest] <> normalizeUri end, data:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.denormalizeUri = (async () => { + console.log("[ttt] [DataShareTest] <> denormalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> denormalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.denormalizeUri(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> denormalizeUri err, err:" + JSON.stringify(err)); +// console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); +// result = data; + }else{ + console.log("[ttt] [DataShareTest] <> denormalizeUri end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + windowStage.setUIContent(this.context, "pages/index", null) + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + console.log("[ttt] [DataShareTest] <> MainAbility onWindowStageDestroy") + } + + onForeground() { + // Ability has brought to foreground + console.log("[ttt] [DataShareTest] <> MainAbility onForeground") + } + + onBackground() { + // Ability has back to background + console.log("[ttt] [DataShareTest] <> MainAbility onBackground") + } +}; diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts new file mode 100644 index 0000000..60610e1 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/MainAbility/MainAbility.ts @@ -0,0 +1,448 @@ +import Ability from '@ohos.application.Ability' +import ability_particleAbility from '@ohos.ability.particleAbility' +import dataSharePredicates from '@ohos.data.dataSharePredicates' +import dataShare from '@ohos.data.dataShare' +import featureAbility from '@ohos.ability.featureAbility' + + +import dataAbility from '@ohos.data.dataAbility' +import rdb from '@ohos.data.rdb'; + +import rpc from "@ohos.rpc"; + +var seConnect = { + onConnect:function (elementName, proxy) { + console.log("[ttt] [DataShareTest] <> seConnect onConnect called."); + console.log("[ttt] [DataShareTest] <> seConnect onConnect elementName = " + elementName); + console.log("[ttt] [DataShareTest] <> seConnect onConnect proxy = " + proxy); + let data = rpc.MessageParcel.create(); + let reply = rpc.MessageParcel.create(); + let option = new rpc.MessageOption(); + data.writeInterfaceToken("connect-test"); + data.writeInt(111); + + console.log("[ttt] [DataShareTest] <> seConnect onConnect sendRequest."); + proxy.sendRequest(1, data, reply, option) + .then(function (result) { + if (result.errCode === 0) { + // let msg = reply.readString(); + let msg = result.reply.readInt(); + console.log("[ttt] [DataShareTest] <> seConnect reply msg: " + msg); + } else { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest failed, errCode: " + result.errCode); + } + // callback没有返回值,默认返回undefined + }).catch(function (e) { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest got exception: " + e); + }).finally (async () => { + console.log("[ttt] [DataShareTest] <> seConnect sendRequest ends, reclaim parcel"); + data.reclaim(); + reply.reclaim(); + }) + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareTest] <> seConnect onDisconnect"); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareTest] <> seConnect onFailed"); + } +}; + +let dseProxy = 0; +let dseUri = ("datashare:///com.samples.datasharetest.DataShare"); + +var dseConnect = { + onConnect:function (elementName, proxy) { + console.log("[ttt] [DataShareTest] <> dseConnect onConnect called."); + // console.log("[ttt] [DataShareTest] <> dseConnect onConnect elementName = " + elementName); + // console.log("[ttt] [DataShareTest] <> dseConnect onConnect proxy = " + proxy); + dseProxy = proxy; + }, + onDisconnect:function (elementName) { + console.log("[ttt] [DataShareTest] <> dseConnect onDisconnect, elementName:" + elementName); + }, + onFailed:function (code) { + console.log("[ttt] [DataShareTest] <> dseConnect onFailed, code:" + code); + } +}; + +let seConnectionId = -1; +let dseConnectionId = -1; + +let seWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "ServiceExtAbility", +} + +let dseWant = { + "bundleName": "com.samples.datasharetest", + "abilityName": "DataShareExtAbility", +} + +export function onCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer on callback ****"); +} + +export function offCallback() { + console.info("[ttt] [DataShareTest] <> **** Observer off callback ****"); +} + +export default class MainAbility extends Ability { + onCreate(want, launchParam) { + // Ability is creating, initialize resources for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onCreate") + globalThis.abilityWant = want; + } + + onDestroy() { + // Ability is destroying, release resources for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log("[ttt] [DataShareTest] <> MainAbility onWindowStageCreate") + globalThis.abilityContext = this.context; + let context = this.context; + + context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], function (err,result) { + console.info("[ttt] [DataShareTest] <> permission err = " + JSON.stringify(err)) + console.info("[ttt] [DataShareTest] <> permission result = " + JSON.stringify(result)) + }) +// console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.stageMode:' + context.stageMode); +// console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.bundleName:' + context.bundleName); +// console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.name:' + context.name); + globalThis.connectServiceExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> connectServiceExtAbility begin"); + seConnectionId = await context.connectAbility(seWant, seConnect); + console.log("[ttt] [DataShareTest] <> connectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + globalThis.disconnectServiceExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> disconnectServiceExtAbility begin"); + await context.disconnectAbility(seConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> startAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> startAbility failed:" + JSON.stringify(error)); + }); + console.log("[ttt] [DataShareTest] <> disconnectServiceExtAbility end, seConnectionId:" + seConnectionId); + }) + + + + globalThis.connectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility begin"); +// globalThis.dsHelper = await dataShare.createDataShareHelper(this.context,dseUri); + + await dataShare.createDataShareHelper(globalThis.abilityContext, dseUri, (err,data)=>{ + globalThis.dsHelper = data; + console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); + console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); + console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); + console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); + }); + +// await dataShare.createDataShareHelper(this.context,dseUri).then((data)=>{ +// globalThis.dsHelper = data; +// console.info("[ttt] [DataShareTest] <> ----- 1 -----, globalThis.dsHelper = " + globalThis.dsHelper); +// console.info("[ttt] [DataShareTest] <> ----- 2 -----, data = " + data); +// }).catch((err)=>{ +// console.info("[ttt] [DataShareTest] <> ----- 3 -----, err = " + err); +// console.info("[ttt] [DataShareTest] <> ----- 4 -----, JSON.stringify(err) = " + JSON.stringify(err)); +// }) + dseConnectionId = await context.connectAbility(dseWant, dseConnect); +// console.log("[ttt] [DataShareTest] <> ----- 5 -----, globalThis.dsHelper = " + globalThis.dsHelper); +// console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.disconnectDataShareExtAbility = (async () => { + console.log("[ttt] [DataShareTest] <> disconnectDataShareExtAbility begin"); + await context.disconnectAbility(dseConnectionId).then((data) => { + console.info("[ttt] [DataShareTest] <> disconnectDataShareExtAbility success:" + JSON.stringify(data)); + }).catch((error) => { + console.error("[ttt] [DataShareTest] <> disconnectDataShareExtAbility failed:" + JSON.stringify(error)); + }); + globalThis.dsHelper = null; + console.log("[ttt] [DataShareTest] <> disconnectDataShareExtAbility end, dseConnectionId:" + dseConnectionId); + }) + + globalThis.on = (async () => { + console.log("[ttt] [DataShareTest] <> on begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> on end, DSHelper is null"); + return; + } + await globalThis.dsHelper.on("dataChange", dseUri, onCallback); + console.log("[ttt] [DataShareTest] <> on end"); + }) + + globalThis.off = (async () => { + console.log("[ttt] [DataShareTest] <> off begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> off end, DSHelper is null"); + return; + } + await globalThis.dsHelper.off("dataChange", dseUri); + await globalThis.dsHelper.off("dataChange", dseUri, offCallback); + console.log("[ttt] [DataShareTest] <> off end"); + }) + + globalThis.query = (async () => { + console.log("[ttt] [DataShareTest] <> query begin"); + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } + let count = 0; + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> query end, DSHelper is null"); + return; + } + da.notEqualTo("name", "wsx"); + let result = await globalThis.dsHelper.query(dseUri, da, ["*"], (err,resultSet)=> { + if (err) { + console.error("[ttt] [DataShareTest] <> query err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> query data:" + resultSet); + console.log("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.log("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + } else { + console.log("[ttt] [DataShareTest] <> query data:" + resultSet); + console.log("[ttt] [DataShareTest] <> query data.rowCount:" + resultSet.rowCount); + console.log("[ttt] [DataShareTest] <> query data.columnCount:" + resultSet.columnCount); + let gotofirstrow = resultSet.goToFirstRow(); + console.log("[ttt] [DataShareTest] <> query gotofirstrow:" + gotofirstrow); + let getString = resultSet.getString(1) + console.log("[ttt] [DataShareTest] <> query getString:" + getString); + } + }); + if (result != undefined) { + count = result.rowCount; + } + console.log("[ttt] [DataShareTest] <> query end, count:" + count); + return count; + }) + + globalThis.insert = (async () => { + + console.log("[ttt] [DataShareTest] <> insert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> insert end, DSHelper is null"); + return; + } +// let vb = {"age": 21} +// +// let v8Arr = []; +// let ar = new Uint8Array([1,2,3,4,5,6]); +// let arr = new Uint8Array([4,5,6,7]); +// let vb1 = {"key":ar,"value":arr} +// v8Arr.push(vb1); + let vb = {"name":"rpf", "age": 23, "isStudent": false, "Binary": new Uint8Array([1,2,3])}; + + console.log("[ttt] [DataShareTest] <> insert vb:" + JSON.stringify(vb)); + let ret = await globalThis.dsHelper.insert(dseUri, vb, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> insert err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> insert data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> insert data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> insert end, ret:" + ret); + return ret; + }) + + globalThis.update = (async () => { + console.log("[ttt] [DataShareTest] <> update begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> update end, DSHelper is null"); + return; + } + console.log("[ttt] [DataShareTest] <> update begin RPF666"); + let da = new dataSharePredicates.DataSharePredicates(); + console.log("[ttt] [DataShareTest] <> update begin RPF777"); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or u" + + "ndefined"); + return; + } +// da.equalTo("name", "ZhangSan"); + let ret = await globalThis.dsHelper.update(dseUri, da, {"age": 31}, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> update err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> update data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> update data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> update end, result:" + ret); + return ret; + }) + + globalThis.delete = (async () => { + console.log("[ttt] [DataShareTest] <> delete begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> delete end, DSHelper is null"); + return; + } + let da = new dataSharePredicates.DataSharePredicates(); + if (da == null || da == undefined) { + console.log("[ttt] [DataShareTest] <> da is null or undefined"); + return; + } +// da.equalTo("name", "ZhangSan"); + let ret = globalThis.dsHelper.delete(dseUri, da, (err,ret)=>{ + if(err){ + console.error("[ttt] [DataShareTest] <> delete err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> delete data:" + ret); + }else { + console.log("[ttt] [DataShareTest] <> delete data:" + ret); + } + }); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> delete end, result:" + ret); + return ret; + }) + + globalThis.batchInsert = (async () => { + console.log("[ttt] [DataShareTest] <> batchInsert begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> batchInsert end, DSHelper is null"); + return; + } + let ar = new Uint8Array([1,2,3,4,5,6]); + let arr = new Uint8Array([4,5,6,7]); + let people = new Array( + {"name": "LiSi", "age": 41, "Binary": ar}, + {"name": "WangWu", "age": 21, "Binary": arr}, + {"name": "ZhaoLiu", "age": 61, "Binary": arr}); +// let ar = new Uint8Array([1,2,3,4,5,6]); +// let arr = new Uint8Array([4,5,6,7]); +// let v8Arr = []; +// let vb = {"key":ar,"jii":arr,"value":arr,"njj":arr}; +// v8Arr.push(vb) + let ret = await globalThis.dsHelper.batchInsert(dseUri, people); + await globalThis.notifyChange(); + console.log("[ttt] [DataShareTest] <> batchInsert end, result:" + ret); + return ret; + }) + + globalThis.notifyChange = (async () => { + console.log("[ttt] [DataShareTest] <> notifyChange begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> notifyChange end, DSHelper is null"); + return; + } + await globalThis.dsHelper.notifyChange(dseUri); + console.log("[ttt] [DataShareTest] <> notifyChange end"); + }) + + globalThis.openFile = (async () => { + console.log("[ttt] [DataShareTest] <> openFile begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> openFile end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.openFile(dseUri, "rwt"); + console.log("[ttt] [DataShareTest] <> openFile end, result:" + result); + return result; + }) + + globalThis.getType = (async () => { + console.log("[ttt] [DataShareTest] <> getType begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> getType end, DSHelper is null"); + return; + } + let result; + globalThis.dsHelper.getType(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + console.log("[ttt] [DataShareTest] <> getType end, result:" + result); + return result; + }) + + globalThis.getFileTypes = (async () => { + console.log("[ttt] [DataShareTest] <> getFileTypes begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> getFileTypes end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.getFileTypes(dseUri, "image/*",(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> getType err, err:" + JSON.stringify(err)); + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + }else{ + console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.normalizeUri = (async () => { + console.log("[ttt] [DataShareTest] <> normalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> normalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.normalizeUri(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> normalizeUri err, err:" + JSON.stringify(err)); +// console.log("[ttt] [DataShareTest] <> getType end, data:" + JSON.stringify(data)); +// result = data; + }else{ + console.log("[ttt] [DataShareTest] <> normalizeUri end, data:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + globalThis.denormalizeUri = (async () => { + console.log("[ttt] [DataShareTest] <> denormalizeUri begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> denormalizeUri end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.denormalizeUri(dseUri,(err,data)=>{ + if(err){ + console.log("[ttt] [DataShareTest] <> denormalizeUri err, err:" + JSON.stringify(err)); +// console.log("[ttt] [DataShareTest] <> getType end, err:" + JSON.stringify(data)); +// result = data; + }else{ + console.log("[ttt] [DataShareTest] <> denormalizeUri end, err:" + JSON.stringify(data)); + result = data; + } + }); + return result; + }) + + windowStage.setUIContent(this.context, "pages/index", null) + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + console.log("[ttt] [DataShareTest] <> MainAbility onWindowStageDestroy") + } + + onForeground() { + // Ability has brought to foreground + console.log("[ttt] [DataShareTest] <> MainAbility onForeground") + } + + onBackground() { + // Ability has back to background + console.log("[ttt] [DataShareTest] <> MainAbility onBackground") + } +}; diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index(1).ets b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index(1).ets new file mode 100644 index 0000000..979ef1f --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index(1).ets @@ -0,0 +1,401 @@ +import dataSharePredicates from '@ohos.data.dataSharePredicates' + + + +@Entry +@Component +struct Index { + @State message: string = "Main thread message filed" + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text('DataShare Extension Ability Test') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> dataSharePredicates build begin'); + let da = new dataSharePredicates.DataSharePredicates(); + da.equalTo("name", "zhangsan"); + da.notEqualTo("name", "lisi"); + da.beginWrap(); + da.endWrap(); + da.or(); + da.and(); + da.contains("name", "zhang"); + da.beginsWith("name", "z"); + da.endsWith("name", "n"); + da.isNull("name"); + da.isNotNull("name"); + da.like("name", "zhang"); + da.unlike("name", "li"); + da.glob("name", "???"); + da.between("age", 18, 22); + da.notBetween("age", 18, 22); + da.greaterThan("age", 18); + da.lessThan("age", 22); + da.greaterThanOrEqualTo("age", 18); + da.lessThanOrEqualTo("age", 22); + da.orderByAsc("age"); + da.orderByDesc("age"); + da.distinct(); + da.limit(10, 5); + da.groupBy(["name", "age"]); + da.indexedBy("name"); + da.in("name", []); + da.notIn("name", []); + da.prefixKey("name"); + console.info('[ttt] [DataShareTest] <> dataSharePredicates = ' + JSON.stringify(da)); + console.info('[ttt] [DataShareTest] <> dataSharePredicates build end'); + }) + + Text(`${this.message}`) + .fontSize(30) + .height('15%') + .width('100%') + .textAlign(TextAlign.Center) + +// Row() { +// Button() { +// Text('ConnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick enter') +// this.message = 'ConnectServiceExtension onclick' +// globalThis.connectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick leave') +// }) +// +// Button() { +// Text('DisconnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick enter') +// this.message = 'DisconnectServiceExtension onclick' +// globalThis.disconnectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick leave') +// }) +// } + + Row() { + Button() { + Text('Connect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Connect onclick enter') + this.message = 'Connect onclick' + await globalThis.connectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Connect onclick leave') + }) + + Button() { + Text('Disconnect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Disconnect onclick enter') + this.message = 'Disconnect onclick' + await globalThis.disconnectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Disconnect onclick leave') + }) + } + + Row() { + Button() { + Text('On') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> On onclick enter') + this.message = '~ On onclick' + try { + await globalThis.on(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer on catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> On onclick leave') + }) + + Button() { + Text('Off') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Off onclick enter') + this.message = '~ Off onclick' + try { + await globalThis.off(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer Off catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> Off onclick leave') + }) + + Button() { + Text('OpenFile') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('30%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> OpenFile onclick enter') + this.message = 'OpenFile onclick' + let ret = await globalThis.openFile() + console.info('[ttt] [DataShareTest] <> OpenFile onclick ret = ' + ret); + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> OpenFile onclick leave') + }) + } + + Row() { + Button() { + Text('Query') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Query onclick enter') + this.message = 'Query onclick' + let ret = await globalThis.query() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Query onclick leave') + }) + + Button() { + Text('Insert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Insert onclick enter') + this.message = 'Insert onclick' + let ret = await globalThis.insert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Insert onclick leave') + }) + } + + Row() { + Button() { + Text('Update') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Update onclick enter') + this.message = 'Update onclick' + let ret = await globalThis.update() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Update onclick leave') + }) + + Button() { + Text('Delete') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Delete onclick enter') + this.message = 'Delete onclick' + let ret = await globalThis.delete() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Delete onclick leave') + }) + } + + Row() { + Button() { + Text('BatchInsert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> BatchInsert onclick enter') + this.message = 'BatchInsert onclick' + let ret = await globalThis.batchInsert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> BatchInsert onclick leave') + }) + + Button() { + Text('NotifyChange') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NotifyChange onclick enter') + this.message = 'NotifyChange onclick' + await globalThis.notifyChange() + console.info('[ttt] [DataShareTest] <> NotifyChange onclick leave') + }) + } + + Row() { + Button() { + Text('GetType') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetType onclick enter') + this.message = 'GetType onclick' + let ret = await globalThis.getType() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetType onclick leave') + }) + + Button() { + Text('GetFileTypes') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick enter') + this.message = 'GetFileTypes onclick' + let ret = await globalThis.getFileTypes() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick leave') + }) + } + + Row() { + Button() { + Text('NormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick enter') + this.message = 'NormalizeUri onclick' + let ret = await globalThis.normalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick leave') + }) + + Button() { + Text('DenormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick enter') + this.message = 'DenormalizeUri onclick' + let ret = await globalThis.denormalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick leave') + }) + } + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index.ets b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index.ets new file mode 100644 index 0000000..979ef1f --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/ets/pages/index.ets @@ -0,0 +1,401 @@ +import dataSharePredicates from '@ohos.data.dataSharePredicates' + + + +@Entry +@Component +struct Index { + @State message: string = "Main thread message filed" + + build() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text('DataShare Extension Ability Test') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> dataSharePredicates build begin'); + let da = new dataSharePredicates.DataSharePredicates(); + da.equalTo("name", "zhangsan"); + da.notEqualTo("name", "lisi"); + da.beginWrap(); + da.endWrap(); + da.or(); + da.and(); + da.contains("name", "zhang"); + da.beginsWith("name", "z"); + da.endsWith("name", "n"); + da.isNull("name"); + da.isNotNull("name"); + da.like("name", "zhang"); + da.unlike("name", "li"); + da.glob("name", "???"); + da.between("age", 18, 22); + da.notBetween("age", 18, 22); + da.greaterThan("age", 18); + da.lessThan("age", 22); + da.greaterThanOrEqualTo("age", 18); + da.lessThanOrEqualTo("age", 22); + da.orderByAsc("age"); + da.orderByDesc("age"); + da.distinct(); + da.limit(10, 5); + da.groupBy(["name", "age"]); + da.indexedBy("name"); + da.in("name", []); + da.notIn("name", []); + da.prefixKey("name"); + console.info('[ttt] [DataShareTest] <> dataSharePredicates = ' + JSON.stringify(da)); + console.info('[ttt] [DataShareTest] <> dataSharePredicates build end'); + }) + + Text(`${this.message}`) + .fontSize(30) + .height('15%') + .width('100%') + .textAlign(TextAlign.Center) + +// Row() { +// Button() { +// Text('ConnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick enter') +// this.message = 'ConnectServiceExtension onclick' +// globalThis.connectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> ConnectServiceExtension onclick leave') +// }) +// +// Button() { +// Text('DisconnectServiceExtension') +// .fontSize(25) +// .fontWeight(FontWeight.Bold) +// }.type(ButtonType.Capsule) +// .margin({ +// top: 20 +// }) +// .width('45%') +// .height('8%') +// .backgroundColor('#0ddffb') +// .onClick(async () => { +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick enter') +// this.message = 'DisconnectServiceExtension onclick' +// globalThis.disconnectServiceExtAbility() +// console.info('[ttt] [DataShareTest] <> DisconnectServiceExtension onclick leave') +// }) +// } + + Row() { + Button() { + Text('Connect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Connect onclick enter') + this.message = 'Connect onclick' + await globalThis.connectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Connect onclick leave') + }) + + Button() { + Text('Disconnect') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Disconnect onclick enter') + this.message = 'Disconnect onclick' + await globalThis.disconnectDataShareExtAbility() + console.info('[ttt] [DataShareTest] <> Disconnect onclick leave') + }) + } + + Row() { + Button() { + Text('On') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> On onclick enter') + this.message = '~ On onclick' + try { + await globalThis.on(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer on catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> On onclick leave') + }) + + Button() { + Text('Off') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Off onclick enter') + this.message = '~ Off onclick' + try { + await globalThis.off(); + } catch (err) { + console.error('[ttt] [DataAbilityTest] Observer Off catch(err)====>:' + err); + } + console.info('[ttt] [DataShareTest] <> Off onclick leave') + }) + + Button() { + Text('OpenFile') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('30%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> OpenFile onclick enter') + this.message = 'OpenFile onclick' + let ret = await globalThis.openFile() + console.info('[ttt] [DataShareTest] <> OpenFile onclick ret = ' + ret); + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> OpenFile onclick leave') + }) + } + + Row() { + Button() { + Text('Query') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Query onclick enter') + this.message = 'Query onclick' + let ret = await globalThis.query() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Query onclick leave') + }) + + Button() { + Text('Insert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Insert onclick enter') + this.message = 'Insert onclick' + let ret = await globalThis.insert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Insert onclick leave') + }) + } + + Row() { + Button() { + Text('Update') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Update onclick enter') + this.message = 'Update onclick' + let ret = await globalThis.update() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Update onclick leave') + }) + + Button() { + Text('Delete') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> Delete onclick enter') + this.message = 'Delete onclick' + let ret = await globalThis.delete() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> Delete onclick leave') + }) + } + + Row() { + Button() { + Text('BatchInsert') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> BatchInsert onclick enter') + this.message = 'BatchInsert onclick' + let ret = await globalThis.batchInsert() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> BatchInsert onclick leave') + }) + + Button() { + Text('NotifyChange') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NotifyChange onclick enter') + this.message = 'NotifyChange onclick' + await globalThis.notifyChange() + console.info('[ttt] [DataShareTest] <> NotifyChange onclick leave') + }) + } + + Row() { + Button() { + Text('GetType') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetType onclick enter') + this.message = 'GetType onclick' + let ret = await globalThis.getType() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetType onclick leave') + }) + + Button() { + Text('GetFileTypes') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick enter') + this.message = 'GetFileTypes onclick' + let ret = await globalThis.getFileTypes() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> GetFileTypes onclick leave') + }) + } + + Row() { + Button() { + Text('NormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick enter') + this.message = 'NormalizeUri onclick' + let ret = await globalThis.normalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> NormalizeUri onclick leave') + }) + + Button() { + Text('DenormalizeUri') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .width('45%') + .height('8%') + .backgroundColor('#0ddffb') + .onClick(async () => { + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick enter') + this.message = 'DenormalizeUri onclick' + let ret = await globalThis.denormalizeUri() + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> DenormalizeUri onclick leave') + }) + } + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module(1).json5 b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module(1).json5 new file mode 100644 index 0000000..dbadcb1 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module(1).json5 @@ -0,0 +1,67 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "srcEntrance": "./ets/Application/AbilityStage.ts", + "description": "$string:phone_entry_dsc", + "mainElement": "MainAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "uiSyntax": "ets", + "abilities": [ + { + "name": "MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ts", + "description": "$string:phone_entry_main", + "icon": "$media:icon", + "label": "$string:entry_label", + "visible": true, +// "orientation": "portrait", + + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "startWindowIcon":"$media:icon", + "startWindowBackground": "$color:color_1" + } + ], + "extensionAbilities": [ + { + "srcEntrance": "./ets/DataShareExtAbility/DataShareExtAbility.ts", + "name": "DataShareExtAbility", + "icon": "$media:icon", + "description": "$string:description_datashareextability", + "type": "dataShare", + "uri": "datashare://com.samples.datasharetest.DataShare", + "visible": true + } + ], + "requestPermissions": [ + { + "name" : "ohos.permission.DISTRIBUTED_DATASYNC" + } + ] +// "requestPermissions": [ +// { +// "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" +// }, +// { +// "name": "ohos.permission.GET_BUNDLE_INFO" +// }, +// { +// "name": "ohos.permission.INSTALL_BUNDLE" +// } +// ] + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module.json5 b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module.json5 new file mode 100644 index 0000000..dbadcb1 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/module.json5 @@ -0,0 +1,67 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "srcEntrance": "./ets/Application/AbilityStage.ts", + "description": "$string:phone_entry_dsc", + "mainElement": "MainAbility", + "deviceTypes": [ + "default" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "uiSyntax": "ets", + "abilities": [ + { + "name": "MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ts", + "description": "$string:phone_entry_main", + "icon": "$media:icon", + "label": "$string:entry_label", + "visible": true, +// "orientation": "portrait", + + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "startWindowIcon":"$media:icon", + "startWindowBackground": "$color:color_1" + } + ], + "extensionAbilities": [ + { + "srcEntrance": "./ets/DataShareExtAbility/DataShareExtAbility.ts", + "name": "DataShareExtAbility", + "icon": "$media:icon", + "description": "$string:description_datashareextability", + "type": "dataShare", + "uri": "datashare://com.samples.datasharetest.DataShare", + "visible": true + } + ], + "requestPermissions": [ + { + "name" : "ohos.permission.DISTRIBUTED_DATASYNC" + } + ] +// "requestPermissions": [ +// { +// "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" +// }, +// { +// "name": "ohos.permission.GET_BUNDLE_INFO" +// }, +// { +// "name": "ohos.permission.INSTALL_BUNDLE" +// } +// ] + } +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare(1).json b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare(1).json new file mode 100644 index 0000000..c946d63 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare(1).json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "color_1", + "value": "#ff0000" + } + ] +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare.json b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare.json new file mode 100644 index 0000000..c946d63 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/datashare.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "color_1", + "value": "#ff0000" + } + ] +} \ No newline at end of file diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string(1).json b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string(1).json new file mode 100644 index 0000000..e1e9210 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string(1).json @@ -0,0 +1,40 @@ +{ + "string": [ + { + "name": "phone_entry_dsc", + "value": "i am an entry for phone" + }, + { + "name": "phone_entry_main", + "value": "the phone entry ability" + }, + { + "name": "entry_label", + "value": "DataShareTest" + }, + { + "name": "form_description", + "value": "my form" + }, + { + "name": "serviceability_description", + "value": "my whether" + }, + { + "name": "description_application", + "value": "DataShareTest" + }, + { + "name": "app_name", + "value": "DataShareTest" + }, + { + "name": "description_datashareextability", + "value": "description_datashareextability" + }, + { + "name": "description_serviceability", + "value": "description_serviceability" + } + ] +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string.json b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..e1e9210 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/element/string.json @@ -0,0 +1,40 @@ +{ + "string": [ + { + "name": "phone_entry_dsc", + "value": "i am an entry for phone" + }, + { + "name": "phone_entry_main", + "value": "the phone entry ability" + }, + { + "name": "entry_label", + "value": "DataShareTest" + }, + { + "name": "form_description", + "value": "my form" + }, + { + "name": "serviceability_description", + "value": "my whether" + }, + { + "name": "description_application", + "value": "DataShareTest" + }, + { + "name": "app_name", + "value": "DataShareTest" + }, + { + "name": "description_datashareextability", + "value": "description_datashareextability" + }, + { + "name": "description_serviceability", + "value": "description_serviceability" + } + ] +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/media/icon(1).png b/datashare/XTS/rdbServerDevice/rdbServerDevice/entry/src/main/resources/base/media/icon(1).png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 2.1.2 < 3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "liftoff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "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": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "log4js": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stdout": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.0.tgz", + "integrity": "sha512-MaSQenn0f9oxIjtCufclpV00MuYTiHaXPbdcfPIM+quMqoa8cXywjHHx4LhhIAZlXqPWMdcUpYviajfmHtHRJw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/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" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "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": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", + "integrity": "sha512-CU2l5CYUAptUYq/671ajexQfXuxJFwwg0n243Kdkx8bTjeenedsWgu8TGHPm03vLfNtk3aTXgySKPp3Usykudw==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "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": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "requires": { + "resolve": "^1.20.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-package-path": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "streamroller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz", + "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", + "requires": { + "date-format": "^4.0.10", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/package-lock.json b/datashare/XTS/rdbServerDevice/rdbServerDevice/package-lock.json new file mode 100644 index 0000000..017fb40 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/package-lock.json @@ -0,0 +1,1214 @@ +{ + "name": "datasharetest", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ohos/hos-sdkmanager-common": { + "version": "1.0.2", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hos-sdkmanager-common/-/@ohos/hos-sdkmanager-common-1.0.2.tgz", + "integrity": "sha512-nai6RzsFd5tx1o5OwHxqaw+s0dTUjsdrXrwUi6b73EtHxTX6928C0xyEvd9TZ3dt3lSk2TPdSutUZWlDiW1s8A==", + "requires": { + "@ohos/sdkmanager-common": "^1.1.6" + } + }, + "@ohos/hvigor": { + "version": "1.1.3", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hvigor/-/@ohos/hvigor-1.1.3.tgz", + "integrity": "sha512-ACVD5TE+cduiVO2BVP5+KI7BDIp9eWIZp4cxgtBR2NvIZw+/eF/e9tggf56b2WKXFOW+J/ZyN2SVlkbA6LlPhQ==", + "requires": { + "@ohos/hvigor-base": "1.1.3", + "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.1.3", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hvigor-base/-/@ohos/hvigor-base-1.1.3.tgz", + "integrity": "sha512-ZD0T1l9s9jeJ3KopehURy8rhF1E8gZ5XgtayYUVJK087p87J2qk9Zjo782oM1xZi7BrLzpNWz+w3yhwxELV5KA==", + "requires": { + "json5": "2.2.0", + "log4js": "6.4.1", + "once": "1.4.0", + "pretty-hrtime": "1.0.0" + } + }, + "@ohos/hvigor-ohos-plugin": { + "version": "1.1.3", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hvigor-ohos-plugin/-/@ohos/hvigor-ohos-plugin-1.1.3.tgz", + "integrity": "sha512-Ft2VCBnvoJoeVjsYsNMNJpNcEOsbPSSZ9LlyWXXRbGieC5x8Pjgv6nyPfC/x+Bb9d8Yum24n4fIRRE6at0z5OA==", + "requires": { + "@ohos/hos-sdkmanager-common": "1.0.2", + "@ohos/hvigor-base": "1.1.3", + "@ohos/sdkmanager-common": "1.1.6", + "adm-zip": "0.5.9", + "ajv": "8.10.0", + "execa": "5.1.1", + "fast-xml-parser": "4.0.3", + "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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==" + } + } + }, + "@ohos/hypium": { + "version": "1.0.0", + "resolved": "https://repo.harmonyos.com/npm/@ohos/hypium/-/@ohos/hypium-1.0.0.tgz", + "integrity": "sha512-NhL78mNNQXhZPTt+wfRktVJldXQ76l1GkS3N/KiNSLOFY1OC/gWeO22gp9uPmYntwLVOJm5h+ei2fe51ofyHWw==" + }, + "@ohos/sdkmanager-common": { + "version": "1.1.6", + "resolved": "https://repo.harmonyos.com/npm/@ohos/sdkmanager-common/-/@ohos/sdkmanager-common-1.1.6.tgz", + "integrity": "sha512-9f3cNMQYibL6nVvNtFYcCOYojTi1aYm/WcIU3IswY+QcxveDGLich7S4OP3N78WBQuGCdbx4zU/CyfqQIz71sw==" + }, + "adm-zip": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz", + "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==" + }, + "ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==" + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "date-format": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.11.tgz", + "integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-xml-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.3.tgz", + "integrity": "sha512-xhQbg3a/EYNHwK0cxIG1nZmVkHX/0tWihamn5pU4Mhd9KEVE2ga8ZJiqEUgB2sApElvAATOdMTLjgqIpvYDUkQ==", + "requires": { + "strnum": "^1.0.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "requires": { + "for-in": "^1.0.1" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "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": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "hypium": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/hypium/-/hypium-1.0.0.tgz", + "integrity": "sha512-nl+RQVv2AU/5FvFRhsXyWO5wh+2huhdqRZ3bszBWZzW+kpNI3AT4ydvVRYIfaQbYwV4UlX/rSc7BtFjLAezhow==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "liftoff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "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": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "log4js": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stdout": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.0.tgz", + "integrity": "sha512-MaSQenn0f9oxIjtCufclpV00MuYTiHaXPbdcfPIM+quMqoa8cXywjHHx4LhhIAZlXqPWMdcUpYviajfmHtHRJw==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/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" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "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": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", + "integrity": "sha512-CU2l5CYUAptUYq/671ajexQfXuxJFwwg0n243Kdkx8bTjeenedsWgu8TGHPm03vLfNtk3aTXgySKPp3Usykudw==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "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": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "requires": { + "resolve": "^1.20.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-package-path": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "streamroller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz", + "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", + "requires": { + "date-format": "^4.0.10", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/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" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/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": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/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": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } +} diff --git a/datashare/XTS/rdbServerDevice/rdbServerDevice/package.json b/datashare/XTS/rdbServerDevice/rdbServerDevice/package.json new file mode 100644 index 0000000..ecfe4b3 --- /dev/null +++ b/datashare/XTS/rdbServerDevice/rdbServerDevice/package.json @@ -0,0 +1,19 @@ +{ + "license":"ISC", + "devDependencies":{}, + "name":"datasharetest", + "ohos":{ + "org":"huawei", + "directoryLevel":"project", + "buildTool":"hvigor" + }, + "description":"example description", + "repository":{}, + "version":"1.0.0", + "dependencies":{ + "@ohos/hypium":"1.0.0", + "@ohos/hvigor-ohos-plugin":"1.1.3", + "hypium":"^1.0.0", + "@ohos/hvigor":"1.1.3" + } +} \ No newline at end of file -- Gitee