UNPKG

@cordova-plugin-agconnect/clouddb

Version:
163 lines (162 loc) 8.04 kB
"use strict"; /* * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setUserKey = exports.updateDataEncryptionKey = exports.disableNetwork = exports.enableNetwork = exports.closeCloudDBZone = exports.deleteCloudDBZone = exports.addDataEncryptionKeyListener = exports.addEventListener = exports.openCloudDBZone = exports.openCloudDBZone2 = exports.getCloudDBZoneConfigs = exports.createObjectType = exports.initialize = exports.AGCCloudDBTransaction = exports.AGCCloudDBQuery = void 0; const AGCCloudDBZone_1 = __importDefault(require("./AGCCloudDBZone")); const utils_1 = require("./utils"); const AGCCloudDBQuery_1 = __importDefault(require("./AGCCloudDBQuery")); exports.AGCCloudDBQuery = AGCCloudDBQuery_1.default; const AGCCloudDBTransaction_1 = __importDefault(require("./AGCCloudDBTransaction")); exports.AGCCloudDBTransaction = AGCCloudDBTransaction_1.default; __exportStar(require("./interfaces"), exports); __exportStar(require("./enums"), exports); /** * Initializes AGConnectCloudDB. */ function initialize() { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["initialize"]); } exports.initialize = initialize; /** * This method is called to create or modify an object type, * define a set of CloudDBZoneObject storage objects, * and store data generated by the application. */ function createObjectType() { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["createObjectType"]); } exports.createObjectType = createObjectType; /** * Obtains all CloudDBZoneConfig lists in the AGConnectCloudDB instance on the device. * @returns CloudDBZoneConfig object and configure Cloud DB zone information * such as the synchronization property, access property, encrypted storage property, * and data persistency property. */ function getCloudDBZoneConfigs() { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["getCloudDBZoneConfigs"]); } exports.getCloudDBZoneConfigs = getCloudDBZoneConfigs; /** * Asynchronously creates or opens an object of a Cloud DB zone which represents a unique data storage zone. * @param config The callback to execute when the Promise is rejected. * @param isAllowToCreate Specifies whether to allow Cloud DB zone object creation. * @returns Cloud DB zone object. Developers can use this object to add, delete, modify, query, and listen on data. */ function openCloudDBZone2(config, isAllowToCreate) { return __awaiter(this, void 0, void 0, function* () { let id = utils_1.randomNumber().toString(); yield utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["openCloudDBZone2", config, isAllowToCreate, id]); return new AGCCloudDBZone_1.default(id); }); } exports.openCloudDBZone2 = openCloudDBZone2; /** * Asynchronously creates or opens an object of a Cloud DB zone which represents a unique data storage zone. * @param config The callback to execute when the Promise is rejected. * @param isAllowToCreate Specifies whether to allow Cloud DB zone object creation. * @returns Cloud DB zone object. Developers can use this object to add, delete, modify, query, and listen on data. */ function openCloudDBZone(config, isAllowToCreate) { return __awaiter(this, void 0, void 0, function* () { let id = utils_1.randomNumber().toString(); yield utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["openCloudDBZone", config, isAllowToCreate, id]); return new AGCCloudDBZone_1.default(id); }); } exports.openCloudDBZone = openCloudDBZone; /** * Listens to registered user key change events. * @param callback Callback function to be called when listener is triggered. */ function addEventListener(callback) { window.subscribeAGCEvent("onUserKeyChange", callback); return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["addEventListener"]); } exports.addEventListener = addEventListener; /** * Registers a listener for data key changes. * @param needFetchDataEncryptionKey Checks whether to update the data key. * If the value is true: update is required, the value is false: update is not required. * @param callback The callback to execute when the Promise is rejected. */ function addDataEncryptionKeyListener(needFetchDataEncryptionKey, callback) { window.subscribeAGCEvent("onDataKeyChange", callback); return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["addDataEncryptionKeyListener", needFetchDataEncryptionKey]); } exports.addDataEncryptionKeyListener = addDataEncryptionKeyListener; /** * Deletes the Cloud DB zone object that is no longer used on the device. * @param zoneName The callback to execute when the Promise is rejected. */ function deleteCloudDBZone(zoneName) { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["deleteCloudDBZone", zoneName]); } exports.deleteCloudDBZone = deleteCloudDBZone; /** * Closes the Cloud DB zone object opened on the device. * @param id An id of Cloud DB zone to be closed. */ function closeCloudDBZone(id) { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["closeCloudDBZone", id]); } exports.closeCloudDBZone = closeCloudDBZone; /** * Enables data synchronization between the device and cloud. * @param zoneName Cloud DB zone name */ function enableNetwork(zoneName) { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["enableNetwork", zoneName]); } exports.enableNetwork = enableNetwork; /** * Disables data synchronization between the device and cloud. * @param zoneName Cloud DB zone name */ function disableNetwork(zoneName) { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["disableNetwork", zoneName]); } exports.disableNetwork = disableNetwork; /** * A data key used to encrypt user data, which is automatically generated by the system. * To prevent from being cracked when using one key for a long time, * you can call this method to update the data key. * @returns True if operation successful, otherwise false. */ function updateDataEncryptionKey() { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["updateDataEncryptionKey"]); } exports.updateDataEncryptionKey = updateDataEncryptionKey; /** * Sets or modifies the user password for Cloud DB full encryption. * @param userKey User password. * @param userReKey New user password. * @returns True if operation successful, otherwise false. */ function setUserKey(userKey, userReKey) { return utils_1.asyncExec('AGCCloudDBPlugin', "AGCCloudDBService", ["setUserKey", userKey, userReKey]); } exports.setUserKey = setUserKey;