From e32e8d944b327af0f57c2a9c46427079133590e1 Mon Sep 17 00:00:00 2001 From: duanweiling Date: Fri, 8 Jul 2022 16:41:02 +0800 Subject: [PATCH] =?UTF-8?q?DataShare=20=E6=B5=8B=E8=AF=95hap=E5=8F=8Ademo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duanweiling --- datashare/DataShareClient/build-profile.json5 | 4 +- .../DataShareClient/entry-default-signed.hap | Bin 498325 -> 497373 bytes .../src/main/ets/MainAbility/MainAbility.ts | 94 +- .../entry/src/main/ets/pages/index.ets | 3 +- .../entry/src/main/ets/pages/index/index.ets | 9 +- .../entry/src/main/module.json5 | 11 - datashare/rdbServer/.gitignore | 5 +- datashare/rdbServer/AppScope/app.json5 | 11 - .../resources/base/element/string.json | 8 - .../resources/base/media/app_icon.png | Bin 6790 -> 0 bytes datashare/rdbServer/build-profile.json5 | 39 +- datashare/rdbServer/entry-default-signed.hap | Bin 257807 -> 279407 bytes datashare/rdbServer/entry/.gitignore | 3 - datashare/rdbServer/entry/build-profile.json5 | 9 - datashare/rdbServer/entry/hvigorfile.js | 2 - datashare/rdbServer/entry/package-lock.json | 5 - datashare/rdbServer/entry/package.json | 17 - datashare/rdbServer/hvigorfile.js | 4 +- datashare/rdbServer/package-lock.json | 1213 +---------------- datashare/rdbServer/package.json | 32 +- .../src/main/ets/Application/AbilityStage.ts | 0 .../DataShareExtAbility.ts | 129 +- .../src/main/ets/MainAbility/MainAbility.ts | 49 +- .../{entry => }/src/main/ets/pages/index.ets | 77 +- .../{entry => }/src/main/module.json5 | 5 + .../resources/base/element/datashare.json | 0 .../main/resources/base/element/string.json | 0 .../src/main/resources/base/media/icon.png | Bin .../resources/base/profile/form_config.json | 0 .../resources/base/profile/main_pages.json | 0 30 files changed, 198 insertions(+), 1531 deletions(-) delete mode 100644 datashare/rdbServer/AppScope/app.json5 delete mode 100644 datashare/rdbServer/AppScope/resources/base/element/string.json delete mode 100644 datashare/rdbServer/AppScope/resources/base/media/app_icon.png delete mode 100644 datashare/rdbServer/entry/.gitignore delete mode 100644 datashare/rdbServer/entry/build-profile.json5 delete mode 100644 datashare/rdbServer/entry/hvigorfile.js delete mode 100644 datashare/rdbServer/entry/package-lock.json delete mode 100644 datashare/rdbServer/entry/package.json rename datashare/rdbServer/{entry => }/src/main/ets/Application/AbilityStage.ts (100%) rename datashare/rdbServer/{entry => }/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts (66%) rename datashare/rdbServer/{entry => }/src/main/ets/MainAbility/MainAbility.ts (91%) rename datashare/rdbServer/{entry => }/src/main/ets/pages/index.ets (81%) rename datashare/rdbServer/{entry => }/src/main/module.json5 (90%) rename datashare/rdbServer/{entry => }/src/main/resources/base/element/datashare.json (100%) rename datashare/rdbServer/{entry => }/src/main/resources/base/element/string.json (100%) rename datashare/rdbServer/{entry => }/src/main/resources/base/media/icon.png (100%) rename datashare/rdbServer/{entry => }/src/main/resources/base/profile/form_config.json (100%) rename datashare/rdbServer/{entry => }/src/main/resources/base/profile/main_pages.json (100%) diff --git a/datashare/DataShareClient/build-profile.json5 b/datashare/DataShareClient/build-profile.json5 index 4467a41..8577923 100644 --- a/datashare/DataShareClient/build-profile.json5 +++ b/datashare/DataShareClient/build-profile.json5 @@ -5,9 +5,9 @@ "name": "default", "material": { "certpath": "C:\\Users\\PaDaBoo\\.ohos\\config\\openharmony\\auto_ohos.cer", - "storePassword": "00000018FDF396A3F03C66559127A7D0751288DD5E76DC04006456474B4E35406CB0BE096C3DFF65", + "storePassword": "0000001894B1CD8CBE2D21F2684807AEFAE491EE02AC4B7D9F3D9F655A708085C7E0C3C1DFECEF29", "keyAlias": "debugKey", - "keyPassword": "000000185C72D68CAC4CBEA6B81623B52F65F944DCC970B3AAC07175F29F04160DB05EF2142657EF", + "keyPassword": "00000018D387D09DBB0800B992D813F4B57C370298C34506AA9FC036BC085EFC88A537A3A57F855F", "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" diff --git a/datashare/DataShareClient/entry-default-signed.hap b/datashare/DataShareClient/entry-default-signed.hap index dc303fd8b09e6820cfc053cb756e6fc0aeebc4c7..ffc10f993f4637243edef8b230c3fb6588bb82b8 100644 GIT binary patch delta 77995 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 E0F)4yv;Y7A delta 78657 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 F{sTZ?1ONa4 diff --git a/datashare/DataShareClient/entry/src/main/ets/MainAbility/MainAbility.ts b/datashare/DataShareClient/entry/src/main/ets/MainAbility/MainAbility.ts index d9db3c7..29c63e6 100644 --- a/datashare/DataShareClient/entry/src/main/ets/MainAbility/MainAbility.ts +++ b/datashare/DataShareClient/entry/src/main/ets/MainAbility/MainAbility.ts @@ -3,9 +3,12 @@ import dataShare from '@ohos.data.dataShare' import rpc from "@ohos.rpc"; import dataSharePredicates from '@ohos.data.dataSharePredicates' import distributedData from '@ohos.data.distributedData'; +import deviceManager from '@ohos.distributedHardware.deviceManager'; let kvManager; let kvdbStore; +let devManager; + const BUNDLE_NAME = 'com.samples.myapplication'; const STORE_ID = 'storeId'; @@ -103,67 +106,22 @@ export default class MainAbility extends Ability { 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 deviceIds = []; + deviceManager.createDeviceManager(BUNDLE_NAME, (err, value) => { + if (err) { + console.info("[ttt] [DataShareTest] <> [createDeviceManager] err = " + err); } - 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; + devManager = value; + console.info('[ttt] [DataShareTest] <> [createDeviceManager] enter'); + // get deviceIds + if (devManager != null) { + var devices = devManager.getTrustedDeviceListSync(); + for (var i = 0; i < devices.length; i++) { + deviceIds[i] = devices[i].deviceId; } - console.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); - }); - }); - }) - - + } + console.log("[ttt] [DataShareTest] <> deviceIds :" + deviceIds); + }); globalThis.connectDataShareExtAbility = (async () => { console.log("[ttt] [DataShareTest] <> connectDataShareExtAbility begin"); @@ -218,9 +176,10 @@ export default class MainAbility extends Ability { } let getDa = await globalThis.getDa(); let da = getDa.da; -// let da = new dataSharePredicates.DataSharePredicates(); -// let arr = ["name"]; -// da.inKeys(arr); + da.inDevices(deviceIds); +// da.notEqualTo("$.name","wsx") +// da.limit(2,2); +// da.equalTo("$.name","rpf") let columnArray = getDa.columnArray; let result = await globalThis.dsHelper.query(dseUri, da, columnArray, globalThis.getResultSet); if (result != undefined) { @@ -422,15 +381,15 @@ export default class MainAbility extends Ability { 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); + let result = await globalThis.dsHelper.openFile(dseUri,"rwt", globalThis.openFileCallback); + console.log("[ttt] [DataShareClientTest] <> openFile end, result:" + result); return result; }) - globalThis.getTypeCallback = (async (err, data) => { + globalThis.openFileCallback = (async (err, data) => { console.log("[ttt] [DataShareClientTest] <> getTypeCallback = " + data); console.log("[ttt] [DataShareClientTest] <> getTypeCallback json= " + JSON.stringify(data)); - AppStorage.SetOrCreate('result', data); + AppStorage.SetOrCreate('result', JSON.stringify(data)); // if(err != -1) { // }else { // AppStorage.SetOrCreate('result', '操作失败'); @@ -624,6 +583,7 @@ export default class MainAbility extends Ability { return; } let optionLength = AppStorage.Get('optionLength'); + console.info("[ttt] [DataShareClientTest] <> optionLength = " + optionLength) let updateOptionName = ''; let updateOptionAge = ''; let updateOptionBoolean = ''; @@ -683,6 +643,8 @@ export default class MainAbility extends Ability { }else if(predicate.functionCheck == 'orderByDesc') { da.orderByDesc(predicate.keyCheck); }else if(predicate.functionCheck == 'limit') { + console.info("ttt Number(predicate.value.split(',')[0]) = " + Number(predicate.value.split(',')[0])); + console.info("ttt Number(predicate.value.split(',')[1]) = " + Number(predicate.value.split(',')[1])); da.limit(Number(predicate.value.split(',')[0]),Number(predicate.value.split(',')[1])); }else if(predicate.functionCheck == 'isNotNull') { da.isNotNull(predicate.keyCheck); diff --git a/datashare/DataShareClient/entry/src/main/ets/pages/index.ets b/datashare/DataShareClient/entry/src/main/ets/pages/index.ets index a80b79c..e4a6a25 100644 --- a/datashare/DataShareClient/entry/src/main/ets/pages/index.ets +++ b/datashare/DataShareClient/entry/src/main/ets/pages/index.ets @@ -374,7 +374,8 @@ struct Index { if(this.operationSelection == 'batchInsert') { let ret = await globalThis.batchInsert(); console.info('[ttt] [DataShareClientTest] <> batchInsert onclick enter'); - }if(this.operationSelection == 'openFile') { + } + if(this.operationSelection == 'openFile') { let ret = await globalThis.openFile(); console.info('[ttt] [DataShareClientTest] <> openFile onclick enter'); } diff --git a/datashare/DataShareClient/entry/src/main/ets/pages/index/index.ets b/datashare/DataShareClient/entry/src/main/ets/pages/index/index.ets index ce736d3..7df00df 100644 --- a/datashare/DataShareClient/entry/src/main/ets/pages/index/index.ets +++ b/datashare/DataShareClient/entry/src/main/ets/pages/index/index.ets @@ -4,8 +4,7 @@ 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'; @@ -23,12 +22,12 @@ async function routePage() { @Entry @Component struct Index { - @State message: string = "Main thread message filed" + @State message: string = "Thread message filed" build() { Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { - Text('DataShare Client Test') - .fontSize(40) + Text('DataShare Client') + .fontSize(30) .fontWeight(FontWeight.Bold) Text(`${this.message}`) diff --git a/datashare/DataShareClient/entry/src/main/module.json5 b/datashare/DataShareClient/entry/src/main/module.json5 index fcfc9a5..5ecfdb6 100644 --- a/datashare/DataShareClient/entry/src/main/module.json5 +++ b/datashare/DataShareClient/entry/src/main/module.json5 @@ -34,16 +34,5 @@ "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/rdbServer/.gitignore b/datashare/rdbServer/.gitignore index 2981358..16ad228 100644 --- a/datashare/rdbServer/.gitignore +++ b/datashare/rdbServer/.gitignore @@ -1,4 +1,3 @@ /node_modules -/local.properties -/.idea -**/build \ No newline at end of file +/.preview +/build \ No newline at end of file diff --git a/datashare/rdbServer/AppScope/app.json5 b/datashare/rdbServer/AppScope/app.json5 deleted file mode 100644 index 7f09ec2..0000000 --- a/datashare/rdbServer/AppScope/app.json5 +++ /dev/null @@ -1,11 +0,0 @@ -{ - "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/rdbServer/AppScope/resources/base/element/string.json b/datashare/rdbServer/AppScope/resources/base/element/string.json deleted file mode 100644 index 616c648..0000000 --- a/datashare/rdbServer/AppScope/resources/base/element/string.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "datasharetest" - } - ] -} diff --git a/datashare/rdbServer/AppScope/resources/base/media/app_icon.png b/datashare/rdbServer/AppScope/resources/base/media/app_icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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�Hk_wx=%?O|s~T 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 W{Z@= 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" - } - } - } + "lockfileVersion": 1 } diff --git a/datashare/rdbServer/package.json b/datashare/rdbServer/package.json index ecfe4b3..8866440 100644 --- a/datashare/rdbServer/package.json +++ b/datashare/rdbServer/package.json @@ -1,19 +1,17 @@ { - "license":"ISC", - "devDependencies":{}, - "name":"datasharetest", - "ohos":{ - "org":"huawei", - "directoryLevel":"project", - "buildTool":"hvigor" + "license": "ISC", + "devDependencies": {}, + "keywords": [], + "author": "", + "name": "DataShareTest", + "ohos": { + "org": "huawei", + "directoryLevel": "module", + "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 + "description": "example description", + "main": "hvigorfile.js", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/datashare/rdbServer/entry/src/main/ets/Application/AbilityStage.ts b/datashare/rdbServer/src/main/ets/Application/AbilityStage.ts similarity index 100% rename from datashare/rdbServer/entry/src/main/ets/Application/AbilityStage.ts rename to datashare/rdbServer/src/main/ets/Application/AbilityStage.ts diff --git a/datashare/rdbServer/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts b/datashare/rdbServer/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts similarity index 66% rename from datashare/rdbServer/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts rename to datashare/rdbServer/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts index 40f5413..1c8c896 100644 --- a/datashare/rdbServer/entry/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts +++ b/datashare/rdbServer/src/main/ets/DataShareExtAbility/DataShareExtAbility.ts @@ -5,15 +5,22 @@ import rdb from '@ohos.data.rdb'; import hilog from '@ohos.hilog'; import featureAbility from '@ohos.ability.featureAbility' import fileIo from '@ohos.fileio' - +import deviceManager from '@ohos.distributedHardware.deviceManager'; +import dataShare from '@ohos.data.dataShare' let DB_NAME = "DB00.db"; let TBL_NAME = "TBL00"; let DDL_TBL_CREATE = "CREATE TABLE IF NOT EXISTS " + TBL_NAME + " (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, phoneNumber DOUBLE, isStudent BOOLEAN, Binary BINARY)"; +const BUNDLE_NAME = 'com.samples.datasharetest'; + +let dseUri = ("datashare:///com.samples.datasharetest.DataShare"); + let rdbStore; +let result; +let dsHelperr; export default class DataShareExtAbility extends Extension { private rdbStore_; @@ -22,6 +29,8 @@ export default class DataShareExtAbility extends Extension { onCreate(want, callback) { console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, want:' + want.abilityName); console.log('[ttt] [DataShareTest] <> this.context:' + this.context); + result = this.context.cacheDir + '/datashare.txt' + console.info('[ttt] [DataAbilityTest] <> resultpath = ' + result); rdb.getRdbStore(this.context, { name: DB_NAME @@ -32,40 +41,14 @@ export default class DataShareExtAbility extends Extension { rdbStore.executeSql(DDL_TBL_CREATE, [], function (err) { console.log('[ttt] [DataShareTest] <> DataShareExtAbility onCreate, executeSql done err:' + JSON.stringify(err)); }); + rdbStore.setDistributedTables(["TBL00"], (err,data) => { + console.info("[ttt] [DataShareTest] <> setDistributedTables err = " + err); + console.info("[ttt] [DataShareTest] <> setDistributedTables data = " + data); + }); callback(); }); } - 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) { @@ -80,7 +63,16 @@ export default class DataShareExtAbility extends Extension { callback(err, ret); } }); - console.info('[ttt] [DataShareTest] <> [insert] leave'); + dataShare.createDataShareHelper(this.context, dseUri, (err,data)=>{ + console.info("[ttt] [DataShareTest] <> -- insert --, globalThis.dsHelper = " + dsHelperr); + console.info("[ttt] [DataShareTest] <> -- insert --, data = " + data); + console.info("[ttt] [DataShareTest] <> -- insert --, err = " + err); + console.info("[ttt] [DataShareTest] <> -- insert --, JSON.stringify(err) = " + JSON.stringify(err)); + data.notifyChange(dseUri,(err,data) => { + console.log("[ttt] [DataShareClientTest] <> insert notifyChange = " + data); + console.log("[ttt] [DataShareClientTest] <> insert notifyChange json= " + JSON.stringify(data)); + }) + }); } update(uri, predicates, value, callback) { @@ -104,6 +96,16 @@ export default class DataShareExtAbility extends Extension { } catch (err) { console.error('[ttt] [DataShareTest] <> [update] error' + err); } + dataShare.createDataShareHelper(this.context, dseUri, (err,data)=>{ + console.info("[ttt] [DataShareTest] <> -- update --, globalThis.dsHelper = " + dsHelperr); + console.info("[ttt] [DataShareTest] <> -- update --, data = " + data); + console.info("[ttt] [DataShareTest] <> -- update --, err = " + err); + console.info("[ttt] [DataShareTest] <> -- update --, JSON.stringify(err) = " + JSON.stringify(err)); + data.notifyChange(dseUri,(err,data) => { + console.log("[ttt] [DataShareClientTest] <> update notifyChange = " + data); + console.log("[ttt] [DataShareClientTest] <> update notifyChange json= " + JSON.stringify(data)); + }) + }); console.info('[ttt] [DataShareTest] <> [update] leave'); } @@ -125,6 +127,16 @@ export default class DataShareExtAbility extends Extension { } catch (err) { console.error('[ttt] [DataShareTest] <> [delete] error' + err); } + dataShare.createDataShareHelper(this.context, dseUri, (err,data)=>{ + console.info("[ttt] [DataShareTest] <> -- delete --, globalThis.dsHelper = " + dsHelperr); + console.info("[ttt] [DataShareTest] <> -- delete --, data = " + data); + console.info("[ttt] [DataShareTest] <> -- delete --, err = " + err); + console.info("[ttt] [DataShareTest] <> -- delete --, JSON.stringify(err) = " + JSON.stringify(err)); + data.notifyChange(dseUri,(err,data) => { + console.log("[ttt] [DataShareClientTest] <> delete notifyChange = " + data); + console.log("[ttt] [DataShareClientTest] <> delete notifyChange json= " + JSON.stringify(data)); + }) + }); console.info('[ttt] [DataShareTest] <> [delete] leave'); } @@ -147,21 +159,19 @@ export default class DataShareExtAbility extends Extension { callback(err, resultSet); } }); + console.info('[ttt] [DataShareTest] <> [insert] leave'); } catch (err) { console.error('[ttt] [DataShareTest] <> [query] error' + err); } + rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH,predicates,(err,data) => { + if(err) { + console.info("[ttt] [DataShareTest] <> [sync] err = " + err); + } + console.info("[ttt] [DataShareTest] <> [sync] data = " + JSON.stringify(data)); + }) 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) { @@ -182,14 +192,47 @@ export default class DataShareExtAbility extends Extension { console.info('[ttt] [DataShareTest] <> [batchInsert] leave'); } + getType(uri: string,callback) { + console.info('[ttt] [DataShareTest] <> [getType] enter'); + let ret = "image"; + console.info('[ttt] [DataShareTest] <> [getType] leave, ret:' + ret); + let err = {"code":0}; + callback(err,ret); + return ret; + } + + getFileTypes(uri: string, mimeTypeFilter: string, callback) { + console.info('[ttt] [DataShareTest] <> [getFileTypes] enter'); + let ret = new Array("type01", "type02", "type03"); + console.info('[ttt] [DataShareTest] <> [getFileTypes] leave, ret:' + ret); + let err = {"code":2}; + callback(err,ret); + return ret; + } + + openFile(uri: string, mode: string, callback) { + console.info('[ttt] [DataAbilityTest] <> DataAbility openFile in'); + fileIo.open(result, 0o2 | 0o100, 0o666, function(err, fd) { + if(err) { + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + err); + console.info('[ttt] [DataAbilityTest] <> OpenFile err = ' + JSON.stringify(err)); + } + console.log('[ttt] [DataAbilityTest] <> EtsFileIo fd =' + fd); + let num = fileIo.writeSync(fd, "this is a interesting test of DataAbility from the Great RPF"); + console.info("[ttt] [DataAbillityTest] <> WriteSync length = " + num); + console.info("[ttt] [DataAbillityTest] <> WriteSync fd = " + fd); + callback(err,fd); + }) + } + normalizeUri(uri: string,callback) { console.info('[ttt] [DataShareTest] <> [normalizeUri] enter'); let ret = "normalize+" + uri; console.info('[ttt] [DataShareTest] <> [normalizeUri] leave, ret:' + ret); let err = {"code":2}; - console.info('[ttt] [DataShareTest] <> [normalizeUri] enter!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + console.info('[ttt] [DataShareTest] <> [normalizeUri] enter!!!'); callback(err,ret); - console.info('[ttt] [DataShareTest] <> [normalizeUri] leave!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); + console.info('[ttt] [DataShareTest] <> [normalizeUri] leave!!!'); } denormalizeUri(uri: string,callback) { diff --git a/datashare/rdbServer/entry/src/main/ets/MainAbility/MainAbility.ts b/datashare/rdbServer/src/main/ets/MainAbility/MainAbility.ts similarity index 91% rename from datashare/rdbServer/entry/src/main/ets/MainAbility/MainAbility.ts rename to datashare/rdbServer/src/main/ets/MainAbility/MainAbility.ts index 1eb3845..16b6426 100644 --- a/datashare/rdbServer/entry/src/main/ets/MainAbility/MainAbility.ts +++ b/datashare/rdbServer/src/main/ets/MainAbility/MainAbility.ts @@ -2,6 +2,8 @@ import Ability from '@ohos.application.Ability' import ability_particleAbility from '@ohos.ability.particleAbility' import dataSharePredicates from '@ohos.data.dataSharePredicates' import dataShare from '@ohos.data.dataShare' +import featureAbility from '@ohos.ability.featureAbility' + import dataAbility from '@ohos.data.dataAbility' import rdb from '@ohos.data.rdb'; @@ -101,8 +103,12 @@ export default class MainAbility extends Ability { // Main window is created, set main page for this ability console.log("[ttt] [DataShareTest] <> MainAbility onWindowStageCreate") globalThis.abilityContext = this.context; - let context = this.context; + + context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], function (err,result) { + console.info("[ttt] [DataShareTest] <> permission err = " + JSON.stringify(err)) + console.info("[ttt] [DataShareTest] <> permission result = " + JSON.stringify(result)) + }) // console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.stageMode:' + context.stageMode); // console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.bundleName:' + context.bundleName); // console.log('[ttt] [DataShareTest] <> MainAbility onWindowStageCreate this.context.name:' + context.name); @@ -181,17 +187,6 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> off end"); }) - // globalThis.openFile = (async () => { - // console.log("[ttt] [DataShareTest] <> openFile begin"); - // if (globalThis.dsHelper == null) { - // console.log("[ttt] [DataShareTest] <> openFile end, DSHelper is null"); - // return; - // } - // let result = await globalThis.dsHelper.openFile(dseUri, "rwt"); - // console.log("[ttt] [DataShareTest] <> openFile end, result:" + result); - // return result; - // }) - globalThis.query = (async () => { console.log("[ttt] [DataShareTest] <> query begin"); let da = new dataSharePredicates.DataSharePredicates(); @@ -204,7 +199,8 @@ export default class MainAbility extends Ability { console.log("[ttt] [DataShareTest] <> query end, DSHelper is null"); return; } - da.equalTo("name", "ZhangSan"); + da.notEqualTo("$.name", "rpf"); + da.limit(1,0); let result = await globalThis.dsHelper.query(dseUri, da, ["*"], (err,resultSet)=> { if (err) { console.error("[ttt] [DataShareTest] <> query err:" + JSON.stringify(err)); @@ -331,17 +327,24 @@ 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"); - await globalThis.dsHelper.openFile(dseUri,"rwt",(err,data) => { - console.info("[ttt] [DataShareTest] <> openFile end, da is" + data); - }); + console.log("[ttt] [DataShareTest] <> notifyChange begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> notifyChange end, DSHelper is null"); + return; + } + await globalThis.dsHelper.notifyChange(dseUri); + console.log("[ttt] [DataShareTest] <> notifyChange end"); + }) + globalThis.openFile = (async () => { + console.log("[ttt] [DataShareTest] <> openFile begin"); + if (globalThis.dsHelper == null) { + console.log("[ttt] [DataShareTest] <> openFile end, DSHelper is null"); + return; + } + let result = await globalThis.dsHelper.openFile(dseUri, "rwt"); + console.log("[ttt] [DataShareTest] <> openFile end, result:" + result); + return result; }) globalThis.getType = (async () => { diff --git a/datashare/rdbServer/entry/src/main/ets/pages/index.ets b/datashare/rdbServer/src/main/ets/pages/index.ets similarity index 81% rename from datashare/rdbServer/entry/src/main/ets/pages/index.ets rename to datashare/rdbServer/src/main/ets/pages/index.ets index 173b66c..47c4656 100644 --- a/datashare/rdbServer/entry/src/main/ets/pages/index.ets +++ b/datashare/rdbServer/src/main/ets/pages/index.ets @@ -10,7 +10,7 @@ struct Index { build() { Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { Text('DataShare Extension Ability Test') - .fontSize(40) + .fontSize(25) .fontWeight(FontWeight.Bold) .onClick(async () => { console.info('[ttt] [DataShareTest] <> dataSharePredicates build begin'); @@ -54,44 +54,6 @@ 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') @@ -175,24 +137,25 @@ 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() + console.info('[ttt] [DataShareTest] <> OpenFile onclick ret = ' + ret); + this.message += "\n\n Test Result: " + ret; + console.info('[ttt] [DataShareTest] <> OpenFile onclick leave') + }) } Row() { diff --git a/datashare/rdbServer/entry/src/main/module.json5 b/datashare/rdbServer/src/main/module.json5 similarity index 90% rename from datashare/rdbServer/entry/src/main/module.json5 rename to datashare/rdbServer/src/main/module.json5 index 21058ab..dbadcb1 100644 --- a/datashare/rdbServer/entry/src/main/module.json5 +++ b/datashare/rdbServer/src/main/module.json5 @@ -46,6 +46,11 @@ "uri": "datashare://com.samples.datasharetest.DataShare", "visible": true } + ], + "requestPermissions": [ + { + "name" : "ohos.permission.DISTRIBUTED_DATASYNC" + } ] // "requestPermissions": [ // { diff --git a/datashare/rdbServer/entry/src/main/resources/base/element/datashare.json b/datashare/rdbServer/src/main/resources/base/element/datashare.json similarity index 100% rename from datashare/rdbServer/entry/src/main/resources/base/element/datashare.json rename to datashare/rdbServer/src/main/resources/base/element/datashare.json diff --git a/datashare/rdbServer/entry/src/main/resources/base/element/string.json b/datashare/rdbServer/src/main/resources/base/element/string.json similarity index 100% rename from datashare/rdbServer/entry/src/main/resources/base/element/string.json rename to datashare/rdbServer/src/main/resources/base/element/string.json diff --git a/datashare/rdbServer/entry/src/main/resources/base/media/icon.png b/datashare/rdbServer/src/main/resources/base/media/icon.png similarity index 100% rename from datashare/rdbServer/entry/src/main/resources/base/media/icon.png rename to datashare/rdbServer/src/main/resources/base/media/icon.png diff --git a/datashare/rdbServer/entry/src/main/resources/base/profile/form_config.json b/datashare/rdbServer/src/main/resources/base/profile/form_config.json similarity index 100% rename from datashare/rdbServer/entry/src/main/resources/base/profile/form_config.json rename to datashare/rdbServer/src/main/resources/base/profile/form_config.json diff --git a/datashare/rdbServer/entry/src/main/resources/base/profile/main_pages.json b/datashare/rdbServer/src/main/resources/base/profile/main_pages.json similarity index 100% rename from datashare/rdbServer/entry/src/main/resources/base/profile/main_pages.json rename to datashare/rdbServer/src/main/resources/base/profile/main_pages.json -- Gitee