From 17df045ae33a8ded99bb12f936cb4890853ee3d2 Mon Sep 17 00:00:00 2001 From: duanweiling Date: Thu, 7 Jul 2022 16:26:58 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90DataShare=E3=80=91hap=E5=8F=8A?= =?UTF-8?q?=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 --- .../.gitignore | 0 .../AppScope/app.json5 | 4 +- .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin datashare/DataShareClient0621/MakePackage.bat | 3 + datashare/DataShareClient0621/NpmInstall.bat | 3 + .../build-profile.json5 | 12 + .../entry/.gitignore | 0 .../entry/build-profile.json5 | 13 + .../entry/hvigorfile.js | 0 .../entry/package-lock.json | 5 + .../entry/package.json | 2 +- .../src/main/ets/Application/AbilityStage.ts | 2 +- .../src/main/ets/MainAbility/MainAbility.ts | 759 ++++++++ .../entry/src/main/ets/pages/index.ets | 1557 +++++++++++++++++ .../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 .../resources/base/profile/form_config.json | 24 + .../resources/base/profile/main_pages.json | 0 .../hvigorfile.js | 0 .../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 .../DataShareClient0621/package-lock.json | 1214 +++++++++++++ datashare/DataShareClient0621/package.json | 19 + .../main/resources/base/element/string.json | 20 - datashare/hap/DataShareClientTest_signed.hap | Bin 456701 -> 0 bytes datashare/hap/DataShareTest_signed.hap | Bin 529358 -> 0 bytes .../InstallAndLanch - datashareclienttest.bat | 13 - .../hap/InstallAndLanch - datasharetest.bat | 13 - datashare/hap/export.bat | 7 - datashare/rdbServer0621/.gitignore | 4 + datashare/rdbServer0621/AppScope/app.json5 | 11 + .../resources/base/element/string.json | 2 +- .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes datashare/rdbServer0621/build-profile.json5 | 40 + datashare/rdbServer0621/entry/.gitignore | 3 + .../entry/build-profile.json5 | 3 +- datashare/rdbServer0621/entry/hvigorfile.js | 2 + .../entry/package-lock.json | 0 datashare/rdbServer0621/entry/package.json | 17 + .../src/main/ets/Application/AbilityStage.ts | 7 + .../DataShareExtAbility.ts | 341 ++-- .../src/main/ets/MainAbility/MainAbility.ts | 275 ++- .../entry/src/main/ets/pages/index.ets | 113 +- .../entry/src/main/module.json5 | 28 +- .../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/rdbServer0621/hvigorfile.js | 2 + .../package-lock.json | 1013 +++-------- .../package.json | 5 +- 62 files changed, 5120 insertions(+), 992 deletions(-) rename datashare/{DataShareTest-4.7 => DataShareClient0621}/.gitignore (100%) rename datashare/{DataShareTest-4.7 => DataShareClient0621}/AppScope/app.json5 (68%) create mode 100644 datashare/DataShareClient0621/AppScope/resources/base/element/string.json rename datashare/{DataShareTest-4.7 => DataShareClient0621}/AppScope/resources/base/media/app_icon.png (100%) create mode 100644 datashare/DataShareClient0621/MakePackage.bat create mode 100644 datashare/DataShareClient0621/NpmInstall.bat rename datashare/{DataShareTest-4.7 => DataShareClient0621}/build-profile.json5 (38%) rename datashare/{DataShareTest-4.7 => DataShareClient0621}/entry/.gitignore (100%) create mode 100644 datashare/DataShareClient0621/entry/build-profile.json5 rename datashare/{DataShareTest-4.7 => DataShareClient0621}/entry/hvigorfile.js (100%) create mode 100644 datashare/DataShareClient0621/entry/package-lock.json rename datashare/{DataShareTest-4.7 => DataShareClient0621}/entry/package.json (85%) rename datashare/{DataShareTest-4.7 => DataShareClient0621}/entry/src/main/ets/Application/AbilityStage.ts (65%) create mode 100644 datashare/DataShareClient0621/entry/src/main/ets/MainAbility/MainAbility.ts create mode 100644 datashare/DataShareClient0621/entry/src/main/ets/pages/index.ets create mode 100644 datashare/DataShareClient0621/entry/src/main/ets/pages/index/index.ets create mode 100644 datashare/DataShareClient0621/entry/src/main/ets/pages/second.ets create mode 100644 datashare/DataShareClient0621/entry/src/main/ets/pages/second/second.ets create mode 100644 datashare/DataShareClient0621/entry/src/main/ets/test/Ability.test.ets create mode 100644 datashare/DataShareClient0621/entry/src/main/ets/test/List.test.ets create mode 100644 datashare/DataShareClient0621/entry/src/main/module.json5 create mode 100644 datashare/DataShareClient0621/entry/src/main/resources/base/element/datashare.json create mode 100644 datashare/DataShareClient0621/entry/src/main/resources/base/element/string.json rename datashare/{DataShareTest-4.7 => DataShareClient0621}/entry/src/main/resources/base/media/icon.png (100%) create mode 100644 datashare/DataShareClient0621/entry/src/main/resources/base/profile/form_config.json rename datashare/{DataShareTest-4.7 => DataShareClient0621}/entry/src/main/resources/base/profile/main_pages.json (100%) rename datashare/{DataShareTest-4.7 => DataShareClient0621}/hvigorfile.js (100%) create mode 100644 datashare/DataShareClient0621/offline-dependency/ohos-hvigor-1.0.0.tgz create mode 100644 datashare/DataShareClient0621/offline-dependency/ohos-hvigor-cli-1.0.0.tgz create mode 100644 datashare/DataShareClient0621/offline-dependency/ohos-hvigor-ohos-plugin-1.0.0.tgz create mode 100644 datashare/DataShareClient0621/offline-dependency/ohos-sdk-common-1.0.0.tgz create mode 100644 datashare/DataShareClient0621/package-lock.json create mode 100644 datashare/DataShareClient0621/package.json delete mode 100644 datashare/DataShareTest-4.7/entry/src/main/resources/base/element/string.json delete mode 100644 datashare/hap/DataShareClientTest_signed.hap delete mode 100644 datashare/hap/DataShareTest_signed.hap delete mode 100644 datashare/hap/InstallAndLanch - datashareclienttest.bat delete mode 100644 datashare/hap/InstallAndLanch - datasharetest.bat delete mode 100644 datashare/hap/export.bat create mode 100644 datashare/rdbServer0621/.gitignore create mode 100644 datashare/rdbServer0621/AppScope/app.json5 rename datashare/{DataShareTest-4.7 => rdbServer0621}/AppScope/resources/base/element/string.json (60%) create mode 100644 datashare/rdbServer0621/AppScope/resources/base/media/app_icon.png create mode 100644 datashare/rdbServer0621/build-profile.json5 create mode 100644 datashare/rdbServer0621/entry/.gitignore rename datashare/{DataShareTest-4.7 => rdbServer0621}/entry/build-profile.json5 (72%) create mode 100644 datashare/rdbServer0621/entry/hvigorfile.js rename datashare/{DataShareTest-4.7 => rdbServer0621}/entry/package-lock.json (100%) create mode 100644 datashare/rdbServer0621/entry/package.json create mode 100644 datashare/rdbServer0621/entry/src/main/ets/Application/AbilityStage.ts rename datashare/{DataShareTest-4.7 => rdbServer0621}/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts (44%) rename datashare/{DataShareTest-4.7 => rdbServer0621}/entry/src/main/ets/MainAbility/MainAbility.ts (39%) rename datashare/{DataShareTest-4.7 => rdbServer0621}/entry/src/main/ets/pages/index.ets (70%) rename datashare/{DataShareTest-4.7 => rdbServer0621}/entry/src/main/module.json5 (59%) create mode 100644 datashare/rdbServer0621/entry/src/main/resources/base/element/datashare.json create mode 100644 datashare/rdbServer0621/entry/src/main/resources/base/element/string.json create mode 100644 datashare/rdbServer0621/entry/src/main/resources/base/media/icon.png create mode 100644 datashare/rdbServer0621/entry/src/main/resources/base/profile/form_config.json create mode 100644 datashare/rdbServer0621/entry/src/main/resources/base/profile/main_pages.json create mode 100644 datashare/rdbServer0621/hvigorfile.js rename datashare/{DataShareTest-4.7 => rdbServer0621}/package-lock.json (40%) rename datashare/{DataShareTest-4.7 => rdbServer0621}/package.json (71%) diff --git a/datashare/DataShareTest-4.7/.gitignore b/datashare/DataShareClient0621/.gitignore similarity index 100% rename from datashare/DataShareTest-4.7/.gitignore rename to datashare/DataShareClient0621/.gitignore diff --git a/datashare/DataShareTest-4.7/AppScope/app.json5 b/datashare/DataShareClient0621/AppScope/app.json5 similarity index 68% rename from datashare/DataShareTest-4.7/AppScope/app.json5 rename to datashare/DataShareClient0621/AppScope/app.json5 index e251eb9..a0adb9f 100644 --- a/datashare/DataShareTest-4.7/AppScope/app.json5 +++ b/datashare/DataShareClient0621/AppScope/app.json5 @@ -1,7 +1,7 @@ { "app": { - "bundleName": "com.ohos.data.datasharetest", - "vendor": "ohos", + "bundleName": "com.samples.myapplication", + "vendor": "example", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:app_icon", diff --git a/datashare/DataShareClient0621/AppScope/resources/base/element/string.json b/datashare/DataShareClient0621/AppScope/resources/base/element/string.json new file mode 100644 index 0000000..01daddf --- /dev/null +++ b/datashare/DataShareClient0621/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "datashareclienttest" + } + ] +} diff --git a/datashare/DataShareTest-4.7/AppScope/resources/base/media/app_icon.png b/datashare/DataShareClient0621/AppScope/resources/base/media/app_icon.png similarity index 100% rename from datashare/DataShareTest-4.7/AppScope/resources/base/media/app_icon.png rename to datashare/DataShareClient0621/AppScope/resources/base/media/app_icon.png diff --git a/datashare/DataShareClient0621/MakePackage.bat b/datashare/DataShareClient0621/MakePackage.bat new file mode 100644 index 0000000..19cc850 --- /dev/null +++ b/datashare/DataShareClient0621/MakePackage.bat @@ -0,0 +1,3 @@ +npm run buildApp + +pause \ No newline at end of file diff --git a/datashare/DataShareClient0621/NpmInstall.bat b/datashare/DataShareClient0621/NpmInstall.bat new file mode 100644 index 0000000..5d48055 --- /dev/null +++ b/datashare/DataShareClient0621/NpmInstall.bat @@ -0,0 +1,3 @@ +npm install .\offline-dependency\ohos-hvigor-1.0.0.tgz .\offline-dependency\ohos-hvigor-cli-1.0.0.tgz .\offline-dependency\ohos-hvigor-ohos-plugin-1.0.0.tgz .\offline-dependency\ohos-sdk-common-1.0.0.tgz + +pause \ No newline at end of file diff --git a/datashare/DataShareTest-4.7/build-profile.json5 b/datashare/DataShareClient0621/build-profile.json5 similarity index 38% rename from datashare/DataShareTest-4.7/build-profile.json5 rename to datashare/DataShareClient0621/build-profile.json5 index 64f1ae4..4467a41 100644 --- a/datashare/DataShareTest-4.7/build-profile.json5 +++ b/datashare/DataShareClient0621/build-profile.json5 @@ -1,6 +1,18 @@ { "app": { "signingConfigs": [ + { + "name": "default", + "material": { + "certpath": "C:\\Users\\PaDaBoo\\.ohos\\config\\openharmony\\auto_ohos.cer", + "storePassword": "00000018FDF396A3F03C66559127A7D0751288DD5E76DC04006456474B4E35406CB0BE096C3DFF65", + "keyAlias": "debugKey", + "keyPassword": "000000185C72D68CAC4CBEA6B81623B52F65F944DCC970B3AAC07175F29F04160DB05EF2142657EF", + "profile": "C:\\Users\\PaDaBoo\\.ohos\\config\\openharmony\\auto_ohos_default_com.samples.myapplication.p7b", + "signAlg": "SHA256withECDSA", + "storeFile": "C:\\Users\\PaDaBoo\\.ohos\\config\\openharmony\\auto_ohos.p12" + } + } ], "compileSdkVersion": 9, "compatibleSdkVersion": 9, diff --git a/datashare/DataShareTest-4.7/entry/.gitignore b/datashare/DataShareClient0621/entry/.gitignore similarity index 100% rename from datashare/DataShareTest-4.7/entry/.gitignore rename to datashare/DataShareClient0621/entry/.gitignore diff --git a/datashare/DataShareClient0621/entry/build-profile.json5 b/datashare/DataShareClient0621/entry/build-profile.json5 new file mode 100644 index 0000000..308a68d --- /dev/null +++ b/datashare/DataShareClient0621/entry/build-profile.json5 @@ -0,0 +1,13 @@ +{ + "apiType": 'stageMode', + "buildOption": { + }, + "targets": [ + { + "name": "default", + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/datashare/DataShareTest-4.7/entry/hvigorfile.js b/datashare/DataShareClient0621/entry/hvigorfile.js similarity index 100% rename from datashare/DataShareTest-4.7/entry/hvigorfile.js rename to datashare/DataShareClient0621/entry/hvigorfile.js diff --git a/datashare/DataShareClient0621/entry/package-lock.json b/datashare/DataShareClient0621/entry/package-lock.json new file mode 100644 index 0000000..bc5d939 --- /dev/null +++ b/datashare/DataShareClient0621/entry/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "entry", + "version": "1.0.0", + "lockfileVersion": 1 +} diff --git a/datashare/DataShareTest-4.7/entry/package.json b/datashare/DataShareClient0621/entry/package.json similarity index 85% rename from datashare/DataShareTest-4.7/entry/package.json rename to datashare/DataShareClient0621/entry/package.json index 335db71..6576583 100644 --- a/datashare/DataShareTest-4.7/entry/package.json +++ b/datashare/DataShareClient0621/entry/package.json @@ -1,7 +1,7 @@ { "license": "ISC", "devDependencies": {}, - "name": "DataShareTest", + "name": "entry", "ohos": { "org": "huawei", "directoryLevel": "module", diff --git a/datashare/DataShareTest-4.7/entry/src/main/ets/Application/AbilityStage.ts b/datashare/DataShareClient0621/entry/src/main/ets/Application/AbilityStage.ts similarity index 65% rename from datashare/DataShareTest-4.7/entry/src/main/ets/Application/AbilityStage.ts rename to datashare/DataShareClient0621/entry/src/main/ets/Application/AbilityStage.ts index 32dfe93..0bb9747 100644 --- a/datashare/DataShareTest-4.7/entry/src/main/ets/Application/AbilityStage.ts +++ b/datashare/DataShareClient0621/entry/src/main/ets/Application/AbilityStage.ts @@ -2,6 +2,6 @@ import AbilityStage from "@ohos.application.AbilityStage" export default class MyAbilityStage extends AbilityStage { onCreate() { - console.log("[Demo] MyAbilityStage onCreate") + console.log("[ttt] [DataShareClientTest] MyAbilityStage onCreate"); } } \ No newline at end of file diff --git a/datashare/DataShareClient0621/entry/src/main/ets/MainAbility/MainAbility.ts b/datashare/DataShareClient0621/entry/src/main/ets/MainAbility/MainAbility.ts new file mode 100644 index 0000000..d9db3c7 --- /dev/null +++ b/datashare/DataShareClient0621/entry/src/main/ets/MainAbility/MainAbility.ts @@ -0,0 +1,759 @@ +import Ability from '@ohos.application.Ability' +import dataShare from '@ohos.data.dataShare' +import rpc from "@ohos.rpc"; +import dataSharePredicates from '@ohos.data.dataSharePredicates' +import distributedData from '@ohos.data.distributedData'; + +let kvManager; +let kvdbStore; + +const BUNDLE_NAME = 'com.samples.myapplication'; +const STORE_ID = 'storeId'; +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] [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); + + globalThis.create = (async () => { + let mKVMgrConfig = { + userInfo : { + userId : '0', + userType : distributedData.UserType.SAME_USER_ID + }, + bundleName: BUNDLE_NAME, + } + var options = { + createIfMissing : true, + encrypt : false, + backup : false, + autoSync : true, + kvStoreType : distributedData.KVStoreType.SINGLE_VERSION, + schema : {}, + securityLevel : distributedData.SecurityLevel.NO_LEVEL, + } + 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); + }); + }); + }) + + + + 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; +// let da = new dataSharePredicates.DataSharePredicates(); +// let arr = ["name"]; +// da.inKeys(arr); + let columnArray = getDa.columnArray; + let result = await globalThis.dsHelper.query(dseUri, 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, globalThis.openFileCallback); + 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.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'); + 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') { + 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/DataShareClient0621/entry/src/main/ets/pages/index.ets b/datashare/DataShareClient0621/entry/src/main/ets/pages/index.ets new file mode 100644 index 0000000..a80b79c --- /dev/null +++ b/datashare/DataShareClient0621/entry/src/main/ets/pages/index.ets @@ -0,0 +1,1557 @@ +@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/DataShareClient0621/entry/src/main/ets/pages/index/index.ets b/datashare/DataShareClient0621/entry/src/main/ets/pages/index/index.ets new file mode 100644 index 0000000..ce736d3 --- /dev/null +++ b/datashare/DataShareClient0621/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/DataShareClient0621/entry/src/main/ets/pages/second.ets b/datashare/DataShareClient0621/entry/src/main/ets/pages/second.ets new file mode 100644 index 0000000..e69de29 diff --git a/datashare/DataShareClient0621/entry/src/main/ets/pages/second/second.ets b/datashare/DataShareClient0621/entry/src/main/ets/pages/second/second.ets new file mode 100644 index 0000000..afc9518 --- /dev/null +++ b/datashare/DataShareClient0621/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/DataShareClient0621/entry/src/main/ets/test/Ability.test.ets b/datashare/DataShareClient0621/entry/src/main/ets/test/Ability.test.ets new file mode 100644 index 0000000..9038dba --- /dev/null +++ b/datashare/DataShareClient0621/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/DataShareClient0621/entry/src/main/ets/test/List.test.ets b/datashare/DataShareClient0621/entry/src/main/ets/test/List.test.ets new file mode 100644 index 0000000..3759912 --- /dev/null +++ b/datashare/DataShareClient0621/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/DataShareClient0621/entry/src/main/module.json5 b/datashare/DataShareClient0621/entry/src/main/module.json5 new file mode 100644 index 0000000..fcfc9a5 --- /dev/null +++ b/datashare/DataShareClient0621/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/DataShareClient0621/entry/src/main/resources/base/element/datashare.json b/datashare/DataShareClient0621/entry/src/main/resources/base/element/datashare.json new file mode 100644 index 0000000..c946d63 --- /dev/null +++ b/datashare/DataShareClient0621/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/DataShareClient0621/entry/src/main/resources/base/element/string.json b/datashare/DataShareClient0621/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..f20b49d --- /dev/null +++ b/datashare/DataShareClient0621/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/DataShareTest-4.7/entry/src/main/resources/base/media/icon.png b/datashare/DataShareClient0621/entry/src/main/resources/base/media/icon.png similarity index 100% rename from datashare/DataShareTest-4.7/entry/src/main/resources/base/media/icon.png rename to datashare/DataShareClient0621/entry/src/main/resources/base/media/icon.png diff --git a/datashare/DataShareClient0621/entry/src/main/resources/base/profile/form_config.json b/datashare/DataShareClient0621/entry/src/main/resources/base/profile/form_config.json new file mode 100644 index 0000000..ba3489d --- /dev/null +++ b/datashare/DataShareClient0621/entry/src/main/resources/base/profile/form_config.json @@ -0,0 +1,24 @@ +{ + "forms": [ + { + "name": "Form_Js", + "description": "$string:form_description", + "src": "pages/card/index", + "window": { + "designWidth": 720, + "autoDesignWidth": true + }, + "colorMode": "auto", + "formConfigAbility": "ability://xxxxx", + "formVisibleNotify": false, + "isDefault": true, + "updateEnabled": true, + "scheduledUpdateTime": "10:30", + "updateDuration": 1, + "defaultDimension": "2*2", + "supportDimensions": [ + "2*2" + ] + } + ] +} diff --git a/datashare/DataShareTest-4.7/entry/src/main/resources/base/profile/main_pages.json b/datashare/DataShareClient0621/entry/src/main/resources/base/profile/main_pages.json similarity index 100% rename from datashare/DataShareTest-4.7/entry/src/main/resources/base/profile/main_pages.json rename to datashare/DataShareClient0621/entry/src/main/resources/base/profile/main_pages.json diff --git a/datashare/DataShareTest-4.7/hvigorfile.js b/datashare/DataShareClient0621/hvigorfile.js similarity index 100% rename from datashare/DataShareTest-4.7/hvigorfile.js rename to datashare/DataShareClient0621/hvigorfile.js diff --git a/datashare/DataShareClient0621/offline-dependency/ohos-hvigor-1.0.0.tgz b/datashare/DataShareClient0621/offline-dependency/ohos-hvigor-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3be1e6442812cbbd8a27f7a2e8375bc309535a74 GIT binary patch literal 2928 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 aEetr-t+b>iEou3GF8>8j;zyAHQUCznBdmr1 literal 0 HcmV?d00001 diff --git a/datashare/DataShareClient0621/offline-dependency/ohos-hvigor-cli-1.0.0.tgz b/datashare/DataShareClient0621/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/DataShareClient0621/offline-dependency/ohos-hvigor-ohos-plugin-1.0.0.tgz b/datashare/DataShareClient0621/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/DataShareClient0621/offline-dependency/ohos-sdk-common-1.0.0.tgz b/datashare/DataShareClient0621/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/DataShareClient0621/package-lock.json b/datashare/DataShareClient0621/package-lock.json new file mode 100644 index 0000000..af052c8 --- /dev/null +++ b/datashare/DataShareClient0621/package-lock.json @@ -0,0 +1,1214 @@ +{ + "name": "datashareclienttest", + "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": "http://mirrors.tools.huawei.com/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://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/DataShareClient0621/package.json b/datashare/DataShareClient0621/package.json new file mode 100644 index 0000000..2c47d02 --- /dev/null +++ b/datashare/DataShareClient0621/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.0", + "@ohos/hvigor-ohos-plugin":"1.1.3", + "hypium":"^1.0.0", + "@ohos/hvigor":"1.1.3" + } +} \ No newline at end of file diff --git a/datashare/DataShareTest-4.7/entry/src/main/resources/base/element/string.json b/datashare/DataShareTest-4.7/entry/src/main/resources/base/element/string.json deleted file mode 100644 index 4732752..0000000 --- a/datashare/DataShareTest-4.7/entry/src/main/resources/base/element/string.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "string": [ - { - "name": "entry_desc", - "value": "description" - }, - { - "name": "MainAbility_desc", - "value": "description" - }, - { - "name": "MainAbility_label", - "value": "DataShareTest" - }, - { - "name": "description_datashareextability", - "value": "description_datashareextability" - } - ] -} \ No newline at end of file diff --git a/datashare/hap/DataShareClientTest_signed.hap b/datashare/hap/DataShareClientTest_signed.hap deleted file mode 100644 index 29956ccf70baebee87e06dccdc88f2083f739084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456701 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%0A=wRsVsPR0W`}tn_c%s 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

cn_iGB&9_tv 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

Cg*|+~--_hQKyHDdn($g@04m|YI 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 F{{bZDwT=J) diff --git a/datashare/hap/DataShareTest_signed.hap b/datashare/hap/DataShareTest_signed.hap deleted file mode 100644 index edadff79b5c0196845b6aab0e26cda49b225812f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529358 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

=S4x>O4^pivY1uW+BGc3xdaMq#(++aB$n0KL8 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

Asn2KBsU5JFH z^cx}GCUt93m~^U`#=oUv)e}pq{*eig0`^0`U-dCGk8VvGK(^_|fjX1_H1l+8eHZIe zPhV2>Xjoi`R9y&PcOkU&f><(Lda)9;FIH?Um24z_ou;-dBQBMImnDxA-s#OHjgLXO zaXUL{U+ts~K?P0@;02IO_l2-3L!(FVU2!&&Q>17sz?&P+t{L zs+FZX!YhmS7OyPckKe_WtBcl!S0g>r+(|E%hRec>RqJLoGkC)Pf}K`3|L50Tsk6R` zc$KfScKG|}VeX$Lp&;iA$ASaBg#bU{Q=yy?fb z-$0!#`ZDML4*%Uy771e=4~au7Uqq57rl`MByWK2Go>)?}v>0}k=2l}3K8exkA1B6g z`t{iut4) zZvj!IMXR9#7Wq|I5td<0?vSO+YB;zDs(Y?ArfBcahmC8MreppQl!Plj`HG8apMz9%FT$< zLlV0zvb6Z7;-#f!6-A-zK}Qj@u?UiBQBkc|i^WeYsgQz$I+j&NelvuITzVn2vL&c{zM>gIJq>-u8>Ej^`OGOuoL(pWT_KPlt zs<%&-Pj45(@SxkJN-n4jQIVZxKa%AK;l^04vuy;-(%q2#Ux8)fwKr;PDmH%eN z!HQA!Oryxt**+J`MAH*X*13Z8mR4%OW#Pp|P%+mREiPJ&`_;IXoGV&fe6FZmk1o`V z+r-T^Lc9T^?@FkV?^feGEsQ3QU|v{-jSrFA zdtnt8!SDS`5DTlYSch3yg-xEQtIqvR?7}K6zQst6#2aTg?LD{>PCQemDle?U@&}j; ztFU>Nt7#c{VHI{^71lkxzqS&8E(bag9Chra9KX#w1-SNpAXlbvcOw4zKw8xh3Y`h2m zj#RtL+=+!|(Q|2x!2ZdF)J7Mu>G;l~vO7|9AvJrvQQ_#we!0;VSbI6#unp88_kdz! zD5ByrMnXngOP?XD&3jzA0Io696$MJ#HI5j5mPvjhcJ?CL88-ULF!n06sofb1=rHX@ z-S2Ehb%O>|Es2O06=ciiL?&#WB~~Cmwy>tLr#3AE#jCVLolby=YbvSUl!{FIoU>UN zG3T&%wrP2{G6fG%JE!xI;lqtO$B6VJ&aPxd1LBtFqGt9v3Jo?v6(7IHIL{QJ&Kiaz}Bt;f9P>a%4xB{h$ovDpi5M zY^vBjP8M4+btXc9!&dP#a^yx>OcoQayyco--!tn?hf{m%r6_Cm4&bOHG4S$a%0YPs8^5l1Fs z8)Soeq7&J&k=T}(DEw@>?Q>(h{^?9a(6ve#npwwF2I3(6&s{J64!9VmJlElyiAFpW z;o61kjkq$Ih?u~yj)OppjkhA*rdE8Agx?47yJksPJdEpyRblZ7Y(#!+Sy-f&hsEDM zEi8U>MOeJ-#;|z*>achh(i~nI7Q@$t#s9;#0_pF-HHqu(xW10-JGd%q&+i-2h z)q(36t^}@0Tra@&DqL^E^)X!3wj>k9XnQRD3lfq({L;Ul;3dHPORp%cmI;!F@Ma+% z*(AgiU3jj>^CkRV!t-VPK7!}VxUa@_X)Dri$F&XbcOX5k%ecRUYYMPO0K1H<16MU* z9k>SQ7kR_D2I#jFzqlU3b%}mE@U9){yMP0~kKmfZ`zgF1!2MK~oURc{0Q!= zcOyT&qiYY|LskdyE{yvQ{9eXYy%)c@I&g&nzl7gM=o$A@bWuKBVZ0l_HATOm_5Nc* ze7+d^pal8>zt1fTi?85!b}?ltYFf7-s!S=OjtJbhY?nV<`KKB2U@B@_T3TyFdCfMw zE3es#1o+!be>d%*zb)JNFQ86~~(P-)tqNM{=9t`UZdxTCRY3{Llc6(FH$C_XrNDm^il z$jF1AIZ-Lh1F_6l6TY}QYy6gmKSoYDjrd|2TLFh*n-E{OfMKidh-dZzL}7i>^m4Q0 z@@DX#p1@`Lp_Jg&=90 zW9@jx-0_sX;~fD*MP>I`I-Wvw1TyqQ<;i#g=S7S1mgeSL#Zpw6sw*lc6GNGkVi_5R zvY^UN7>&ISV3#LF-ZH8N znnrO`tPNzDWdX99l|xcjF4g;`N}&Z1mjxJYV!52FvfA22Vf4Jr zNeYDJDShmbdLQCef-K13FH27-J-1;vmKZ^UkBrcP^bNeRw#}o&EojmenPhJ!g(xjY zVkbmp@7d9TpXI~Hffo4Zvd>8IhkAHy{w z`OK^({HjS+HyG7S2XEssi`oODBW#-;JfgPjKrg@(xFGiS9_{FFZ|^@e9v{0imO>kx z?T6gZ5ZT|nqq&)L(KwnQTL#4SULk|GapOk0rB~cq)3Uv_rYAn0Ol6b@K-AQFRn?Ryg#rHL(&k7enJ0U0VnL?F8mdyJHaW2xAvs2HJ$NTQNLJx$;d z>;wa=((%EG6n0pXJv5St$?ev#pVr`7t!5bcfA{gKUPBGOemqK502go2nT12m8=p)ov@$eX~ zgcfiwk@4Cf6D;l6fIDcyK1xFtY(d{xT?3hwkyG18NQbwO440GQ7m?%qEIGOv{9T$+ zoT#A2^AL}5>!unVWD!|0FA^KUu+E7TCQF%~iLo(^5zG-$k%nb9BG%Njz@X$vt5J*u zKmqa6C{_d5EP;v`;1_FaS};MAG;$s!+q4atDDcVvnCsY|h$A{NCYCmMka!GNOAn`# zqlq+$tPPn!%B!`xMyZeZ5G#;XEDX^H(eW`CSw1i^HZ&4vX-B;_q3hviGl&5{Q}O5- z)Q+WY6S^>Fkt8)7=xsSymf=9G>g-GLj524<+p0m+t>7N}BMv5z!>^V>Jqke=;IVU`L(<1S70QnTY$ zRZCO`FKGf@jxl}|leiWPueyzv$A*TqRwm)n^WCab>Eu}JgQFv&oaRR2R@R~Mp4iw> za`fQD=m3f=-qj=`dqiZHD21v|KLvi|iDoEn99CYfi?}hbG4$7>E%>8eVn~*(R7j zqCgr(#8N0wmbOZaml#nOw9su!+_K(r^?j-=p{`#EDwaX+HrEVcSP`XI=n%`IJlep3 zBr%2iL@F;W1uNuGaS!jrUxra)@HBTRP)j3RWpDew=#l%xtr${WtpLr5ZpkWMW~DHt zB-yht2qojnYsmOn0l_?yykjIefPtuj6f=Zn#;RgkK9YCe5oJ_@!05YLH1{tj3}v@)t)bp;?8b(u+YSaSUWyK!_czfi4jOB z8R|O9F{%p{ts)4YCjRLagog1Qw9x|{q_Y$2acWE!EF z$Kol93UL4(6@#6!kHxBk&a|DB4y=dO2qpkmS3D(k=`xNe#EzNrn(fd~wK-6WjX~y0 z$rq~!V(G-7u@)kj$M84tVs(S(?UUR|gH@Gs#w1oiHL(4Jii=1ehZ-i`vJ`rg15U4? z(OE_e!Z5)0Glqd3sPb}xOpL-LJd1$~HnI#&eKeC8L4L%&?o6g&TtLH&vg@n`P1)pY zwp5(-dwdA=tf<-EVl=`E@bAuKQueKKvJJ$tM4F;#lG(5dBeL=Ph)P%(nj}RMAHwJ`# $AM(#q({-+)~#D7 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 L1(PoUFB1L_DJK|8 diff --git a/datashare/hap/InstallAndLanch - datashareclienttest.bat b/datashare/hap/InstallAndLanch - datashareclienttest.bat deleted file mode 100644 index 88630aa..0000000 --- a/datashare/hap/InstallAndLanch - datashareclienttest.bat +++ /dev/null @@ -1,13 +0,0 @@ -@echo off - -set HAP_NAME="DataShareClientTest_signed.hap" - -set BUNDLE_NAME="com.samples.datashareclienttest" -set ABILITY_NAME="MainAbility" - -hdc shell aa force-stop %BUNDLE_NAME% -hdc uninstall %BUNDLE_NAME% -hdc install -r %HAP_NAME% -hdc shell aa start -d 12345 -a %ABILITY_NAME% -b %BUNDLE_NAME% - -pause diff --git a/datashare/hap/InstallAndLanch - datasharetest.bat b/datashare/hap/InstallAndLanch - datasharetest.bat deleted file mode 100644 index 267208e..0000000 --- a/datashare/hap/InstallAndLanch - datasharetest.bat +++ /dev/null @@ -1,13 +0,0 @@ -@echo off - -set HAP_NAME="DataShareTest_signed.hap" - -set BUNDLE_NAME="com.samples.datasharetest" -set ABILITY_NAME="MainAbility" - -hdc shell aa force-stop %BUNDLE_NAME% -hdc uninstall %BUNDLE_NAME% -hdc install -r %HAP_NAME% -hdc shell aa start -d 12345 -a %ABILITY_NAME% -b %BUNDLE_NAME% - -pause diff --git a/datashare/hap/export.bat b/datashare/hap/export.bat deleted file mode 100644 index c4392f7..0000000 --- a/datashare/hap/export.bat +++ /dev/null @@ -1,7 +0,0 @@ -set current_dir=%CD% - -hdc file recv /data/app/el2/100/database/com.samples.datasharetest/db/DB00.db . -hdc file recv /data/app/el2/100/database/com.samples.datasharetest/db/DB00.db-shm . -hdc file recv /data/app/el2/100/database/com.samples.datasharetest/db/DB00.db-wal . - -pause diff --git a/datashare/rdbServer0621/.gitignore b/datashare/rdbServer0621/.gitignore new file mode 100644 index 0000000..2981358 --- /dev/null +++ b/datashare/rdbServer0621/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/local.properties +/.idea +**/build \ No newline at end of file diff --git a/datashare/rdbServer0621/AppScope/app.json5 b/datashare/rdbServer0621/AppScope/app.json5 new file mode 100644 index 0000000..7f09ec2 --- /dev/null +++ b/datashare/rdbServer0621/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/DataShareTest-4.7/AppScope/resources/base/element/string.json b/datashare/rdbServer0621/AppScope/resources/base/element/string.json similarity index 60% rename from datashare/DataShareTest-4.7/AppScope/resources/base/element/string.json rename to datashare/rdbServer0621/AppScope/resources/base/element/string.json index 270eb8e..616c648 100644 --- a/datashare/DataShareTest-4.7/AppScope/resources/base/element/string.json +++ b/datashare/rdbServer0621/AppScope/resources/base/element/string.json @@ -2,7 +2,7 @@ "string": [ { "name": "app_name", - "value": "DataShareTest" + "value": "datasharetest" } ] } diff --git a/datashare/rdbServer0621/AppScope/resources/base/media/app_icon.png b/datashare/rdbServer0621/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); - rdb.getRdbStore(this.context, { name: DB_NAME }, 1, function(err, data) { - console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, getRdbStore done err:' + JSON.stringify(err)); - rdbStore = data; - rdbStore.executeSql(DDL_TBL_CREATE, [], function(err) { - console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, executeSql done err:' + JSON.stringify(err)); - }); - }); - } - - getFileTypes(uri: string, mimeTypeFilter: string) { - console.info('[ttt] [DataShareTest] <> [getFileTypes] enter'); - let ret = new Array("type01", "type02", "type03"); - console.info('[ttt] [DataShareTest] <> [getFileTypes] leave, ret:' + ret); - return ret; - } - - insert(uri, value, callback) { - console.info('[ttt] [DataShareTest] <> [insert] enter'); - if (value == null) { - console.info('[ttt] [DataShareTest] <> [insert] invalid valueBuckets'); - return; - } - rdbStore.insert(TBL_NAME, value, function(err, ret) { - console.info('[ttt] [DataShareTest] <> [insert] callback ret:' + ret); - if (callback != undefined) { - callback(err, ret); - } - }); - console.info('[ttt] [DataShareTest] <> [insert] leave'); - } - - update(uri, value, predicates, callback) { - console.info('[ttt] [DataShareTest] <> [update] enter'); - if (predicates == null || predicates == undefined) { - console.info('[ttt] [DataShareTest] <> [update] invalid predicates'); - return; - } - let rdbPredicates = dataAbility.createRdbPredicates(TBL_NAME, predicates); - rdbStore.update(value, rdbPredicates, function(err, ret) { - console.info('[ttt] [DataShareTest] <> [update] callback ret:' + ret); - if (callback != undefined) { - callback(err, ret); - } - }); - 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; - } - let rdbPredicates = dataAbility.createRdbPredicates(TBL_NAME, predicates); - rdbStore.delete(rdbPredicates, function(err, ret) { - console.info('[ttt] [DataShareTest] <> [delete] ret:' + ret); - if (callback != undefined) { - callback(err, ret); - } - }); - console.info('[ttt] [DataShareTest] <> [delete] leave'); - } - - query(uri, columns, predicates, callback) { - console.info('[ttt] [DataShareTest] <> [query] enter'); - if (predicates == null || predicates == undefined) { - console.info('[ttt] [DataShareTest] <> [query] invalid predicates'); - } - let rdbPredicates = dataAbility.createRdbPredicates(TBL_NAME, predicates); - rdbStore.query(rdbPredicates, 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); - } - }); - console.info('[ttt] [DataShareTest] <> [query] leave'); - } - - getType(uri: string) { - console.info('[ttt] [DataShareTest] <> [getType] enter'); - let ret = "image"; - console.info('[ttt] [DataShareTest] <> [getType] leave, ret:' + ret); - return ret; - } - - 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); - valueBuckets.forEach(vb => { - console.info('[ttt] [DataShareTest] <> [batchInsert] vb:' + JSON.stringify(vb)); - rdbStore.insert(TBL_NAME, vb, function(err, ret) { - console.info('[ttt] [DataShareTest] <> [batchInsert] callback ret:' + ret); - if (callback != undefined) { - callback(err, ret); - } - }); - }); - console.info('[ttt] [DataShareTest] <> [batchInsert] leave'); - } - - normalizeUri(uri: string) { - console.info('[ttt] [DataShareTest] <> [normalizeUri] enter'); - let ret = "normalize+" + uri; - console.info('[ttt] [DataShareTest] <> [normalizeUri] leave, ret:' + ret); - return ret; - } - - denormalizeUri(uri: string) { - console.info('[ttt] [DataShareTest] <> [denormalizeUri] enter'); - let ret = "denormalize+" + uri; - console.info('[ttt] [DataShareTest] <> [denormalizeUri] leave, ret:' + ret); - return ret; - } +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' + + +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)"; + +let rdbStore; + +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); + + 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)); + }); + callback(); + }); + } + + 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] bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb " ); +// console.info('[ttt] [DataAbilityTest] <> DataAbility openFile in'); +// let result = path + '/dataability.txt' +// console.info('[ttt] [DataAbilityTest] <> resultpath = ' + result); +// 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)); +// } +// fd1 = fd; +// console.log('[ttt] [DataAbilityTest] <> EtsFileIo fd =' + fd); +// console.info("[ttt] ccccccccccccccccccccccccccccccccccccccccc " ); +// 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); +// }) + } + + async insert(uri, value, callback) { + console.info('[ttt] [DataShareTest] <> [insert] enter'); + 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); + } + }); + console.info('[ttt] [DataShareTest] <> [insert] leave'); + } + + 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) { + console.info('[ttt] [DataShareTest] <> [query] enter'); + if (predicates == null || predicates == undefined) { + console.info('[ttt] [DataShareTest] <> [query] invalid predicates'); + } + console.info('[ttt] [DataShareTest] <> [query] values = ' + columns); + console.info('[ttt] [DataShareTest] <> [query] values = ' + JSON.stringify(columns)); + console.info('[ttt] [DataShareTest] <> [query] predicates = ' + predicates); + console.info('[ttt] [DataShareTest] <> [query] predicates = ' + JSON.stringify(predicates)); + try { + 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); + } + 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":0}; + callback(err,ret); + return ret; + } + + 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 + valueBuckets.forEach(vb => { + console.info('[ttt] [DataShareTest] <> [batchInsert] vb:' + JSON.stringify(vb)); + rdbStore.insert(TBL_NAME, vb, function (err, ret) { + console.info('[ttt] [DataShareTest] <> [batchInsert] callback ret:' + ret); + if (callback != undefined) { + callback(err, resultNum); + } + }); + }); + console.info('[ttt] [DataShareTest] <> [batchInsert] leave'); + } + + 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/DataShareTest-4.7/entry/src/main/ets/MainAbility/MainAbility.ts b/datashare/rdbServer0621/entry/src/main/ets/MainAbility/MainAbility.ts similarity index 39% rename from datashare/DataShareTest-4.7/entry/src/main/ets/MainAbility/MainAbility.ts rename to datashare/rdbServer0621/entry/src/main/ets/MainAbility/MainAbility.ts index 4647ebc..1eb3845 100644 --- a/datashare/DataShareTest-4.7/entry/src/main/ets/MainAbility/MainAbility.ts +++ b/datashare/rdbServer0621/entry/src/main/ets/MainAbility/MainAbility.ts @@ -1,10 +1,79 @@ 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"; + +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 dseUri = ("datashare:///com.ohos.data.datasharetest.DataShare"); let dseWant = { - "bundleName": "com.ohos.data.datasharetest", + "bundleName": "com.samples.datasharetest", "abilityName": "DataShareExtAbility", } @@ -34,20 +103,61 @@ export default class MainAbility extends Ability { globalThis.abilityContext = this.context; let context = this.context; - // 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); +// 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, dseWant, dseUri); - console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility end"); +// 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"); - globalThis.dsHelper = null; - console.log("[ttt] [DataShareTest] <> disconnectDataShareExtAbility end"); + 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 () => { @@ -84,7 +194,7 @@ export default class MainAbility extends Ability { globalThis.query = (async () => { console.log("[ttt] [DataShareTest] <> query begin"); - let da = await new dataAbility.DataAbilityPredicates(); + let da = new dataSharePredicates.DataSharePredicates(); if (da == null || da == undefined) { console.log("[ttt] [DataShareTest] <> da is null or undefined"); return; @@ -95,7 +205,18 @@ export default class MainAbility extends Ability { return; } da.equalTo("name", "ZhangSan"); - let result = await globalThis.dsHelper.query(dseUri, ["*"], da); + 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); + } + }); if (result != undefined) { count = result.rowCount; } @@ -104,14 +225,30 @@ export default class MainAbility extends Ability { }) 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 = {"name":"ZhangSan", "age":21}; + 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.log("[ttt] [DataShareTest] <> insert vb:" + JSON.stringify(vb)); console.log("[ttt] [DataShareTest] <> insert vb:" + JSON.stringify(vb)); - let ret = await globalThis.dsHelper.insert(dseUri, 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; @@ -123,13 +260,23 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> update end, DSHelper is null"); return; } - let da = new dataAbility.DataAbilityPredicates(); + 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 undefined"); + console.log("[ttt] [DataShareTest] <> da is null or u" + + "ndefined"); return; } - da.equalTo("name", "ZhangSan"); - let ret = await globalThis.dsHelper.update(dseUri, {"name":"ZhangSan", "age":"31"}, da); +// 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; @@ -141,13 +288,20 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> delete end, DSHelper is null"); return; } - let da = new dataAbility.DataAbilityPredicates(); + 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); +// 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; @@ -159,10 +313,17 @@ export default class MainAbility extends Ability { 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}, - {"name": "WangWu", "age": 51}, - {"name": "ZhaoLiu", "age": 61}); + {"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); @@ -170,13 +331,17 @@ export default class MainAbility extends Ability { }) 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"); +// 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"); + await globalThis.dsHelper.openFile(dseUri,"rwt",(err,data) => { + console.info("[ttt] [DataShareTest] <> openFile end, da is" + data); + }); + }) globalThis.getType = (async () => { @@ -185,7 +350,17 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> getType end, DSHelper is null"); return; } - let result = await globalThis.dsHelper.getType(dseUri); + 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; }) @@ -196,8 +371,16 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> getFileTypes end, DSHelper is null"); return; } - let result = await globalThis.dsHelper.getFileTypes(dseUri, "image/*"); - console.log("[ttt] [DataShareTest] <> getFileTypes end, result:" + result); + 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; }) @@ -207,8 +390,16 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> normalizeUri end, DSHelper is null"); return; } - let result = await globalThis.dsHelper.normalizeUri(dseUri); - console.log("[ttt] [DataShareTest] <> normalizeUri end, result:" + result); + 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; }) @@ -218,8 +409,16 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> denormalizeUri end, DSHelper is null"); return; } - let result = await globalThis.dsHelper.denormalizeUri(dseUri); - console.log("[ttt] [DataShareTest] <> denormalizeUri end, result:" + result); + 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; }) diff --git a/datashare/DataShareTest-4.7/entry/src/main/ets/pages/index.ets b/datashare/rdbServer0621/entry/src/main/ets/pages/index.ets similarity index 70% rename from datashare/DataShareTest-4.7/entry/src/main/ets/pages/index.ets rename to datashare/rdbServer0621/entry/src/main/ets/pages/index.ets index 40b485d..173b66c 100644 --- a/datashare/DataShareTest-4.7/entry/src/main/ets/pages/index.ets +++ b/datashare/rdbServer0621/entry/src/main/ets/pages/index.ets @@ -1,3 +1,7 @@ +import dataSharePredicates from '@ohos.data.dataSharePredicates' + + + @Entry @Component struct Index { @@ -8,6 +12,41 @@ struct Index { 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) @@ -15,6 +54,44 @@ struct Index { .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') @@ -98,24 +175,24 @@ struct Index { 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') - // }) +// 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() { diff --git a/datashare/DataShareTest-4.7/entry/src/main/module.json5 b/datashare/rdbServer0621/entry/src/main/module.json5 similarity index 59% rename from datashare/DataShareTest-4.7/entry/src/main/module.json5 rename to datashare/rdbServer0621/entry/src/main/module.json5 index 4c3ec58..21058ab 100644 --- a/datashare/DataShareTest-4.7/entry/src/main/module.json5 +++ b/datashare/rdbServer0621/entry/src/main/module.json5 @@ -3,11 +3,10 @@ "name": "entry", "type": "entry", "srcEntrance": "./ets/Application/AbilityStage.ts", - "description": "$string:entry_desc", + "description": "$string:phone_entry_dsc", "mainElement": "MainAbility", "deviceTypes": [ - "phone", - "tablet" + "default" ], "deliveryWithInstall": true, "installationFree": false, @@ -17,10 +16,12 @@ { "name": "MainAbility", "srcEntrance": "./ets/MainAbility/MainAbility.ts", - "description": "$string:MainAbility_desc", + "description": "$string:phone_entry_main", "icon": "$media:icon", - "label": "$string:MainAbility_label", + "label": "$string:entry_label", "visible": true, +// "orientation": "portrait", + "skills": [ { "entities": [ @@ -30,7 +31,9 @@ "action.system.home" ] } - ] + ], + "startWindowIcon":"$media:icon", + "startWindowBackground": "$color:color_1" } ], "extensionAbilities": [ @@ -40,9 +43,20 @@ "icon": "$media:icon", "description": "$string:description_datashareextability", "type": "dataShare", - "uri": "datashare://com.ohos.data.datasharetest.DataShare", + "uri": "datashare://com.samples.datasharetest.DataShare", "visible": true } ] +// "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/rdbServer0621/entry/src/main/resources/base/element/datashare.json b/datashare/rdbServer0621/entry/src/main/resources/base/element/datashare.json new file mode 100644 index 0000000..c946d63 --- /dev/null +++ b/datashare/rdbServer0621/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/rdbServer0621/entry/src/main/resources/base/element/string.json b/datashare/rdbServer0621/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..e1e9210 --- /dev/null +++ b/datashare/rdbServer0621/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/rdbServer0621/entry/src/main/resources/base/media/icon.png b/datashare/rdbServer0621/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" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, "inflight": { "version": "1.0.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "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" @@ -732,27 +480,27 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/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", + "resolved": "https://registry.npmjs.org/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", + "resolved": "https://registry.npmjs.org/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": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "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://repo.huaweicloud.com/repository/npm/is-absolute/-/is-absolute-1.0.0.tgz", + "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", @@ -761,51 +509,51 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "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://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "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://repo.huaweicloud.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "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://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz", + "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": "4.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + "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://repo.huaweicloud.com/repository/npm/is-plain-object/-/is-plain-object-5.0.0.tgz", + "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://repo.huaweicloud.com/repository/npm/is-relative/-/is-relative-1.0.0.tgz", + "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" @@ -813,12 +561,12 @@ }, "is-stream": { "version": "2.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-stream/-/is-stream-2.0.1.tgz", + "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://repo.huaweicloud.com/repository/npm/is-unc-path/-/is-unc-path-1.0.0.tgz", + "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" @@ -826,37 +574,32 @@ }, "is-utf8": { "version": "0.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "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://repo.huaweicloud.com/repository/npm/is-windows/-/is-windows-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, - "isarray": { - "version": "1.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "isexe": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved": "https://registry.npmjs.org/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": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "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://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "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://repo.huaweicloud.com/repository/npm/json5/-/json5-2.2.0.tgz", + "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" @@ -864,7 +607,7 @@ }, "jsonfile": { "version": "6.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/jsonfile/-/jsonfile-6.1.0.tgz", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { "graceful-fs": "^4.1.6", @@ -873,53 +616,20 @@ }, "kind-of": { "version": "6.0.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/kind-of/-/kind-of-6.0.3.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, - "last-run": { - "version": "1.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://repo.huaweicloud.com/repository/npm/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, "lcid": { "version": "1.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "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://repo.huaweicloud.com/repository/npm/liftoff/-/liftoff-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", "requires": { "extend": "^3.0.2", @@ -934,8 +644,8 @@ }, "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": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "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", @@ -946,37 +656,12 @@ }, "lodash": { "version": "4.17.21", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash/-/lodash-4.17.21.tgz", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" - }, "log4js": { "version": "6.4.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/log4js/-/log4js-6.4.1.tgz", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "requires": { "date-format": "^4.0.3", @@ -988,7 +673,7 @@ }, "make-iterator": { "version": "1.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/make-iterator/-/make-iterator-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", "requires": { "kind-of": "^6.0.2" @@ -996,31 +681,31 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "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://repo.huaweicloud.com/repository/npm/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "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.1", - "picomatch": "^2.2.3" + "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", + "resolved": "https://registry.npmjs.org/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", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" @@ -1028,27 +713,22 @@ }, "minimist": { "version": "1.2.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/minimist/-/minimist-1.2.6.tgz", + "resolved": "https://registry.npmjs.org/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", + "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://repo.huaweicloud.com/repository/npm/mute-stdout/-/mute-stdout-1.0.0.tgz", - "integrity": "sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0=" - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + "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://repo.huaweicloud.com/repository/npm/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "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", @@ -1057,22 +737,9 @@ "validate-npm-package-license": "^3.0.1" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, "npm-run-path": { "version": "4.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/npm-run-path/-/npm-run-path-4.0.1.tgz", + "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" @@ -1080,17 +747,17 @@ }, "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": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "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://repo.huaweicloud.com/repository/npm/object-keys/-/object-keys-1.1.1.tgz", + "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://repo.huaweicloud.com/repository/npm/object.assign/-/object.assign-4.1.2.tgz", + "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", @@ -1101,8 +768,8 @@ }, "object.defaults": { "version": "1.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "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", @@ -1112,8 +779,8 @@ }, "object.map": { "version": "1.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "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" @@ -1121,32 +788,23 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "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" } }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "once": { "version": "1.4.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "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://repo.huaweicloud.com/repository/npm/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { "mimic-fn": "^2.1.0" @@ -1154,16 +812,16 @@ }, "os-locale": { "version": "1.4.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "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://repo.huaweicloud.com/repository/npm/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "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", @@ -1172,57 +830,57 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "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://repo.huaweicloud.com/repository/npm/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "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://repo.huaweicloud.com/repository/npm/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "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://repo.huaweicloud.com/repository/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "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://repo.huaweicloud.com/repository/npm/path-key/-/path-key-3.1.1.tgz", + "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://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", + "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://repo.huaweicloud.com/repository/npm/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "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://repo.huaweicloud.com/repository/npm/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + "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://repo.huaweicloud.com/repository/npm/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "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", @@ -1231,51 +889,41 @@ }, "picomatch": { "version": "2.3.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/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": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "resolved": "https://registry.npmjs.org/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": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "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://repo.huaweicloud.com/repository/npm/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "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://repo.huaweicloud.com/repository/npm/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", - "integrity": "sha1-9ualItPmBwRSK/Db5oVu0g515Nw=" - }, - "printj": { - "version": "1.3.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/printj/-/printj-1.3.1.tgz", - "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved": "https://registry.npmjs.org/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", + "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://repo.huaweicloud.com/repository/npm/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "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", @@ -1284,34 +932,16 @@ }, "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": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "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" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/readdir-glob/-/readdir-glob-1.1.1.tgz", - "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", - "requires": { - "minimatch": "^3.0.4" - } - }, "rechoir": { "version": "0.8.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/rechoir/-/rechoir-0.8.0.tgz", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "requires": { "resolve": "^1.20.0" @@ -1319,22 +949,22 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "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://repo.huaweicloud.com/repository/npm/require-from-string/-/require-from-string-2.0.2.tgz", + "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://repo.huaweicloud.com/repository/npm/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "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://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.22.0.tgz", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "requires": { "is-core-module": "^2.8.1", @@ -1344,8 +974,8 @@ }, "resolve-dir": { "version": "1.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "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" @@ -1353,7 +983,7 @@ }, "resolve-package-path": { "version": "4.0.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/resolve-package-path/-/resolve-package-path-4.0.3.tgz", + "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" @@ -1361,32 +991,27 @@ }, "rfdc": { "version": "1.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/rfdc/-/rfdc-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/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", + "resolved": "https://registry.npmjs.org/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", + "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://repo.huaweicloud.com/repository/npm/shebang-command/-/shebang-command-2.0.0.tgz", + "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" @@ -1394,17 +1019,17 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "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://repo.huaweicloud.com/repository/npm/signal-exit/-/signal-exit-3.0.7.tgz", + "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://repo.huaweicloud.com/repository/npm/spdx-correct/-/spdx-correct-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "requires": { "spdx-expression-parse": "^3.0.0", @@ -1413,12 +1038,12 @@ }, "spdx-exceptions": { "version": "2.3.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "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://repo.huaweicloud.com/repository/npm/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "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", @@ -1427,27 +1052,22 @@ }, "spdx-license-ids": { "version": "3.0.11", - "resolved": "https://repo.huaweicloud.com/repository/npm/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, "streamroller": { - "version": "3.0.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/streamroller/-/streamroller-3.0.6.tgz", - "integrity": "sha512-Qz32plKq/MZywYyhEatxyYc8vs994Gz0Hu2MSYXXLD233UyPeIeRBZARIIGwFer4Mdb8r3Y2UqKkgyDghM6QCg==", + "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.6", + "date-format": "^4.0.10", "debug": "^4.3.4", - "fs-extra": "^10.0.1" + "fs-extra": "^10.1.0" } }, "string-width": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -1455,17 +1075,9 @@ "strip-ansi": "^3.0.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -1473,7 +1085,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "^0.2.0" @@ -1481,93 +1093,48 @@ }, "strip-final-newline": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "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://repo.huaweicloud.com/repository/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "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" - }, - "dependencies": { - "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==" - } } }, - "type": { - "version": "1.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, "unc-path-regex": { "version": "0.1.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, - "undertaker": { - "version": "1.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, "universalify": { "version": "2.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/universalify/-/universalify-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/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", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, "v8flags": { "version": "3.2.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/v8flags/-/v8flags-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "requires": { "homedir-polyfill": "^1.0.1" @@ -1575,7 +1142,7 @@ }, "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", + "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", @@ -1584,7 +1151,7 @@ }, "which": { "version": "1.3.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/which/-/which-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { "isexe": "^2.0.0" @@ -1592,12 +1159,12 @@ }, "which-module": { "version": "1.0.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/which-module/-/which-module-1.0.0.tgz", + "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://repo.huaweicloud.com/repository/npm/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "^1.0.1", @@ -1606,17 +1173,17 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "y18n": { "version": "3.2.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/y18n/-/y18n-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" }, "yargs": { "version": "7.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/yargs/-/yargs-7.1.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "requires": { "camelcase": "^3.0.0", @@ -1636,22 +1203,12 @@ }, "yargs-parser": { "version": "5.0.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/yargs-parser/-/yargs-parser-5.0.1.tgz", + "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" } - }, - "zip-stream": { - "version": "4.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - } } } } diff --git a/datashare/DataShareTest-4.7/package.json b/datashare/rdbServer0621/package.json similarity index 71% rename from datashare/DataShareTest-4.7/package.json rename to datashare/rdbServer0621/package.json index b2d9b5b..ecfe4b3 100644 --- a/datashare/DataShareTest-4.7/package.json +++ b/datashare/rdbServer0621/package.json @@ -11,8 +11,9 @@ "repository":{}, "version":"1.0.0", "dependencies":{ - "@ohos/hvigor-ohos-plugin":"1.0.6", + "@ohos/hypium":"1.0.0", + "@ohos/hvigor-ohos-plugin":"1.1.3", "hypium":"^1.0.0", - "@ohos/hvigor":"1.0.6" + "@ohos/hvigor":"1.1.3" } } \ No newline at end of file -- Gitee