@cordova-plugin-agconnect/clouddb
Version:
Cordova AGC CloudDB Plugin
163 lines (162 loc) • 8.04 kB
JavaScript
;
/*
* 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;